LLM推理暴漲,數學邏輯開掛, DeepSeek等華人團隊新大招,Ai2大牛狂點讚

DeepSeek團隊最新力作一上線,就獲得Ai2研究所大牛推薦,和DeepSeek鐵粉們的熱情研讀!他們提出的CodeI/O全新方法,通過代碼提取了LLM推理模式,在邏輯、數學等推理任務上得到顯著改進。

如今,DeepSeek團隊成員的一舉一動,都頗受圈內關注。

近日,來自DeepSeek、上海交通大學、香港科技大學的研究人員推出的全新力作CODEI/O,就獲得了Ai2大牛Nathan Lambert的力薦!

Lambert表示,非常高興能看到DeepSeek團隊成員撰寫的更多論文,而不僅僅是有趣的技術報告。(順便還調侃了一句自己真的想他們了)

這篇論文的主題,是通過一種CodeI/O的方法,利用代碼輸入/輸出,來提煉LLM的推理模式。

值得注意的是,這篇論文是一作Junlong Li在DeepSeek實習期間完成的研究。

一經發佈,網民們就立馬開始了仔細研究。畢竟,現在在研究人員心目中,DeepSeek已經是一個GOAT team。

有人總結道,除了主線論文之外,DeepSeek作者還發表了許多論文,比如Prover 1.0、 ESFT、Fire-Flyer AI-HPC、DreamCraft 3D等等,雖然都是實習生的工作,但十分具有啟發性。

01 LLM推理缺陷,靠代碼打破

推理,是LLM的一項核心能力。以往的研究主要關注的是數學或代碼等狹窄領域的提升,但在很多推理任務上,LLM依然面臨挑戰。

原因就在於,訓練數據稀疏且零散。

對此,研究團隊提出了一種全新方法——CODEI/O!

CODEI/O通過將代碼轉換為輸入/輸出預測格式,從而系統性地提煉出蘊含在代碼上下文中的多種推理模式。

研究團隊提出將原始代碼文件轉換成可執行的函數,並設計一個更直接的任務:給定一個函數及其相應的文本查詢,模型需要以自然語言的CoT推理形式預測給定輸入的執行輸出或給定輸出的可行輸入。

這種方法將核心推理流程從代碼特定的語法中解脫出來,同時保留邏輯的嚴謹性。通過收集和轉換來自不同來源的函數,生成的數據包含了各種基礎推理技能,如邏輯流程編排、狀態空間探索、遞歸分解和決策。

實驗結果表明,CODEI/O在符號推理、科學推理、邏輯推理、數學與數值推理以及常識推理等任務上均實現了一致的性能提升。

下圖1概述了CODEI/O的訓練數據構建流程。該流程從收集原始代碼文件開始,到組裝完整的訓練數據集結束。

02 分解CODEI/O架構

收集原始代碼文件

CODEI/O的有效性在於選擇多樣化的原始代碼來源,以涵蓋廣泛的推理模式。

主要的代碼來源包括:

CodeMix:從內部代碼預訓練語料庫中檢索的大量原始Python代碼文件集合,經過篩選去除過於簡單或過於複雜的文件。

PyEdu-R(推理):Python-Edu的一個子集,側重於複雜的推理任務,如STEM、系統建模或邏輯謎題,並排除以純算法為中心的文件。

其他高質量代碼文件:來自各種小型、信譽良好的來源,包括綜合算法存儲庫、具有挑戰性的數學問題和知名的在線編碼平台。

合併這些來源後,總共產生了大約810.5K個代碼文件。

構造的LeetCode-O基準測試中的一個示例構造的LeetCode-O基準測試中的一個示例

轉換為統一格式

收集到的原始代碼文件往往結構混亂,含有冗餘內容,並且難以獨立執行。

使用DeepSeek-V2.5對原始代碼文件進行預處理,將其提煉成統一的格式,強調主要的邏輯功能,使其可執行,以便收集輸入-輸出對。

研究團隊通過清理和重構代碼,將核心邏輯功能提取到函數中,排除不必要的元素,然後添加一個主要入口點函數,總結代碼的整體邏輯。

該函數可以調用其他函數或導入外部庫,並且必須具有非空的參數(輸入)以及返回有意義的輸出。所有輸入和輸出都需要是JSON可序列化的,以方便進一步處理。

