論文題目:START: Self-taught Reasoner with Tools
論文鏈接:https://arxiv.org/pdf/2503.04625
論文簡介
Reasoning模型也進化到2.0了,這次居然學會用工具了!? 最近有個叫START的方法,讓大模型也能學著用工具,比如自己調用代碼解釋器,來提升推理和解決問題的能力。
具體怎么實現的呢?它會把「思考鏈」和「工具調用」結合起來,給模型配上了自查、自我探索和自己修bug的能力。簡單說,就是教模型邊想邊動手,用工具解決推理過程中的難題。
具體的訓練步驟大概是:
1?? 收集數學和編程題目,比如數學的AIME、MATH,編程的Codeforces、LiveCodeBench這些比賽題目。
2?? 設計一些「友情提示」,比如“這里不如用Python試一下?”
3?? 讓模型自己帶著工具解題,然后把剛才的提示巧妙地插到推理過程中(通常是在模型猶豫的時候,比如出現「等等…」的地方)。
4?? 對解題過程打分,去掉重復或者沒用的步驟,形成高質量的種子數據集。
5?? 用這些種子數據微調模型,讓它學到正確的使用工具的思路,并不斷“自我精煉”,創造更多解題方案。
6?? 再通過“拒絕采樣”技術在更大的數據集上做二次微調,讓模型越來越聰明。
研究還發現了幾個有趣的現象:
💡 加入工具后,數學題的準確率直接提升了15%,像AMC23考試的正確率達到了95%!編程題的中等難度問題準確率提升更厲害,達到了38.6%!
📈 考試的時候加上一些小提示,也能再提升12%的準確率。
🐞 調整代碼模板,訓練過程中的debug錯誤直接少了41%。
💡 給模型加工具(比如Python解釋器)帶來的提升,比單純增加訓練數據還有效!
🧠 大模型本身其實就已經有使用工具的潛力了,只是需要點撥一下就能激活。
🛠? 訓練的時候用“兩階段”方法(先提示微調再拒絕采樣微調),能讓模型更好地掌握工具的使用方法。
📍 對了,插入提示的位置也很重要,最好放在連詞后(比如“但是”、“等等”之后),停頓之前。
一句話總結:模型加了工具,就像你考試允許開卷一樣,效果簡直好到飛起!
如上圖所示START模型的訓練框架,它的訓練分為兩個階段:Hint-RFT 和 RFT。
論文效果
1?? Hint-infer(提示推理):
- 先拿代碼和數學數據喂給 QwQ-32B-Preview(一個大模型),它會在特定的地方停下來。
- 這些停頓點會插入一些智能提示(來自一個提示庫),比如“這里是不是可以試試Python?”
- 之后,模型會繼續推理,并且用代碼解釋器(Python)來執行代碼、檢查反饋,確保思路正確。
2?? Hint-RFT(基于提示的拒絕采樣微調):
- 在上一步的基礎上,模型生成的推理過程會經過一輪篩選,去掉低質量、重復的內容,并進行一些修改,形成一個高質量的種子數據集 D_seed。
- 然后,QwQ-32B-Preview 會用這些數據進行微調,生成一個初版的 START-0,讓它能自己感知并使用工具。
3?? RFT(拒絕采樣微調):
- START-0 開始自我蒸餾,自己生成更多解題思路,構建一個更豐富的訓練數據集 D_START(這個數據集不僅更有多樣性,還強化了工具使用模式)。
- 最后,用這個擴展版數據集再微調一次,最終得到完整的 START 模型。
簡單來說,這個流程的關鍵就是:
- 先讓模型學會用提示來調用工具
- 再篩選高質量的解題過程進行微調
- 讓模型自己生成更多推理過程,最后再訓練一遍
這張圖對比了 QwQ-32B-Preview 和 START 在處理 LiveCodeBench(難度:hard)編程題時的表現。
📌 QwQ-32B-Preview:
- 采用 長鏈推理(CoT),自己反思、嘗試不同的方法,邏輯看起來很嚴謹。
- 但在分析復雜測試用例時容易“幻覺”,也就是推理時編出一些錯誤的假設,導致最終解法是錯的。
📌 START:
- 繼承了 QwQ-32B-Preview 的推理框架,但 加入了代碼執行能力,讓模型可以真正跑代碼來驗證自己的推理。
- 具體做了什么?
1?? 執行代碼:用解釋器跑代碼,看看結果對不對。
2?? 檢測錯誤:如果輸出和預期不匹配,說明哪里有問題。
3?? 迭代分析 & 調試:自動找 bug、分析錯誤,修正代碼。
4?? 輸出最終答案:確保解法正確再交卷!
總體來看,QwQ-32B-Preview 雖然思考方式不錯,但容易犯錯。START 靠工具(代碼執行)補上漏洞,推理更嚴謹,答案更靠譜!