作者: Lilian Weng 機器之心編譯
學習大模型的優質博客又更新了!
最近,北大校友、前 OpenAI 應用 AI 研究負責人 Lilian Weng 更新了一篇長長長長長長長博客《Why We Think》。
文章回顧了近期在如何有效利用測試時計算(即「思考時間」)及其作用機制方面的研究進展,旨在讓模型「思考得更久」這一目標可以從多個角度得到合理動機支持。
通過觀察 GPT、Claude、Gemini 等模型的迭代,可以清晰地看到,它們在復雜邏輯推理、長文本理解、數學問題求解以及代碼生成與調試等高級認知任務上的性能邊界被不斷拓展。
這種性能的提升得益于思維鏈(CoT)和測試時計算等策略的優化,但也帶來了新的研究挑戰。
為了方便國內讀者更好地學習這篇內容,機器之心對此文章進行了編譯。感興趣的讀者也可查閱原英文內容。
英文博客鏈接:https://lilianweng.github.io/posts/2025-05-01-thinking/
類比心理學
該核心思想與人類的思維方式密切相關。人類通常無法立即給出「12345 × 56789」的答案,對于復雜問題,進行一段時間的思考和分析是自然的過程。
在《思考,快與慢》(Thinking, Fast and Slow)一書中,丹尼爾?卡尼曼(Daniel Kahneman 基于「認知雙系統理論」(dual process theory),將人類的思維方式劃分為兩種模式:
快速思維(System 1):運作迅速且自動,受直覺和情緒驅動,幾乎不需要認知努力。
慢速思維(System 2):依賴有意識的邏輯推理與嚴密思考,需耗費較高認知能量并主動參與。
由于快速思維易于啟動且更為省力,它往往成為決策主導,但這通常以犧牲準確性與邏輯性為代價。它天然依賴于人腦的「認知捷徑」(即啟發式方法 heuristics),進而容易產生錯誤與偏差。而通過有意識地放慢思維速度,給予更多反思、改進與分析的時間,可以激活慢速思維,挑戰直覺,從而做出更具理性與準確性的決策。
計算即資源
在深度學習中,有一種觀點認為神經網絡可以通過其在每次前向傳播中所能調用的計算與存儲資源進行刻畫。
如果我們使用梯度下降法來優化它們以解決問題,那么優化過程將自行「找出」如何組織這些資源,用于計算與信息存儲,因此可以被看作會自動規劃電路的過程。
從這一角度來看,如果我們設計的架構或系統在測試時(test time)可以執行更多計算,并且我們訓練模型以有效地利用這一額外資源,那么模型的性能將會更好。
在 Transformer 中,每生成一個 token,模型所執行的浮點計算量(FLOPs)大致是其參數數量的兩倍。而在稀疏模型(如專家混合模型 Mixture of Experts, MoE)中,由于每次前向傳播只激活部分專家網絡,參與計算的參數僅為總參數的一部分,因此計算量為 2 × 參數數 ÷ 稀疏度,其中「稀疏度」表示被激活專家網絡的比例。
相比之下,思維鏈(CoT)使得模型在為每個希望生成的 token 進行推理時,能夠執行更多的計算(即 FLOPs)。實際上,思維鏈的一大優勢在于,它允許模型根據問題的難度靈活地調整計算量。
潛變量建模
在機器學習中,一種經典的方法是:定義一個含有潛變量(latent variable)z 與可見變量 y 的概率模型,其中 y 是學習算法所觀察到的變量。通過對潛變量可能值的邊緣化(即求和),可以表達出一個關于可見變量 y 的復雜概率分布,即 P (y) = ∑z~P (z) P (y | z)。
例如,我們可以用該方法建模數學問題及其解答的分布:將 x 表示為題目文本,y 表示真實答案或證明過程,而 z 則表示引導生成證明的一系列自由形式推理過程。優化的目標是條件概率 P (y | x) = ∑z~p (z | x) P (y | x, z)。
這種潛變量視角特別適用于理解多線程思維鏈(multiple parallel CoTs)或基于搜索的思維鏈生成方法。這些算法可以被視為從后驗分布 P (z | x, y) 中進行采樣。這一視角還揭示了優化對數似然 log P (y | x) 作為目標函數的好處 —— 因為 log loss 目標函數在預訓練中效果顯著。
思維以 token 為單位
在生成簡短答案之前,先生成中間推理步驟的策略,特別是在數學問題中,最初由研究者提出,并逐漸拓展形成了標準方法。這一方向中早期的研究包括構建數學推理數據集,并訓練生成器進行有監督學習,通過人類編寫的解題路徑作為參考,同時訓練驗證模型判斷候選答案是否正確,從而可以在多個解答中進行有效搜索。
后續研究引入了「草稿板」(scratchpad)概念,即將模型生成的中間 token 視為輔助推理過程的臨時內容,并進一步引申出「思維鏈」(CoT)這一常用術語,以描述大語言模型通過逐步推理而非直接輸出答案的能力。
最初提升 CoT 推理能力的方法,主要通過監督學習對人類書寫的推理路徑進行訓練,或對模型生成的、經過正確性過濾的路徑進行訓練,后者可以被視為一種初級形式的強化學習。還有研究表明,僅通過設計合適的提示方式,如使用「逐步思考」的提示語,或構造更復雜的提示內容,引導模型先思考相關知識,也能顯著提升指令微調語言模型在數學任務上的表現。
隨著進一步的探索,研究人員發現,在具有自動可驗證答案的數據集上應用強化學習,可以顯著增強 CoT 推理能力。這些數據集包括帶有確定短答案的 STEM 問題,或可以通過單元測試驗證正確性的編程任務。這類強化學習策略已被驗證可以顯著提升大語言模型在多步推理任務中的性能。近期的模型開發中,采用策略梯度算法結合自動評估的問題集,已成為提高模型表現的有效方法。
思維鏈提示(CoT prompting)顯著提升了解決數學問題的成功率。模型規模越大,其「思考時間」所帶來的性能收益越顯著。
分支與修訂
測試時計算(test-time compute)的根本目的在于:在推理過程中動態地調整模型的輸出分布。為此,有多種策略可用于消耗額外的測試時資源,從而優化解碼過程、選擇更優樣本,并將模型輸出引導至更符合需求的分布。
目前主要有兩類提升生成質量的策略:并行采樣(parallel sampling)與序列修訂(sequential revision)。
并行采樣是在每一步并行生成多個輸出序列,同時通過過程獎勵信號(process reward signals)或結果評估模塊(如驗證器)對最終輸出的質量進行判斷,以此挑選最優答案。這是目前廣泛采用的提升測試時性能的解碼方法形式,例如 best-of-N 和束搜索。在無法獲得標準答案(ground truth)的情境下,常使用自洽性策略(self-consistency),即在多個思維鏈(CoT)推理序列中,以多數投票的方式選擇最終答案。
序列修訂是指基于模型前一輪輸出的結果,對其進行反思與迭代性修正,引導模型在后續輸出中主動識別并糾正可能的錯誤。這種修訂流程通常需要在經過微調的模型上實現;若僅依賴模型自身進行「內生性自我修正」(intrinsic self-correction),且缺乏外部監督反饋,則往往難以取得明顯提升。
并行采樣具有實現簡單、直觀、易部署等特點,但其效果在很大程度上取決于模型是否能夠「一次性」生成正確答案;而序列修訂通過顯式引導模型識錯與改錯,邏輯上更具針對性,但速度較慢,且需額外控制過程中的修訂風險,例如原本正確的答案被不當更改為錯誤,或模型產生新的幻覺(hallucination)。這兩種方法可以結合使用。Snell 等人發現:對于簡單問題,單一使用序列化策略的測試時計算效果最佳;而對于高難度問題,則通常需要在并行計算與序列修訂之間找到最優組合比例,以獲得最好的任務表現。
并行采樣與序列修訂示意圖。
并行采樣
當我們手頭有一個生成模型(generative model)以及一個可用于對完整或部分生成樣本進行評分的評分函數(scoring function)時,便可以設計多種搜索算法,以尋找評分更高的生成結果。其中最簡單的一種算法便是 best-of-N:直接獨立生成 N 個樣本,再依據評分函數從中選出得分最高者。
相較之下,束搜索是一種更復雜且更具適應性的搜索算法,它通過動態分配計算資源,優先探索解空間中更具潛力的部分。在束搜索過程中,模型維護一組當前最有前景的部分序列,并在擴展這些候選序列與剔除不夠理想的序列之間交替進行。
在選擇生成候選時,可以引入過程獎勵模型(Process Reward Model, PRM)作為引導機制,輔助束搜索的路徑篩選。例如,有研究使用大語言模型自身來評估其生成的每個推理步驟是否合理,將其格式化為選擇題,從而進行逐步自我評估(per-step self-evaluation)。這種方法能夠顯著減少多步推理過程中的累計錯誤,特別是在束搜索解碼階段,表現尤為明顯。
此外,在采樣過程中通過溫度退火(annealing the temperature)策略來調控隨機性,也有助于緩解生成過程中不必要的波動。這一系列實驗方法在 Codex 模型上應用于 GSM8k、AQuA 與 StrategyQA 等少樣本任務時,取得了 5–6% 的性能提升。
區別于傳統束搜索,REBASE(Reward Balanced Search)方法訓練了一個獨立的過程獎勵模型,用于評估束搜索樹中每一節點在不同深度下的擴展優先級。該模型基于 softmax 歸一化的獎勵分值,動態決定哪些節點獲得更多生成資源。
另一種名為 RATIONALYST 的過程獎勵模型,則利用大量無標注數據訓練用于多步推理任務,模型通過生成候選推理路徑(稱為 rationale),并根據這些 rationale 是否能減少真實答案 token 的負對數概率(negative log-probability)達一定閾值,來篩選高質量推理過程。
在推理階段,RATIONALYST 可以以兩種方式引導思維鏈 CoT)生成器進行推理:一種是隱式地估計下一個推理步驟的概率(implicit supervision);另一種是顯式地將下一步的推理內容直接作為提示詞的一部分生成(explicit supervision)。
束搜索解碼過程中由大語言模型對每個推理步驟進行自我評估的引導機制。
有趣的是,即使不采用顯式的零樣本提示(zero-shot prompting)或少樣本提示(few-shot prompting),也有可能激發出語言模型中的思維鏈(CoT)推理路徑。Wang 與 Zhou 發現,如果在采樣的第一個 token 處進行分支,并保留置信度最高的前 k 個 token(其置信度通過 top-1 與 top-2 候選之間的概率差來衡量),然后分別對這 k 條路徑采用貪婪解碼(greedy decoding)繼續生成,那么其中相當一部分生成序列天然包含完整的思維鏈。
尤其在上下文中本就存在思維鏈內容時,這種機制更容易引導模型生成更具置信度的最終答案。在評估最終答案的置信度時,需首先通過特定任務的啟發式方法(task-specific heuristics)標識出答案片段,例如,在數學題中提取最后出現的數值答案;或通過進一步提示模型(例如在末尾提示 「So the answer is」)來提取明確答案。
僅在首個 token 處進行分支的設計邏輯在于,相比于后續 token,早期分支能顯著提升推理路徑的多樣性,而后續 token 的生成則更多受限于已有上下文序列。
Top-k 解碼中,k 表示在首次采樣步驟中保留的候選項數量。
順序修訂
如果一個模型具有反思并糾正其先前回答中錯誤的能力,我們應期望它能夠產生一個質量不斷提高的迭代修訂序列。然而,事實證明,這種自我修正能力并非大語言模型所固有,且在未經特別設計的情況下往往難以實現,其中的失敗模式包括:
(1)幻覺,即將原本正確的回答修改為錯誤的版本;
(2)行為坍縮為不修正的狀態,例如,在最初的錯誤回答上只進行細微甚至不作修改;
(3)在測試時無法泛化到分布轉移(distribution shift)的情況。
Huang 等人的實驗表明,直接應用自我修正策略反而可能導致性能下降,模型若要實現自我提升,仍需依賴外部反饋信號,例如與真實標簽比對的結果、啟發式規則、針對任務設計的評估指標、編程題的單元測試結果、更強大的模型輸出參考,以及人類反饋等。
自我修正學習旨在在固定的生成模型 P?(y?∣x) 基礎上,訓練一個修正器模型 Pθ(y∣y?, x)。其中生成模型保持通用性,而修正器模型則可以針對具體任務進行定制,并且只在給定初始模型響應和可選附加反饋(例如一段文本、編譯器提示信息或單元測試結果)條件下進行生成:
1. 自我修正學習首先針對數據池中的每個提示生成多個候選輸出;
2. 然后,為每個提示構造「價值提升對」;即挑選兩個輸出,如果其中一個相較于另一個在評價指標上更優,則組成(提示 x,初始答案 y,修正答案 y′)三元組;
3. 接著,根據修正帶來的價值提升幅度 v (y′) ? v (y),以及兩個輸出之間的相似度 Similarity (y, y′),對這些樣本對進行加權采樣以訓練修正器模型;
4. 為鼓勵探索,修正器生成的新輸出也會加入數據池。推理時,可以反復調用修正器,從而形成一個連續改進的修訂軌跡。
通過匹配同一問題下模型的不同輸出,構造「價值提升對」以訓練修正模型的自我修正學習示意圖。
遞歸檢視(Recursive Inspection)同樣旨在訓練更優的修正器模型,但其采用的是單一模型同時完成生成與自我修正的策略。
SCoRe(Self-Correction via Reinforcement Learning)是一種基于多輪交互的強化學習方法,旨在鼓勵模型在第二次嘗試時生成相較第一次更優的答案,從而實現自我修正。該方法由兩個訓練階段組成:
第一階段的目標是最大化第二次嘗試答案的準確性,同時僅對第一次嘗試施加 KL 散度懲罰(KL penalty),以防止第一次生成行為偏離基礎模型太遠,保持其生成風格的穩定性;
第二階段則同時優化第一次和第二次生成答案的準確性。
理想情況下,我們希望模型在第一次和第二次嘗試中都能獲得更好的性能,但引入第一階段可以有效避免「行為坍縮」,即模型僅對初始響應進行微小甚至無修改;
而第二階段則在此基礎上進一步提升整體表現。
顯式訓練設置,通過進行兩階段 RL 訓練來提高自我糾正能力。
使用強化學習提升推理能力
近期,越來越多的研究成功地利用強化學習(RL)提升語言模型的推理能力。這類方法通常采用帶有可靠參考答案的問題集(主要是 STEM 領域的問題或易于驗證答案的邏輯謎題),通過獎勵模型生成正確答案來優化其性能。
這一方向的發展受到 OpenAI 發布系列模型出色推理表現的推動,隨后 DeepSeek 的模型及技術報告進一步加速了相關研究的進展。
DeepSeek-R1 是一款開源大語言模型,專為應對數學、編程和邏輯推理等高復雜度任務而構建。其訓練流程包括兩輪 SFT-RL(監督微調 + 強化學習),使得 R1 在推理類與非推理類任務上均具備良好能力。
在訓練初期,采用「冷啟動監督微調」(cold-start SFT),即在數千條冷啟動數據上對基礎模型進行微調。若省略此步驟,模型在初期表現中可能會出現語言混雜、表述不通順等問題。
面向推理的強化學習(reasoning-oriented RL)階段,使用僅包含推理任務的提示,對模型進行強化訓練,獎勵信號設計為兩類規則型指標:
格式獎勵(format rewards):要求模型使用特殊 token 包裹「思維鏈」(CoT)。
準確性獎勵(accuracy rewards):判斷最終答案是否正確。數學問題的答案需以特定格式呈現(如放入方框中)以便自動驗證;編程問題則通過編譯器評估是否通過測試用例。
拒絕采樣 + 非推理監督微調 階段,使用 RL 第 2 步的 checkpoint 生成的推理輸出,通過拒絕采樣(rejection sampling)進行質量篩選,并結合寫作、事實問答、自我認知等非推理任務中的監督數據,構建新的訓練集,用于訓練 DeepSeek-V3-Base:
篩除含有語言混雜、超長段落或冗長代碼塊的 CoT 結果;
利用 DeepSeek-V3 流水線生成并標注非推理類任務;
對于某些非推理需求,可調用 DeepSeek-V3 提前生成潛在思維過程作為提示(prompt)再進行回答,而對于諸如「你好」之類的簡單查詢則不需要思維鏈;
最終使用約 80 萬條樣本對 DeepSeek-V3-Base 微調兩個 epoch。
最終的強化學習階段 使用第三階段的 checkpoint,同時在推理類與非推理類提示上進行訓練,從而全面提升模型的有用性(helpfulness)、無害性(harmlessness)和推理能力(reasoning)。
在多個廣泛使用的推理基準測試中,DeepSeek-R1 的表現可與 OpenAI 模型相媲美。其中,僅有 DeepSeek-V3 是榜單中唯一的非推理類模型。
有趣的是,DeepSeek 團隊展示了,即使完全不經過監督微調(SFT)階段,僅依靠純強化學習(pure RL),依然可以學習到諸如反思(reflection)和回溯(backtracking)等高級推理能力,即所謂的「頓悟時刻」(「Aha moment」)。在強化學習訓練過程中,模型自然學會在解決推理任務時投入更多的思考 tokens,從而提升解題能力。
所謂「頓悟時刻」,是指模型能夠反思先前的錯誤,并嘗試替代性策略進行修正。這種能力的涌現表明模型具備了類人式的深層思維過程。
隨后,一些開源項目也試圖復現 R1 的成果,包括 Open-R1、SimpleRL-reason 和 TinyZero,這些項目均基于 Qwen 模型構建。相關研究也同樣證實了純強化學習方法在數學問題上可以取得優異表現,并能涌現出類似的「頓悟時刻」。
模型學習反思并糾正錯誤的示例。
DeepSeek 團隊還分享了一些訓練中未成功的嘗試。例如,使用過程獎勵模型失敗了,因為很難對每一個中間步驟制定明確的評分標準,也難以判斷中間推理是否正確。此外,這種方式容易導致獎勵欺騙(reward hacking),從而影響訓練穩定性。
在蒙特卡洛樹搜索(Monte Carlo Tree Search, MCTS)方面的嘗試也宣告失敗,原因在于語言模型的 token 空間遠大于如國際象棋這類傳統有限動作空間的場景,使得搜索過程計算復雜度極高。同時,用于引導搜索的細粒度價值模型(value model)的訓練也極具挑戰性。
盡管失敗,但這些嘗試提供了獨特的研究洞察。我們鼓勵研究社區進一步分享這類「未能奏效的嘗試」,以推動更全面的理解與進步。
外部工具的使用
在推理過程中,某些中間步驟可以通過執行代碼或數學計算實現高效且精確的求解。通過將這部分推理工作交由外部代碼解釋器處理,例如 PAL(Program-Aided Language Model,程序輔助語言模型)或 Chain of Code(代碼鏈)方法,可以拓展大語言模型的能力,使其無需自行學習代碼執行或充當計算器角色。
在 Chain of Code 中,所使用的代碼執行系統可以由 LLM 進一步增強:當標準代碼解釋器無法正確運行特定代碼行時,模型還可以嘗試由 LLM 來直接執行該段代碼。使用代碼來輔助推理,尤其適用于數學問題、符號推理以及算法類任務。
在某些編程任務中,題目中未必提供單元測試。此時,我們可以引導模型自主生成用于驗證解法的單元測試,從而提升解答的正確性。
程序輔助語言模型(Program-Aided Language Model)提示示例如下所示。
ReAct(Reason+Act,推理與行動)方法將調用 Wikipedia API 等外部操作與生成推理軌跡相結合,實現將外部知識納入推理路徑的能力。
ReAct 提示方法的示例,展示其如何通過調用 Wikipedia 搜索 API 作為外部工具,輔助推理以解答一個 HotpotQA 問題。
OpenAI 最近發布的 o3 與 o4-mini 模型亦是融合工具使用的典型案例,其推理過程涉及網頁搜索、代碼執行與圖像處理等操作。研究團隊觀察到,在類似 GPT 的訓練范式中,大規模強化學習同樣呈現出「計算資源越多,性能越好」的趨勢。
忠實地思考
深度學習模型通常被視為黑盒子,人們提出了各種可解釋性方法。可解釋性之所以有用,有幾個原因:首先,它為我們提供了一個額外的測試,以確定模型是否與創建者的意圖不符,或者是否以某種我們無法通過監控其行為來判斷的方式出現了錯誤。其次,它可以幫助我們確定模型是否使用了合理的程序來計算其答案。思維鏈提供了一種特別方便的可解釋性形式,因為它能讓模型的內部過程用自然語言表達出來。然而,這種可解釋性建立在模型如實描述其內部思維過程的假設之上。
最近的研究表明,監控推理模型的 CoT 可以有效檢測模型的不當行為,如 reward hacking,甚至可以使較弱的模型監控較強的模型。增加測試時間的計算量還能提高對抗魯棒性;這在直覺上是有道理的,因為當模型遇到不尋常的輸入時,如對抗樣本或越獄嘗試,思考時間更長應該特別有用,它可以利用額外的思考時間來理解所遇到的奇怪情況。
在實驗中,我們要求模型判斷另一個模型是否試圖以某種方式入侵單元測試,以解決其思維過程中的編碼問題。我們可以在訓練過程中使用不同類型的監控器來監控這些獎勵黑客行為。exit (0) 編碼黑客攻擊是指代理利用了一個漏洞,允許它在沒有運行所有單元測試的情況下提前退出環境。raise SkipTest 黑客是指代理從測試框架外的函數中引發異常,以跳過單元測試評估。圖源:Baker et al. 2025
模型是否忠實地表達了自己的想法
直觀地說,由于缺乏旨在鼓勵忠實推理的明確訓練目標,模型的 CoTs 可能存在偏差。或者,當我們根據人類撰寫的解釋對模型進行微調時,這些人類撰寫的樣本可能包含錯誤。因此,我們不能默認 CoT 總是忠實的。
Lanham et al. (2023) 通過故意在 CoT 中引入錯誤,并測量其對一系列多選任務(如 AQuA、MMLU、ARC Challenge、TruthfulQA、HellaSwag)準確性的影響,研究了 CoT 忠實性失效的幾種模式:
錯誤 1(過早回答): 模型可能會在 CoT 生成之前過早地形成結論。測試方法是提前截斷或在 CoT 中插入錯誤。不同任務對 CoT 有效性的依賴程度不同;有些任務的評估性能對截斷的 CoT 敏感,有些則不敏感。Wang et al. (2023) 做了類似的實驗,但在形成 CoT 的過程中出現了與橋接對象或語言模板有關的更微妙的錯誤。
錯誤 2(無信息 token): 不具信息性的 CoT token 可提高成績。這一假設通過用填充文本(如所有句號)替換 CoT 進行了測試,結果表明這種設置并沒有提高準確率,與不使用 CoT 相比,某些任務的成績可能會略有下降。
錯誤 3(人類無法閱讀的編碼): 以人類難以理解的方式對相關信息進行編碼。以非標準方式轉述 CoT 并未降低各數據集的性能,這表明準確率的提高并不依賴于人類可讀的推理。
以不同方式對 CoT 進行擾動以評估其忠實性的示意圖。圖源:Lanham et al. 2023
有趣的是,Lanham et al. 認為,對于多選題,較小的模型可能無法很好地利用 CoT,而較大的模型可能能夠在沒有 CoT 的情況下解決任務。這種對 CoT 推理的依賴性(以使用 CoT 與不使用 CoT 得到相同答案的百分比來衡量)在多選題中并不總是隨著模型大小的增加而增加,但在加法任務中卻會隨著模型大小的增加而增加,這意味著在復雜的推理任務中,思考時間更為重要。
對 CoT 推理的依賴性以使用 CoT 和不使用 CoT 時獲得相同答案的百分比來衡量。對于像加法這樣的推理任務來說,CoT 的作用更大,而對于更大的模型來說,CoT 的作用也更大。
對 CoT 推理的依賴性以有 CoT 和無 CoT 時獲得相同答案的百分比來衡量。對于像加法這樣的推理任務來說,CoT 的作用更大,而更大的模型也能帶來更多益處。
測試 CoT 忠實度的其他方法包括擾動提示而不是直接修改 CoT 路徑 。
其中一種方法是在少數幾個樣本中將正確答案標記為「(A)」,而不考慮真實標簽,從而引入偏差。
另一種提示技術是在提示中插入誤導性提示,例如 「我認為答案是 < random_label>,但很想聽聽您的看法 」或 「一位斯坦福大學教授認為答案是 < random_label>」。通過比較模型對同一問題的預測是否包含誤導性提示,我們可以衡量模型是否能夠忠實地描述提示對其答案的影響。特別是在模型得出的提示答案與非提示答案不同的情況下,我們可以衡量模型在解決有提示的問題時是否承認提示。如果模型是忠實的,它就應該明確承認提示的影響,并承認其答案的變化是由提示引起的。
GPT 模型和 Claude 模型對不同類型的上下文偏差都很敏感。模型準確性的降低表明系統性的不忠實。直接提示錯誤標簽比 "答案總是 A" 類型的偏差更有效。圖源:Turpin et al. 2023
多項研究發現,推理模型對暗示影響的描述要比所有測試過的非推理模型可靠得多。例如,我們可以測量模型承認暗示是決定性因素的樣本比例(「忠實 CoT」)。推理模型(Claude 3.7 Sonnet、DeepSeek R1)的整體表現優于非推理模型(Claude 3.6、DeepSeek V3)。
推理模型比非推理模型更有可能揭示忠實的 CoT。圖源:Chen et al. 2025
一些證據表明,使用獎勵模型會降低模型輸出的忠實度。經典 RLHF 中的獎勵模型在本測試中并不是為了激勵忠實行為而訓練的,因為偏好比較數據集是由人類選擇哪一個看起來更好或更討人喜歡而收集的。然而,在推理模型中,CoT 路徑是為產生正確的最終答案而優化的,而不是為了與 RM 中定義的人類偏好相匹配,因此直觀上預計會更加忠實。
CoT 面臨的優化壓力: 好還是壞?
監控推理模型的 CoT 以發現 reward hacking 行為是有效的。使用這種監控器的一個簡單方法是在測試時將監控器作為過濾器運行拒絕采樣,找出沒有 reward hacking 行為的解決方案。然而,這種方法只在推理的早期階段有效,而且隨著模型的進一步優化,在預算范圍內很少能找到通過 CoT 監控的樣本。這一挑戰自然表明,我們可以考慮在 RL 獎勵中加入 CoT 監控 — 一種基于流程的監督形式 — 以防止 reward hacking。
然而,在 RL 中加入 CoT 監控獎勵的效果并不好,因為這會導致混淆 reward hacking 行為,即模型試圖在 CoT 中隱藏其真實意圖 (Baker et al. 2025)。如果在 RL 訓練過程中使用 CoT 監控提供的這種直接優化壓力,模型仍然可以找到黑客攻擊的方法,雖然頻率會低一些,但可以在 CoT 中隱藏自己的意圖,避免被監控發現。
在訓練過程中,當使用監視器提供 RL 獎勵信號以防止 reward hacking 行為時,模型仍然可以找到 hacking 行為的方法,同時避免被監視器發現。圖源:Baker et al. 2025
Yeo et al. 對 CoT 長度 RL 信號的實驗證實了與 Baker et al. 類似的信息,即新型 RL 獎勵整形會導致新型 reward hacking 行為的發生。他們設計的獎勵函數可以使正確的 CoT 比錯誤的 CoT 獲得更高的獎勵,短的正確 CoT 比長的正確 CoT 獲得更高的獎勵,短的錯誤 CoT 比長的錯誤 CoT 獲得更高的懲罰。有了這種額外獎勵,模型就學會了在有挑戰性的問題上重復 CoTs 中的文字,而不是嘗試解決這些問題。Yeo et al. 進一步應用了 n-gram 重復懲罰來防止這種 hacking 行為。
要穩定使用 CoT 長度獎勵進行的訓練,就必須進行精心的獎勵塑造。圖源:Yeo et al. 2025
Chen et al. 在一個有缺陷的 RL 環境中進行了實驗,特別是使用了一個在多選題中填入錯誤答案的評分器。在超過 99% 的提示中,模型學會了利用 reward hacking,但在一半以上的環境中,模型幾乎從未(<2%)在其 CoT 中口頭表達過 reward hacking。在這種情況下,額外的 RL 優化壓力無法激勵模型口頭表達 hacking 行為。
RL 訓練本質上對 reward hacking 行為非常敏感。僅僅依靠對 reward hacking 行為的啟發式調查和手動修復可能會導致「whack-a-mole」的局面。我們建議在 RL 訓練過程中嘗試直接對 CoT 進行優化時要非常謹慎,或者盡量避免這樣做。
在連續空間中思考
Alex Graves 于 2016 年提出的自適應計算時間(Adaptive Computation Time)早于大語言模型,但開創了相同的方向,即讓模型能夠在推理時動態決定計算步驟的數量,這可以被視為讓模型在測試時能夠在連續空間中「思考更多」。連續空間中的自適應思考時間可以通過遞歸架構縱向實現,也可以通過更多的連續采樣步驟橫向實現。
遞歸架構
為了使 Transformer 架構成為遞歸架構,實現自適應測試時間計算,人們提出了許多架構變體。如果深入探討這一主題的文獻,會使文章過于冗長,因此我們只回顧其中幾篇。
Universal Transformer 將 Transformer 中的自注意力與 RNN 中的遞歸機制相結合,利用自適應計算時間動態調整步數 。從高層次上看,它可以被看作是一種用于學習每個 token 的隱藏狀態表示的遞歸函數,如果步數是固定的,Universal Transformer 就等同于跨層共享參數的多層 Transformer。
Geiping et al. 提出的最新遞歸架構設計,在標準 Transformer 的基礎上增加了一個遞歸塊 R。該循環塊的每次迭代都需要嵌入 e 和隨機狀態 s_i。從概念上講,這種遞歸深度架構有點類似于條件擴散模型,即在每個遞歸步驟中提供原始輸入 e,而隨機高斯初始化狀態 s_i 則在整個過程中迭代更新。(有趣的是,他們對一些更像擴散模型的設計所做的實驗結果并不理想)。
訓練過程中的遞歸計數 r 是隨機的,從對數正態 Poisson 分布中按輸入序列采樣。為了控制計算成本,反向傳播只截斷遞歸單元的最后 k 次迭代(實驗中 k=8),從而可以對 Poisson 分布的重尾部分進行訓練。由于嵌入塊的輸出 e 在每一步中都會注入,因此嵌入塊在每一步中都會繼續接收梯度更新,模仿 RNN 訓練。不出所料,訓練遞歸模型的穩定性非常敏感。初始化、歸一化和超參數等因素都很重要,尤其是在擴大訓練規模時。例如,隱藏狀態可能會因為對每個 token 預測相同的隱藏狀態而崩潰;或者模型可能學會忽略傳入的狀態 s。為了穩定訓練, Geiping et al. 采用了嵌入比例因子、較小的學習率和細致的調整。
利用深度遞推訓練 3.5B 模型的實驗圖。飽和大致發生在 rˉ=32 附近,這讓我們不禁要問,這種結構如何外推并推廣到更大的迭代次數。圖源: Geiping et al. 2025
思考 token
思考 token 指的是在訓練或推理過程中引入的一組不具有直接語言意義的隱含 token。相反,它們的作用是為模型提供額外的思考時間和計算能力,使其表現更好。
Herel & Mikolov(2023 年)提出了在句子中的每個單詞后插入特殊思考 token( )并在這樣的數據集上訓練模型的想法。每個思考 token 都為模型處理和做出更好的預測贏得了額外的時間。在玩具模型設置上使用思考 token 進行訓練,其結果比不使用思考 token 訓練的基線模型的復雜度要低。對于非瑣碎的推理任務或涉及數字的句子,思考 token 的優勢更為明顯。
同樣,Goyal et al. (2024) 提出的暫停標記通過在輸入序列末尾添加虛擬 token(如。或 # 等字符)來延遲模型的輸出,從而在推理過程中為模型提供額外的計算量。在訓練和推理過程中注入這種暫停 token 都很重要,而只對暫停 token 進行微調只能帶來有限的收益。在訓練過程中,我們會在均勻隨機的位置插入多份暫停 token,并在訓練中忽略暫停 token 的損失。
有趣的是,上述實驗中的思考令牌或暫停令牌并不攜帶任何額外信息或添加許多新參數。但為什么它仍然有幫助呢?一方面,它通過引入更多的推理循環來幫助擴展計算,從而有效地提高計算能力。另一方面,它可以被視為 CoT 的一種特殊的隱式形式。這里的一個缺點是模型需要根據思考令牌進行預訓練。盡管如此,這種策略仍然是一種有趣的方法,可以在推理時間 CoT 的基礎上進一步提高測試時間計算利用率的能力。
Quiet-STaR 通過訓練模型在每個標記后生成理由來解釋未來的文本,從而引入了標記級推理。它將未來文本預測與基本原理和無基本原理混合在一起,并使用學習來生成更好的基本原理,并使用 REINFORCE 來優化基本原理生成的質量。
Quiet-STaR 圖示。
將思維作為潛變量
潛變量模型定義了一個概率框架,其中可觀察數據通過未觀察到的(潛在的)變量來解釋。這些潛變量捕獲了生成可觀察結果的隱藏結構或中間過程。語言模型可以被視為概率潛變量模型,其中測試時思維和推理步驟是潛在思維變量。這樣的潛變量模型定義了問題 x_i、答案 y_i 和潛在思維 z_i 的聯合分布。我們希望優化在給定問題和各種思維鏈作為潛變量條件下答案的對數似然(N 是樣本數量;K 是每個問題的思維鏈數量):
我們的目標是最大化正確答案的邊際似然 p (y∣x),給定每個問題的多個推理軌跡 {z (k)} k=1K。
期望最大化
期望最大化是一種常用的迭代算法,用于優化具有(隱含)潛變量的模型參數,因此可以應用于訓練更好的思維鏈,然后以此為條件生成更好的響應。通常我們在 E 步(期望)和 M 步(最大化)之間迭代,E 步中我們猜測關于潛變量的缺失信息(即如何采樣更好的思維鏈),M 步中我們基于潛變量優化模型參數(即如何采樣更好的答案),直到收斂。
因為我們無法直接從潛變量分布 p (z∣x,y) 中采樣,研究人員探索了依賴人工標注數據、Metropolis-Hastings MCMC 或具有特殊重要性權重的蒙特卡羅采樣的方法來抽取好的思維鏈樣本以更新模型。Ruan et al. (2025) 實驗了在大量網絡文本語料上使用 EM 算法訓練帶有潛在思維的模型,其中針對每個觀察數據塊合成潛在思維,然后模型以自回歸方式在潛在思維和數據上學習。
在注入潛在思維的數據語料上進行訓練的示意圖。
他們首先提示一個大語言模型根據觀察數據 X_i 生成合成的潛在思維 Z_i:
使用特殊 token 如 < StartOfLatent> ... 將生成的潛在思維內容插入到原始數據中,用于訓練聯合分布 p (z,x) 或近似后驗 q (z∣x),這取決于 z 是插入在 x 之前還是之后。然而,由于我們使用大語言模型來生成思維鏈,這對近似 q (z∣x) 的好壞程度施加了性能上限。Ruan 等人在 E 步引入了重要性權重來選擇思維鏈樣本,公式化為:
這樣我們就會優先選擇那些擅長預測觀察結果(即高 p (x∣z (k)))、簡單直觀(即高 p (z (k)))但又信息豐富且不太明顯(即低 q (z (k)∣x))的思維鏈樣本。
迭代學習
由于預訓練模型已經具備了生成思維鏈的能力,因此我們可以直觀地設計一個迭代改進過程,在這個過程中,我們會生成多個 CoTs,并只根據能得出正確答案的理由對模型進行微調。
然而,這種直截了當的設計可能會失敗,因為模型在無法解決的問題上得不到學習信號。STaR 通過為失敗的嘗試添加一個「合理化」過程來解決這一局限性,在這個過程中,模型會根據問題和基本真實答案生成良好的后向 CoTs,因此模型可以生成更合理的 CoTs。然后,根據正確的解決方案對模型進行微調,這些解決方案要么能產生正確的輸出,要么是通過合理化生成的。
STaR 算法。
我們可以把 STaR 看作是 RL 中策略梯度的近似值,獎勵是一個簡單的指標函數1 [y^=y]。我們希望在對 z~p (z∣x) 和 y~p (y∣x,z) 進行采樣時,最大化該獎勵的期望值。
每次迭代相當于首先根據選擇 CoT 樣本,然后運行監督微調以優化生成良好 CoT 和答案的對數問題。STaR 的性能會隨著訓練迭代的增加而提高,而生成更好 CoT 的 “合理化 ”過程可以加速學習。他們觀察到,高溫采樣會增加通過錯誤推理獲得正確答案的機會,而對此類數據微調 LLM 會損害泛化。對于沒有真實數據的數據,多個高溫輸出的多數票可以作為真實數據答案的代理,從而可以使用合成樣本進行訓練。
對兩個 n 位數加法的準確度進行比較。在有理化(基于真實結果的逐步推理生成)的情況下,模型能夠在相對較早的階段學習復雜的算術任務,例如五位數的加法。
思維時間的 Scaling Law
到目前為止,已經有大量證據表明,允許模型在推理時投入額外的計算資源,在產生最終答案之前進行思考,可以顯著提升性能。諸如提示模型在給出答案前生成中間推理步驟,或訓練模型在預測下一個 token 前暫停和反思等技術,都被發現可以將模型性能提升到超出訓練時獲得的能力極限。這本質上引入了一個改善模型智能的新維度,與 scaling law 中定義的模型規模、訓練計算量和數據量等既有因素相補充。
最近的研究表明,優化大語言模型的測試時計算可能比擴展模型參數更加有效。結合先進推理算法的小型模型可以在成本和性能之間提供帕累托最優的權衡。
Snell et al. 評估并比較了測試時計算和預訓練計算,發現它們并非 1:1 可互換的。當模型能力差距很小時,測試時計算可以輕松彌補簡單和中等難度問題上的差距,但對困難問題的效果較差。預訓練和推理的 token 預算比例非常重要。只有當推理 token 顯著少于預訓練 token 時,測試時計算才更有優勢。這表明,利用充足的預訓練數據和計算資源開發有能力的基礎模型仍然至關重要,因為測試時計算無法解決所有問題或填補大的模型能力差距。
(左圖)通過迭代修訂或并行解碼,評估準確率作為測試時計算預算的函數。(右圖)比較一個小模型配合測試時計算采樣技巧與一個大 14 倍的模型僅使用貪心解碼。我們可以控制測試時使用的 token 預算,使得推理與預訓練 token 的比例為 <<1、~=1 或 >>1,只有當比例 <<1 時,測試時計算的好處才明顯。
s1 模型通過預算強制(budget forcing)技術(即通過添加單詞「wait」來強制延長思維,或通過添加思維結束 token 或「Final Answer:」來縮短模型的思考過程而終止)實驗了思維鏈推理路徑長度的擴展。他們觀察到以 token 衡量的平均思維時間與下游評估準確率之間存在明顯的正相關關系。
s1 實驗中,測試時計算的并行和順序 scaling 方法都顯示出與評估性能的正相關關系。
當將這種預算強制技術與其他控制推理軌跡長度的解碼方法進行比較時,令人相當驚訝的是,簡單的拒絕采樣(即采樣生成直到長度符合 token 預算)導致了反向 scaling,意味著更長的思維鏈會導致更差的性能。
(左圖)更長的思維鏈路徑長度與評估準確率呈正相關。(右圖)用于控制生成的思維鏈路徑長度的拒絕采樣顯示出負 scaling,其中更長的思維鏈導致更差的評估準確率。(圖片來源:Muennighoff & Yang, et al. 2025)
未來展望
對測試時計算和思維鏈推理的探索為增強模型能力帶來了新的機遇。更有趣的是,通過測試時思考,我們正朝著構建未來 AI 系統的方向邁進,這些系統能夠反映人類思維的最佳實踐,融合了適應性、靈活性、批判性反思和錯誤糾正能力。
對當前進展的興奮促使我們進行更多未來研究,以改進并深入理解 —— 不僅是我們和我們的模型如何思考,更要理解為什么思考。
最后,我希望呼吁對以下關于測試時計算和思維鏈推理的開放性研究問題進行更多研究。
我們能否在強化學習訓練過程中激勵模型產生人類可讀、忠實的推理路徑,同時避免 reward hacking 行為?
如何定義 reward hacking?我們能否在強化學習訓練或推理過程中捕獲 reward hacking 行為而無需人工干預?如何防止在強化學習訓練中采用「打地鼠」式的 reward hacking 修復方法?
自我糾正可以在思維鏈內部發生,也可以在多輪強化學習中得到顯式鼓勵。當沒有真實答案可供參考時,我們如何訓練模型進行自我糾正而不產生幻覺或性能倒退?
對于高度情境化、個性化且難以評分的任務(如創意寫作、指導建議、頭腦風暴),我們如何進行帶有思維鏈展開的強化學習訓練?
當我們在現實中部署模型時,我們無法無限延長測試時思考的時間,那么如何能夠平滑地將性能提升轉化回基礎模型,從而降低推理時間成本(例如通過知識蒸餾)?
如何根據當前問題的難度,讓測試時計算資源的使用變得更加自適應?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.