過程中需明確定義主要入口點函數的輸入和輸出,包括數據類型、約束(例如,輸出範圍)或更複雜的要求(例如,字典中的鍵)等信息。

然後創建一個獨立的、基於規則的Python輸入生成器函數,而不是直接生成測試用例。此生成器返回遵循主要入口點函數要求的非平凡輸入。在約束條件下應用隨機性,實現可擴展的數據生成。

最後,根據主要入口點函數生成一個簡潔的問題陳述,作為描述代碼預期功能的查詢。

如何將原始代碼文件轉換為所需同一格式的示例如何將原始代碼文件轉換為所需同一格式的示例

收集輸入和輸出對

在將收集的原始代碼文件轉換為統一格式後,使用輸入生成器為每個函數抽樣多個輸入,並通過執行代碼獲得相應的輸出。

為了確保輸出是確定性的,會跳過所有包含隨機性的函數。在執行這些代碼期間,研究團隊還會對運行時和輸入/輸出對象的複雜性施加一系列限制。

在過濾掉不可執行的代碼、超過運行時限制的樣本以及超過所需複雜性的輸入-輸出對後,獲得了從454.9K個原始代碼文件派生的3.5M個實例。輸入和輸出預測實例的分佈大致平衡,各佔 50%。

構建輸入輸出預測樣本

收集輸入-輸出對以及轉換後的函數後,需要將它們組合成可訓練的格式。

研究團隊採用的有監督微調過程,每個訓練樣本都需要一個提示和一個響應。由於目標是輸入-輸出預測任務,研究團隊使用設計的模板將函數、查詢、參考代碼以及特定的輸入或輸出組合起來構建提示。

理想情況下,響應應該是一個自然語言的CoT,用於推理如何得出正確的輸出或可行的輸入。

研究團隊主要通過以下兩種方式構建所需的CoT響應。

直接提示(CODEI/O)

使用DeepSeek-V2.5合成所有需要的響應,因為它具有頂級的性能,但成本極低。此處生成的數據集稱為 CODEI/O。

下圖2展示了CODEI/O數據集中輸入和輸出預測的2個示例,在這兩種情況下,模型都需要以自然語言的思維鏈 (CoT)形式給出推理過程。

充分利用代碼(CODEI/O++)

對於預測不正確的響應,將反饋作為第二輪輸入消息追加,並要求DeepSeek-V2.5重新生成另一個響應。將所有四個組件連接起來:第一輪響應+第一輪反饋+第二輪響應+第二輪反饋。研究人員將通過這種方式收集的數據集稱為CODEI/O++。

CODEI/O++中的一個完整訓練樣本CODEI/O++中的一個完整訓練樣本

03 一個框架,彌合代碼推理與自然語言鴻溝

如下表1所示,主要展示了Qwen 2.5 7B Coder 、Deepseek v2 Lite Coder、LLaMA 3.1 8B、Gemma 2 27B模型的評估結果。

CODEI/O在各項基準測試中,模型的性能均實現了提升,其表現優於單階段基線模型和其他數據集(即使是更大規模的數據集)。

不過,競爭數據集,比如OpenMathInstruct2在數學特定任務上表現出色,但在其他任務上有會出現退步(混合綠色和紅色單元格)。

CODEI/O展現出的是,持續改進的趨勢(綠色單元格)。

儘管其僅使用以代碼為中心的數據,在提升代碼推理能力同時,還增強了所有其他任務的表現。

研究人員還觀察到,與單階段基線相比,使用原始代碼文件(PythonEdu)進行訓練,只能帶來微小的改進,有時甚至會產生負面影響。

與CODEI/O相比表現明顯不足,這表明從這種結構性較差的數據中學習是次優的。

這進一步強調了性能提升,不僅僅取決於數據規模,更重要的是經過深思熟慮設計的訓練任務。

這些任務包含了廣義思維鏈中多樣化、結構化的推理模式。

此外,CODEI/O++系統性地超越了CODEI/O,在不影響單個任務性能的情況下提高了平均分數。

這突顯了基於執行反饋的多輪修訂,可以提升數據質量並增強跨領域推理能力。

最重要的是,CODEI/O和CODEI/O++都展現出了跨模型規模和架構的普遍有效性。

這進一步驗證了實驗的訓練方法(預測代碼輸入和輸出),使模型能夠在不犧牲專業基準性能的情況下,在各種推理任務中表現出色。

為了進一步研究,新方法中不同關鍵方面的影響,研究人員進行了多組分析實驗。

