LLM推理暴漲,數學邏輯開掛! DeepSeek等華人團隊新大招,Ai2大牛狂點贊
文章來源:新智元
Image source: Generated by AI
如今,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/
原文網址:https://zh.gushiio.com/ai/1802.html