正如瑞斯福茲魔杖締造了諸如鄧不利多在內的歷代非凡魔法師的傳奇,具有巨大潛能的傳統大型語言模型,在經過代碼語料的預訓練/ 精調後,掌握了更超出本源的執行力。 具體來說,進階版的大模型在編寫程式碼、更強推理、自主援引執行介面、自主完善等方面都獲得了提升,這將為它作為AI 智能體、執行下游任務時方方面面帶來增益。 近日,伊利諾大學厄巴納 - 香檳分校(UIUC)的研究團隊發布了一項重要綜述。
論文連結: https://arxiv.org/abs/2401.00812這篇綜述探討了程式碼(Code)如何賦予大型語言模型(LLMs)及其基於此的智能體(Intelligent Agents)強大的能力。 其中,code 特別指機器可執行且人類可讀的形式語言,如程式語言、預先定義函數集等。類似於我們指導 LLMs 理解 / 產生傳統自然語言,讓 LLMs 精通 code,只需要將相同的語言建模訓練目標應用在 code 資料上。 和傳統語言模型不同,當今通用的LLMs,如Llama2、GPT4,不僅在體積上顯著提升,並且它們經歷了獨立於典型自然語言語料的code 語料訓練。 Code 具有標準化的語法、邏輯一致性、抽象性和模組化特性,並且能將高層次的目標轉化為可執行的步驟,使之成為連接人類和電腦的理想媒介。 如圖 2 所示,在本篇綜述中,研究人員透過輯錄相關工作,詳細分析闡明了將 code 納入 LLMs 訓練資料的各種優點。 具體來說,研究者觀察到code 的獨特屬性有助於:1. 增強LLMs 的code 編寫能力、推理能力,以及結構化資訊處理能力,使其能夠應用於更複雜的自然語言任務;2. 引導LLMs 產生結構化的、精確的中間步驟,這些步驟可以透過函數呼叫與外部執行端連接;3. 利用code 的編譯、執行環境,為模型自主改進提供多樣化回饋。 此外,研究人員也深察了這些由code 賦予的LLMs 的最佳化項,如何強化它們作Intelligent Agent 的決策中心,理解指令、分解目標、規劃和執行行動以及從回饋中改進的一系列能力。 如圖3 所示,在第一部分中,研究人員發現LLMs 在code 上的預訓練,已將LLMs 的任務範圍擴展到自然語言之外。這些模型能夠支援多樣化的應用,包括為數學理論產生 code、常規程式設計任務,以及資料檢索等。 Code 需要產生邏輯上連貫、有序的步驟序列,這對於有效執行至關重要。此外,code 中每個步驟的可執行性允許逐步驗證邏輯。在預訓練中利用並嵌入這些 code 屬性提高了 LLMs 在許多傳統自然語言下游任務中的思維鏈(CoT)表現,驗證了它們在複雜推理技能上的改進。同時,透過對 code 結構化格式的隱式學習,codeLLMs 在常識性結構化推理任務上表現更佳,例如與標記語言、HTML 和圖表理解相關的任務。 如圖4 所示,將LLMs 與其他功能端連接(即透過外部工具和執行模組擴展LLMs 能力)有助於LLMs 更準確、可靠地執行任務。 #在第二個部分中,如表 1 所示,研究人員觀察到一個普遍趨勢:LLMs 透過產生程式語言或利用預定義函數與其他功能端建立連結。這種 「以 code 為中心的範式」 不同於嚴格在 LLMs 推理機制中硬編碼工具調用的刻板做法,它允許 LLMs 動態生成調用執行模組的令牌,具有可調整的參數。 這個範式為LLMs 與其他功能端的互動提供了一種簡單明確的方式,增強了它們應用的靈活性和可擴展性。更重要的是,它也允許 LLMs 與涵蓋多種模態和領域的眾多功能端進行互動。透過擴展 LLMs 可存取的功能端的數量和種類,LLMs 能夠處理更複雜的任務。 如圖 5 所示,將 LLMs 嵌入 code 執行環境可以實現自動化回饋和模型自主改進。 LLMs 的表現超出了其訓練參數的範圍,部分原因是它們能夠接納回饋。然而,必須謹慎選擇回饋,因為吵雜的提示輸入可能會妨礙 LLMs 在下游任務上的表現。此外,由於人力資源代價高昂,回饋需要在保持真實性的同時滿足自動收集。在第三個部分中,研究人員發現將 LLMs 嵌入 code 執行環境可以獲得滿足所有這些標準的回饋。 首先,由於 code 執行是確定性的,從執行 code 的結果中取得回饋能夠直白忠實反映 LLM 執行的任務。此外,code 解釋器為 LLMs 提供了一種自動查詢內部回饋的途徑,消除了在利用 LLMs 調試或優化錯誤 code 時需要昂貴的人工註釋的需求。 Code 編譯與執行環境也允許LLMs 納入多樣化和全面的外部回饋形式,如簡單的生成二值的正確和錯誤評價、稍微複雜的對執行結果的自然語言解釋,以及各種帶有回饋值的排名方法,他們都使得提高性能的方法高度可客製化。 透過分析code 訓練資料整合如何增強LLMs 能力的各種方式,研究人員進一步發現,code 賦能LLMs 的優勢在 Intelligent Agent 的研發這項關鍵的LLM 應用領域尤其明顯。 圖 6 顯示了一個智慧型助理的標準工作流程。研究人員觀察到,透過 code 訓練在 LLMs 中帶來的改進,也同時一一作用於它們作為智慧助理時的實際步驟。 這些步驟包括:(1) 增強IA 在環境感知和規劃方面的決策能力, (2) 透過將行動落實於模組化動作原語和高效組織記憶來最佳化策略執行,以及(3) 透過從code 執行環境自動派生的回饋最佳化表現。 總的來說,在本篇綜述中,研究人員分析並闡明了code 如何賦予LLMs 強大能力,以及code 如何協助LLMs 作為Intelligent Agents 決策中心工作。 透過全面的文獻回顧,研究人員觀察到經過code 訓練後,LLMs 提高了它們的程式設計技能和推理能力,獲得了實現與跨模式和領域的多種功能端的靈活連接能力,以及強化了與code 執行環境中整合的評估模組進行互動並實現自動自我提升的能力。 此外,code 訓練帶來的LLMs 能力提升有助於它們作為Intelligent Agent 在下游應用中的表現,體現於如決策、執行和自我提升等特定操作步驟。回顧以往的研究之外,研究人員也提出了該領域的幾個挑戰,作為未來潛在發展方向的指導要素。 以上是釋放絕佳的程式資源,巨型模型和智能體將引發更強勁的力量的詳細內容。更多資訊請關注PHP中文網其他相關文章!