為何單一條鏈很脆弱
思路鏈提示讓模型在回答前一步步思考,大幅改善了推理。但單一條貪婪的鏈一旦定下某個早期步驟就再也收不回來——開頭附近走錯一步,後面全盤皆輸。更糟的是,模型沒有辦法察覺另一個起手式其實會更輕鬆。解法是結構性的:不要一條推理線,而要產生許多條,再把它們組合起來。
這正是測試期算力的核心:在困難的問題上投入更多推論心力,就像人會在難題上花更久時間。下面三種技巧處在一條結構漸增的階梯上——一組互相獨立的平坦樣本、一棵會分叉的樹,最後是一張一般化的圖。
自我一致性:對獨立樣本投票
自我一致性是這裡最簡單、也常常最強的點子。以非零溫度取樣數條推理鏈,然後對最終答案取多數決,藉此在推理上做邊際化。其洞見在於:抵達正確答案的方式有很多種正確路徑,而抵達錯誤答案的方式則各自零散地錯,於是正確答案會聚集、錯誤則四散。你保留答案、丟掉推理,並讓一致程度成為你的信心訊號。
自洽性对推理过程求边缘化:采样 k 条推理链,返回出现次数最多的答案。
answers = [extract_answer(model.sample(prompt, temp=0.7))
for _ in range(k)]
final = most_common(answers)
confidence = answers.count(final) / k思想樹:帶前瞻的搜尋
思想樹(ToT)把推理變成有意識的搜尋。每個節點是一個部分解——目前為止的幾個推理步驟。從一個節點出發,模型提出數個下一步思考(分支因子),一個價值函式(常常就是模型自己,被要求評估前景)為每個子節點打分,再由經典搜尋策略——廣度優先、深度優先或最佳優先——決定要展開哪些前緣節點。關鍵在於,死路可以被剪枝並放棄,搜尋會回溯到更有希望的分支。這是與單一條快速鏈相對的、那個審慎而緩慢的「系統二」對應物。
如果這讓你覺得像是讓語言模型同時扮演策略(提出走法)與價值網路(評估狀態)的蒙地卡羅樹搜尋,那正是恰當的類比。ToT 是在推理空間中的搜尋,而如同一切搜尋,它的成本隨深度與分支迅速膨脹——所以你要依問題難度去調這兩者。
可交互的蒙特卡洛树搜索,对搜索树的节点进行扩展、打分与回传。
思想圖:合併與精煉
樹禁止兩個分支再度合流,但真實的解題往往會彙整部分結果——分別解兩個子部分,再合併。思想圖(GoT)把樹一般化為任意的思考有向圖,其中一個節點可以有多個父節點。於是新的操作成為可能:彙整(把數個思考合成一個)、精煉(一個思考迴圈回來改進自己),以及生成(像樹一樣分叉)。具有分治形狀的任務——排序、合併文件、集合運算——獲益最大。
在推理之內的反思
這三種方法都需要一個評估思考的辦法。最有彈性的評估者就是模型自己,當成批評者來用——這正是自我反思代理背後的核心想法。產出一個答案或一段部分鏈之後,第二趟讓模型找出瑕疵、檢查限制條件、提出修訂。在 ToT 裡當價值函式用,反思替分支打分;在最終答案之後用,它能在錯誤出貨前攔下它。但要小心校準:模型對自己正確與否的判斷並不可靠,一個自信卻錯誤的批評可能把搜尋推離正確答案。
這一切又組合回上一篇的推理—行動迴圈:每個分支本身都能採取工具行動,所以一個思考的價值可能取決於來自世界的觀察,而不只是模型的自我評估。這種接地——靠執行程式碼或查詢來源來驗證一個分支,而非相信模型的直覺——是讓測試期搜尋真正划算的最可靠途徑。