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


新智元報道  

編輯:編輯部 HNYZ
【新智元導讀】DeepSeek團隊最新力作一上線,就獲得Ai2研究所大牛推薦,和DeepSeek鐵粉們的熱情研讀!他們提出的CodeI/O全新方法,透過程式碼提取了LLM推理模式,在邏輯、數學等推理任務上得到顯著改進。
如今,DeepSeek團隊成員的一舉一動,都頗受圈內關注。
近日,來自DeepSeek、上海交通大學、香港科技大學的研究人員推出的全新力作CODEI/O,就獲得了Ai2大牛Nathan Lambert的力薦!
論文地址:https://arxiv.org/abs/2502.07316
專案主頁:https://codei-o.github.io/
Lambert表示,非常高興能看到DeepSeek團隊成員撰寫的更多論文,而不僅僅是有趣的技術報告。(順便還調侃了一句自己真的想他們了)
這篇論文的主題,是透過一種CodeI/O的方法,利用程式碼輸入/輸出,來提煉LLM的推理模式。
值得注意的是,這篇論文是一作Junlong Li在DeepSeek實習期間完成的研究。
一經發布,網友們就立馬開始了仔細研究。畢竟,現在在研究人員心目中,DeepSeek已經是一個GOAT team。
有人總結道,除了主線論文之外,DeepSeek作者還發表了許多論文,比如Prover 1.0、 ESFT、Fire-Flyer AI-HPC、DreamCraft 3D等等,雖然都是實習生的工作,但十分具有啟發性。
LLM推理缺陷,靠程式碼打破
推理,是LLM的一項核心能力。以往的研究主要關注的是數學或程式碼等狹窄領域的提升,但在很多推理任務上,LLM依然面臨挑戰。
原因就在於,訓練資料稀疏且零散。
對此,研究團隊提出了一種全新方法——CODEI/O!
CODEI/O透過將程式碼轉換為輸入/輸出預測格式,從而系統性地提煉出蘊含在程式碼上下文中的多種推理模式。
研究團隊提出將原始程式碼檔案轉換成可執行的函式,並設計一個更直接的任務:給定一個函式及其相應的文字查詢,模型需要以自然語言的CoT推理形式預測給定輸入的執行輸出或給定輸出的可行輸入。
這種方法將核心推理流程從程式碼特定的語法中解脫出來,同時保留邏輯的嚴謹性透過收集和轉換來自不同來源的函式,生成的資料包含了各種基礎推理技能,如邏輯流程編排、狀態空間探索、遞迴分解和決策。
實驗結果表明,CODEI/O在符號推理、科學推理、邏輯推理、數學與數值推理以及常識推理等任務上均實現了一致的效能提升。
下圖1概述了CODEI/O的訓練資料構建流程。該流程從收集原始程式碼檔案開始,到組裝完整的訓練資料集結束。
分解CODEI/O架構

收集原始程式碼檔案

CODEI/O的有效性在於選擇多樣化的原始程式碼來源,以涵蓋廣泛的推理模式。
主要的程式碼來源包括:
  • CodeMix:從內部程式碼預訓練語料庫中檢索的大量原始Python程式碼檔案集合,經過篩選去除過於簡單或過於複雜的檔案。
  • PyEdu-R(推理):Python-Edu的一個子集,側重於複雜的推理任務,如STEM、系統建模或邏輯謎題,並排除以純演算法為中心的檔案。
  • 其他高質量程式碼檔案:來自各種小型、信譽良好的來源,包括綜合演算法儲存庫、具有挑戰性的數學問題和知名的線上編碼平臺。
合併這些來源後,總共產生了大約810.5K個程式碼檔案。
構造的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++中的一個完整訓練樣本
一個框架,彌合程式碼推理與自然語言鴻溝
如下表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在混合資料的情況下表現更好,無論是在第一階段還是第二階段。
論文作者
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/

相關文章