大模型推理新范式!清華&螞蟻:用編程思維來思考,用自然語言來表達(dá)
該論文的第一作者是清華大學(xué)計(jì)算機(jī)系研究生溫佳鑫,螞蟻技術(shù)研究院副研究員關(guān)健為共同第一作者。
大模型應(yīng)該以什么形式進(jìn)行推理?自然語言是表示推理路徑的最佳方案嗎?
2024 年 9 月,OpenAI 攜 o1 模型吹響推理革命的號(hào)角,以驚人的思維鏈長度刷新認(rèn)知邊界。在這場(chǎng)技術(shù)革命中,中國力量迅速崛起:DeepSeek R1 以極低的訓(xùn)練成本成功復(fù)現(xiàn) o1 性能,引發(fā)全球熱議。然而,在振奮的結(jié)果背后,上述「靈魂拷問」似乎并沒有得到解答。
事實(shí)上,在這場(chǎng)推理大潮來臨之前,本文研究團(tuán)隊(duì)就一直在圍繞這些問題進(jìn)行思考和探討。自然語言形式的推理范式雖然從思維鏈開始就主導(dǎo)了推理模型的構(gòu)建,其本身卻存在著不可忽視的缺陷:推理過程中常見邏輯斷裂、焦點(diǎn)漂移、冗余重復(fù)等系統(tǒng)性問題。這就像一名博學(xué)卻缺乏系統(tǒng)訓(xùn)練的學(xué)生,知識(shí)有余而邏輯不足。
研究團(tuán)隊(duì)認(rèn)為這些問題源自自然語言的雙面性:表達(dá)自由靈活,卻難以傳遞嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu)化思維。更本質(zhì)的挑戰(zhàn)在于:文本中蘊(yùn)含的推理結(jié)構(gòu)往往被埋藏在自然語言冗余的表達(dá)形式之下。這些隱含的邏輯模式難以被模型有效捕捉和復(fù)用。對(duì)于參數(shù)量較小的模型而言,這一困境更為嚴(yán)峻。
為應(yīng)對(duì)這一困境,研究團(tuán)隊(duì)在 ICLR 2025 上提出了 CodePlan 方法。這一創(chuàng)新框架將「代碼形式的規(guī)劃」(Code-Form Planning)引入推理過程,讓大模型先用「編程思維」來思考,再用自然語言來表達(dá)。
得益于編程語言的嚴(yán)謹(jǐn)特性,代碼規(guī)劃能夠精確構(gòu)建包含條件分支、循環(huán)迭代、函數(shù)調(diào)用等結(jié)構(gòu)的推理藍(lán)圖,就像為大模型裝上了一個(gè)邏輯嚴(yán)密的「操作系統(tǒng)」。更有趣的是,由于編程語言存在海量的數(shù)據(jù),這種方法無需繁重的人工標(biāo)注,能夠自動(dòng)從已有數(shù)據(jù)中提取隱含的規(guī)劃信號(hào);并且由于已有代碼覆蓋了各個(gè)領(lǐng)域的問題,CodePlan 除了解決復(fù)雜推理問題外,還可以很好地泛化到其它任務(wù)上。
在 13 個(gè)具有挑戰(zhàn)性的基準(zhǔn)測(cè)試中,CodePlan 實(shí)現(xiàn)了平均 25.1% 的相對(duì)性能提升。目前,研究團(tuán)隊(duì)已開源了 200 萬條包含代碼形式規(guī)劃的推理數(shù)據(jù),以期推動(dòng)這一方向的研究。
- 論文標(biāo)題:CodePlan: Unlocking Reasoning Potential in Large Language Models by Scaling Code-form Planning
- 論文地址:https://arxiv.org/pdf/2409.12452
- Github: https://github.com/thu-coai/CodePlan
- Dataset: https://huggingface.co/datasets/jiaxin-wen/CodePlan
一、推理能力的阿喀琉斯之踵
在大模型推理能力突飛猛進(jìn)的表象之下,隱藏著一個(gè)被忽視的現(xiàn)象:隨著研究者不斷追逐更大的參數(shù)規(guī)模、更龐大的數(shù)據(jù)量,模型的「思維熵增」現(xiàn)象反而愈發(fā)嚴(yán)重。這種反?,F(xiàn)象主要表現(xiàn)在兩個(gè)方面:一是推理過度膨脹,即便是回答 「2+3=?」這樣的簡單問題,o1 模型也會(huì)生成長達(dá) 200 多個(gè) token 的冗長思維鏈;二是推理不夠?qū)Wⅲ诮鉀Q復(fù)雜問題時(shí)頻繁跳躍于不同思路之間,卻始終無法深入任何一個(gè)方向得出正確答案。
這一現(xiàn)象暴露出當(dāng)前技術(shù)路線中一個(gè)根本性矛盾:自然語言固有的非結(jié)構(gòu)化特性,與系統(tǒng)化推理所需的嚴(yán)謹(jǐn)規(guī)劃框架之間存在著難以調(diào)和的沖突。
深入分析這一現(xiàn)象,研究團(tuán)隊(duì)發(fā)現(xiàn)現(xiàn)有的推理模型主要依賴兩個(gè)步驟:首先通過自然語言形式隨機(jī)探索生成海量的推理路徑,然后借助強(qiáng)化學(xué)習(xí)算法從中篩選優(yōu)質(zhì)軌跡。這種方法雖然拓寬了推理的探索空間,卻像在茫茫沙漠中漫無目的地搜尋綠洲,缺乏有效的導(dǎo)航機(jī)制必然導(dǎo)致效率低下。更為致命的是,這種基于自然語言的自由推理方式難以沉淀出可復(fù)用的結(jié)構(gòu)化知識(shí),導(dǎo)致模型每次面對(duì)新問題時(shí)都需要從零開始探索。
因此,現(xiàn)有方法雖然培養(yǎng)了模型強(qiáng)大的直覺能力,卻忽視了人類思維最本質(zhì)的特征 —— 通過高層規(guī)劃將零散知識(shí)系統(tǒng)化的能力。
CodePlan 在 5 類核心推理任務(wù)上取得顯著提升。Vaniila: 不使用規(guī)劃的基線方法;Natural Language Plan:基于自然語言的規(guī)劃方法。
二、CodePlan:為大模型裝載結(jié)構(gòu)化思維引擎
面對(duì)大模型推理能力的瓶頸,研究團(tuán)隊(duì)提出了 CodePlan 框架,其核心創(chuàng)新在于引入「代碼形式規(guī)劃」(Code-Form Planning)作為思維的中間表征。
這一創(chuàng)新建立在對(duì)推理結(jié)構(gòu)的精確表達(dá)之上。通過將編程語言的嚴(yán)謹(jǐn)結(jié)構(gòu)引入推理過程,CodePlan 為大模型構(gòu)建了一個(gè)可靠的「思維操作系統(tǒng)」。這個(gè)系統(tǒng)通過兩個(gè)層次來實(shí)現(xiàn)思維的結(jié)構(gòu)化:先用 Python 風(fēng)格的偽代碼勾勒出高層次的推理框架;再基于這個(gè)框架,系統(tǒng)性地展開具體推理步驟。
如下圖所示,這種基于代碼的表達(dá)方式具有四大核心優(yōu)勢(shì):
- 條件分支能力:通過 if 語句動(dòng)態(tài)調(diào)整推理路徑,實(shí)現(xiàn)靈活的上下文適應(yīng);
- 循環(huán)迭代結(jié)構(gòu):利用 for 循環(huán)高效處理序列數(shù)據(jù)和重復(fù)操作;
- 模塊化工具:通過函數(shù)定義和調(diào)用,增強(qiáng)模型對(duì)工具的創(chuàng)建和使用能力;
- 層次化架構(gòu):通過變量定義、子任務(wù)分解和嚴(yán)謹(jǐn)?shù)倪壿嬀幣?,支持?fù)雜推理任務(wù)的模塊化分解。
相比傳統(tǒng)的自然語言規(guī)劃,CodePlan 的優(yōu)勢(shì)突出。Python 代碼不僅能夠以更簡潔的方式傳遞規(guī)劃信息,而且這種表達(dá)方式在預(yù)訓(xùn)練語料中分布更廣,使模型在訓(xùn)練階段就已經(jīng)建立起對(duì)代碼結(jié)構(gòu)的深層理解。
這種與生俱來的「代碼素養(yǎng)」讓模型能夠更自然地生成和理解規(guī)劃信息,大大降低了學(xué)習(xí)成本。更重要的是,這種規(guī)劃方式展現(xiàn)出驚人的通用性——從數(shù)學(xué)推理到指令理解,從符號(hào)運(yùn)算到開放式問題,都能構(gòu)建出清晰的代碼形式規(guī)劃表示。
三、廣泛提升模型推理能力
為驗(yàn)證 CodePlan 的效果,研究團(tuán)隊(duì)構(gòu)建了一套高效的規(guī)劃信息自動(dòng)挖掘方法。如下圖所示,該方法包含兩個(gè)關(guān)鍵創(chuàng)新:首先通過代碼預(yù)訓(xùn)練模型精準(zhǔn)解析文本中潛藏的推理結(jié)構(gòu),將其轉(zhuǎn)化為顯式的偽代碼表示;其次設(shè)計(jì)了基于啟發(fā)式評(píng)分的動(dòng)態(tài)過濾機(jī)制,確保所提取規(guī)劃的質(zhì)量。
基于這一方法,團(tuán)隊(duì)成功構(gòu)建了一個(gè)包含 200 萬個(gè)「< 用戶提示,代碼規(guī)劃,回復(fù) >」三元組的大規(guī)模數(shù)據(jù)集。
訓(xùn)練數(shù)據(jù)構(gòu)建流程。
實(shí)驗(yàn)結(jié)果令人振奮。研究團(tuán)隊(duì)以 Mistral 和 Llama 為基座模型,在跨越數(shù)學(xué)推理、符號(hào)運(yùn)算、指令理解、多跳問答和決策等五大領(lǐng)域的 13 個(gè)具有挑戰(zhàn)性的基準(zhǔn)測(cè)試中進(jìn)行了系統(tǒng)評(píng)估。
結(jié)果顯示,相比于直接從用戶指令生成推理步驟的基線方法(Vanilla)和使用自然語言形式規(guī)劃的傳統(tǒng)方法(PS Prompting),CodePlan 在所有任務(wù)上都實(shí)現(xiàn)了顯著提升。特別是在復(fù)雜度較高的任務(wù)上,性能提升更為明顯。例如,在 Last Letter 任務(wù)上,Mistral-7B 的準(zhǔn)確率提升了超過 20 個(gè)百分點(diǎn),展示出 CodePlan 在處理高難度推理問題時(shí)的獨(dú)特優(yōu)勢(shì)。
1. 任務(wù)越復(fù)雜,提升越顯著
深入分析實(shí)驗(yàn)結(jié)果揭示了 CodePlan 一個(gè)令人矚目的特性:隨著任務(wù)復(fù)雜度的提升,其性能優(yōu)勢(shì)愈發(fā)顯著。研究團(tuán)隊(duì)以多跳問答任務(wù)為例進(jìn)行了精細(xì)化分析,通過將數(shù)據(jù)集按推理步數(shù)(2 跳、3 跳、4 跳)劃分,清晰地展示了這一規(guī)律。
多跳問答任務(wù)的性能對(duì)比
如上圖所示,在相對(duì)簡單的 2 跳問題上,CodePlan 相比基線模型已有穩(wěn)定提升;而在需要三次以上推理跳轉(zhuǎn)的復(fù)雜問題中,性能差距急劇擴(kuò)大。特別是在最具挑戰(zhàn)性的 4 跳問題上,CodePlan 的優(yōu)勢(shì)達(dá)到最大,這充分說明其在處理深層次推理時(shí)的卓越能力。
這種「難者愈強(qiáng)」的特性,正是源于 CodePlan 的結(jié)構(gòu)化推理框架。通過將復(fù)雜推理過程分解為清晰的代碼步驟,模型能夠更好地把控長程依賴關(guān)系,避免了傳統(tǒng)方法在多步推理中常見的邏輯斷裂和注意力發(fā)散問題。
2. 更高效、更穩(wěn)定的后訓(xùn)練
研究團(tuán)隊(duì)在探索 CodePlan 的訓(xùn)練特性時(shí),發(fā)現(xiàn)了另一個(gè)重要優(yōu)勢(shì):它為大模型的后訓(xùn)練提供了一條更高效、更可靠的路徑。
CodePlan 的訓(xùn)練曲線
如上圖所示,在 GSM8K 數(shù)學(xué)推理和 MuSiQue 多跳問答這兩個(gè)具有代表性的任務(wù)上,CodePlan 展現(xiàn)出顯著的訓(xùn)練優(yōu)勢(shì)。傳統(tǒng)的后訓(xùn)練方法(藍(lán)線)在訓(xùn)練過程中表現(xiàn)出明顯的性能波動(dòng)。相比之下,CodePlan(橙線)不僅實(shí)現(xiàn)了更快的性能提升,更重要的是保持了穩(wěn)定的上升趨勢(shì)。
這一現(xiàn)象揭示了 CodePlan 的核心優(yōu)勢(shì):通過引入結(jié)構(gòu)化的代碼規(guī)劃作為中間表示,它成功建立了一個(gè)更加普適的學(xué)習(xí)框架。這個(gè)框架能夠有效降低不同任務(wù)之間的表達(dá)差異,使得模型可以更專注于學(xué)習(xí)本質(zhì)的推理模式,從而實(shí)現(xiàn)知識(shí)的高效遷移和穩(wěn)定積累。這不僅提高了訓(xùn)練效率,更為大模型能力的持續(xù)進(jìn)化提供了可靠保障。
3. 案例分析:化繁為簡的結(jié)構(gòu)化思維
讓我們來看看「數(shù)值比較」(9.8 和 9.11 誰更大)和「字母計(jì)數(shù)」(統(tǒng)計(jì) strawberry 中字母 r 的出現(xiàn)次數(shù))這兩個(gè)看似簡單,卻常常難倒模型的問題。
如上表所示,CodePlan 通過引入代碼形式的規(guī)劃,優(yōu)雅地解決了這些問題。與之形成鮮明對(duì)比的是,沒有規(guī)劃輔助的模型往往給出模糊或錯(cuò)誤的答案。它們要么直接下結(jié)論,要么陷入冗長卻不準(zhǔn)確的解釋中,反映出缺乏系統(tǒng)化思維方法的局限。
這個(gè)對(duì)比表明:CodePlan 不是簡單地告訴模型「該做什么」,而是教會(huì)模型「如何思考」。通過將復(fù)雜任務(wù)分解為清晰的代碼步驟,CodePlan 為模型提供了一個(gè)可靠的問題解決范式。
結(jié)語:開辟大模型結(jié)構(gòu)化思維新思路
CodePlan 的提出為大模型推理能力發(fā)展提供了一個(gè)新思路。這項(xiàng)創(chuàng)新通過將代碼形式規(guī)劃引入推理過程,成功解決了自然語言表達(dá)中的結(jié)構(gòu)化缺陷;更重要的是,它開創(chuàng)了一種全新的方法論,為大模型注入了系統(tǒng)化的問題解決能力。通過開源 200 萬條規(guī)劃數(shù)據(jù),研究團(tuán)隊(duì)為整個(gè)社區(qū)貢獻(xiàn)了資源。在此基礎(chǔ)上,期待在金融、醫(yī)療等高要求場(chǎng)景中有更多激動(dòng)人心的應(yīng)用突破。