從提示到被訓練出來的推理
思維鏈提示是從一個通用模型身上「哄」出推理。推理模型(reasoning models)更進一步:它們被刻意訓練在回答前先產生長長的內部思維鏈,通常用一種獎勵「答對最終答案」的強化學習(reinforcement learning)。模型不只是在模仿範例——它被最佳化去把題目做對,於是它自己發現:想久一點是有幫助的。
看得見的效果很驚人:問推理模型一道困難的數學或程式題,它可能會「思考」好幾秒,吐出數百到數千個字的私下工作過程,最後才給一個簡短的答案。那些工作過程的字,本質上仍是普通的思維鏈——只是量大得多,而且是訓練出來的,不是提示出來的。
一个循环:每生成一个词元就反馈回去以产生下一个,逐步构建长链思考。
在回答時花運算
這正是測試時運算(test-time compute)的核心:即使模型權重固定,你也能用回答當下的額外運算去換取更高的正確率。更長的思維鏈、好幾次取樣的嘗試、一次明確的搜尋——這些都讓每道題花更多運算,並且通常能提升困難任務上的表現。它把「能力」重新定義成你可以在推論時調高的東西,而不只是訓練時烤進去的東西。
其中一個特別乾淨的版本是推論時搜尋(inference-time search):產生許多候選解或許多部分步驟,替它們評分,留下最好的——這是疊在生成之上的「N 選最佳」或集束(beam)式搜尋。模型變成了提案者;由一個評分器決定哪些提案存活。
一棵可交互的搜索树,分叉出候选的下一步并扩展得分最高的节点。
檢查自己的作業
搜尋需要一個評分器,而其中一個強力的評分來源就是模型自己。自我驗證(self-verification)讓模型檢視一個候選答案、判斷它是否正確——重新推導一次結果、把解代回原方程式,或評點一份草稿。驗證往往比求解容易,這正是它有幫助的原因:一個較弱的檢查,仍能從一個強力提案者產出的眾多錯誤答案中濾掉許多。
推論運算 vs 訓練運算
這在策略上為何重要?多年來,造出更好模型的主要槓桿是訓練:更多參數、更多資料。測試時運算開啟了第二根槓桿——推論運算的擴展(inference-compute scaling)。實證上,讓一個固定的模型想久一點,能沿著它自己的曲線提升正確率,有時甚至追平一個大得多的模型給出簡短答案的水準。這兩根槓桿之間的取捨,就是推論 vs 訓練運算的研究主題。
一张对数-对数图,损失随计算量增加而下降,展示增加计算带来的可预测收益。
實務後果是:長時間思考不是免費的。每個推理用的字都要花錢、增加延遲。真正的本事是把投入對齊難度——簡單的查詢就用快速的直接回答,把深度的測試時運算留給那些真正困難、正確率的提升足以抵掉等待的題目。