所有實驗均使用Qwen 2.5 Coder 7B模型進行,且報告的結果均為經過第二階段通用指令微調後獲得的結果。

消融實驗

研究團隊首先對數據構建過程進行了兩項關鍵的消融研究,結果如下表2所示。

輸入/輸出預測

作者通過分別訓練,來研究輸入和輸出預測。

結果顯示,總體得分相似,但輸入預測在KorBench上表現出色,同時略微影響了GPQA的表現;而輸出預測在BBH等符號推理任務上顯示出更大的優勢。CRUXEval-I和-O分別偏向於輸入和輸出預測。

拒絕采樣

他們還探索了使用拒絕采樣來過濾不正確響應的方法,這導致50%的訓練數據被刪除。然而,這造成了普遍的性能下降,表明可能損失了數據的多樣性。

作者還嘗試通過代碼執行將所有不正確的響應,替換為正確答案(不包含思維鏈)。

這種方法在LeetCode-O和CRUXEval-O等設計用於衡量輸出預測準確性的基準測試上,確實帶來了改進,但在其他方面降低了分數,導致平均性能下降。

當將這兩種方法與訓練在樣本數量相當的CODEI/O約50%子集上進行比較時,它們仍然沒有顯示出優勢。

因此,為了保持性能平衡,研究人員在主要實驗中保留了所有不正確的響應,不做任何修改。

不同合成模型的效果

為了研究不同綜合模型的效果,作者使用DeepSeek-V2.5重新生成了350萬條WebInstruct數據集的響應,創建了一個更新的數據集,稱為WebInstruct-DS25。

如圖3所示,雖然WebInstruct-DS25在Qwen 2.5 Coder 7B和LLaMA 3.1 8B上,表現優於原始數據集,但仍然不及CODEI/O。

這突顯了代碼中多樣化推理模式的價值,以及訓練中任務選擇的重要性。

總的來說,這個比較表明,預測代碼的輸入和輸出能夠提升推理能力,而不僅僅是從高級模型中進行知識蒸餾。

CODEI/O的Scaling效應

研究人員還評估了CODEI/O在不同訓練數據量下的表現。

通過隨機抽樣訓練實例,圖4a揭示了一個明顯的趨勢:增加訓練樣本數量,通常會導致各項基準測試的性能提升。

具體來說,使用最少量的數據在大多數基準測試中表現相對較弱,因為模型缺乏足夠的訓練來有效泛化。

相比之下,在完整數據集上訓練時,CODEI/O實現了最全面和穩健的性能。

中等數量的數據產生的結果介於這兩個極端之間,隨著訓練樣本的增加表現出逐步改善。這突顯了CODEI/O在提升推理能力方面的可擴展性和有效性。

此外,他們還在輸入-輸出對的維度上進行了數據scaling,方法是固定並使用所有唯一的原始代碼樣本,但改變每個樣本的輸入-輸出預測實例數量。

圖4b顯示了,使用的I/O對相對於完整集合的比例。

雖然scaling效應不如訓練樣本明顯,但仍可以觀察到明顯的益處,特別是在從1/6增加到6/6時。

這表明,某些推理模型需要多個測試用例,才能完全捕獲和學習其複雜的邏輯流程。

不同的數據格式

這一部分,主要研究了如何在訓練樣本中最佳安排查詢、參考代碼和思維鏈(CoT)。

如表3所示,將查詢和參考代碼放在提示中,而將思維鏈放在響應中,可以在各項基準測試中實現最高的平均分數和最平衡的性能。

其他格式的結果顯示出,略低但相當的性能,最差的結果出現在查詢放在提示中,而參考代碼放在響應中的情況。

這類似於標準的代碼生成任務,但訓練樣本要少得多。

這突顯了思維鏈和測試用例的規模對於學習可遷移推理能力的重要性。

多輪迭代

基於CODEI/O(無修訂)和CODEI/O++(單輪修訂),研究人員將修訂擴展到第二輪,通過對第一輪修訂後仍然不正確的實例,重新生成預測來評估進一步的改進。

如下圖7中,可視化了每一輪中響應類型的分佈。

結果顯示,大多數正確的響應都在初始輪中預測出來,約10%的錯誤響應在第一輪修訂中得到糾正。

然而,第二輪產生的糾正顯著減少,通過檢查案例作者發現模型經常重覆相同的錯誤CoT,而沒有添加新的有用信息。

