揮舞起代碼語料的魔杖,大模型和智能體將召喚出更強大的能量
正如瑞斯福茲魔杖締造了諸如鄧布利多在內的歷代非凡魔法師的傳奇,具有巨大潛能的傳統大型語言模型,在經過代碼語料的預訓練 / 精調后,掌握了更超出本源的執行力。
具體來說,進階版的大模型在編寫代碼、更強推理、自主援引執行接口、自主完善等方面都獲得了提升,這將為它作為 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 在下游應用中的表現,體現于如決策、執行和自我提升等特定操作步驟。回顧以往的研究之外,研究人員也提出了該領域的幾個挑戰,作為未來潛在發展方向的指導要素。
更多細節請參考原文!