在整合多輪修訂後,他們在圖5中觀察到從第0輪到第1輪有持續的改進,但從第1輪到第2輪的收益很小——對LLaMA 3.1 8B顯示出輕微改進,但對Qwen 2.5 Coder 7B反而出現了性能下降。

因此,在主要的實驗中,研究人員停留在了單輪修訂,即CODEI/O++。

兩階段訓練的必要性

最後,研究人員通過測試單階段混合訓練和不同數據混合的兩階段訓練,強調了使用CODEI/O數據進行單獨訓練階段的必要性。

如表4所示,所有兩階段變體模型的表現都優於單階段訓練。

同時,兩階段訓練期間混合數據的效果在不同模型間有所不同。

對於Qwen 2.5 Coder 7B,最好的結果是將CODEI/O和指令微調數據完全分開,而LLaMA 3.1 8B在混合數據的情況下表現更好,無論是在第一階段還是第二階段。

04 論文作者

Junlong Li

Junlong Li是上交計算機科學專業的三年級碩士生,師從Hai Zhao教授。

此前,他於2022年在上交IEEE試點班獲得計算機科學學士學位。

他曾在微軟亞洲研究院(MSRA)NLC組擔任研究實習生,在Lei Cui博士的指導下,參與了多個與Document AI相關的研究課題,包括網頁理解和文檔圖像基礎模型。

2023年5月至2024年2月期間,他與GAIR的Pengfei Liu教授緊密合作,主要研究LLMs的評估與對齊等方面的問題。

目前,他在Junxian He教授的指導下從事相關研究。

Daya Guo

Daya Guo在中山大學和微軟亞洲研究院聯合培養下攻讀博士學位,並由Jian Yin教授和Ming Zhou博士共同指導。目前在DeepSeek擔任研究員。

2014年到2018年,他在中山大學取得計算機科學學士學位。2017年到2023年,他曾在微軟亞洲研究院擔任研究實習生。

他的研究主要聚焦於自然語言處理和代碼智能,旨在使計算機能夠智能地處理、理解和生成自然語言與編程語言。長期研究目標是推動AGI的發展,從而徹底改變計算機與人類的交互方式,並提升其處理複雜任務的能力。

目前,他的研究方向包括:(1)大語言模型(Large Language Model);(2)代碼智能(Code Intelligence)。

Runxin Xu(許潤昕)

Runxin Xu是DeepSeek的研究科學家,曾深度參與DeepSeek系列模型的開發,包括DeepSeek-R1、DeepSeek V1/V2/V3、DeepSeek Math、DeepSeek Coder、DeepSeek MoE等。

此前,他在北京大學信息科學技術學院獲得碩士學位,由Baobao Chang博士和Zhifang Sui博士指導,並在上海交通大學完成本科學業。

他的研究興趣主要聚焦於AGI,致力於通過可擴展和高效的方法不斷推進AI智能的邊界。

Yu Wu(吳俁)

Yu Wu目前是DeepSeek技術人員,負責領導LLM對齊團隊。

他曾深度參與了DeepSeek系列模型的開發,包括DeepSeek V1、V2、V3、R1、DeepSeek Coder和DeepSeek Math。

在此之前,他曾在微軟亞洲研究院(MSRA)自然語言計算組任高級研究員。

他獲得了北京航空航天大學的學士學位和博士學位,師從Ming Zhou和Zhoujun Li教授。

他本人的研究生涯取得了諸多成就,包括在ACL、EMNLP、NeurIPS、AAAI、IJCAI和ICML等頂級會議和期刊上發表了80多篇論文。

他還發佈了多個具有影響力的開源模型,包括WavLM、VALL-E、DeepSeek Coder、DeepSeek V3和DeepSeek R1。

Junxian He(何俊賢)

Junxian He現任香港科技大學計算機科學與工程系助理教授(終身教職)。

他於2022年在卡內基梅隆大學語言技術研究所獲得博士學位,由Graham Neubig和Taylor Berg-Kirkpatrick共同指導。他還於2017年獲得上海交通大學電子工程學士學位。

此前,Junxian He還曾在Facebook AI研究院(2019年)和Salesforce研究院(2020年)工作過一段時間。

參考資料:

https://codei-o.github.io/

本文來自微信公眾號「新智元」,作者:新智元,36氪經授權發佈。