為什麼把步驟寫出來會有幫助
思維鏈推理(chain-of-thought reasoning)的做法,是讓模型在給出最終答案前,先以文字產生工作過程的中間步驟。它為什麼有效,機制其實很簡單:模型寫下的每個字,都會成為它讀取以寫出下一個字的脈絡的一部分。藉著把「先算小計、再加稅」攤開來寫,模型實際上是把後續運算所需的部分結果餵給了自己——寫下的步驟就是它可以倚靠的工作記憶。
這正是第一篇裡慎思 vs 直覺概念的具體形式。直接回答會把所有運算硬塞進產生單一個字的那一次前向傳遞裡;思維鏈則把運算分散到數十個字上,每一個字都能在前一個字的基礎上再往前推。
为什么写出步骤会有帮助:思维链把推理过程 r 显式写出,而不是把它边缘化掉,于是答案以模型自身的推演为条件。
如何引出思維鏈
引出思維鏈有兩種經典做法,都屬於思維鏈提示(chain-of-thought prompting)。零樣本(zero-shot)版本就是在後面加一句指令,例如「讓我們一步一步思考」。少樣本(few-shot)版本則先給出一兩個完整的範例,讓模型在你真正的問題上模仿那種逐步的風格。
Question: A cafe sells muffins at $3 and lattes at $5. A customer buys 4 muffins and 3 lattes. What is the total? Let's think step by step. - 4 muffins at $3 each = 12 - 3 lattes at $5 each = 15 - total = 12 + 15 = 27 Answer: $27
對多條路徑取樣
單一條思維鏈可能很早就轉錯彎,然後信心十足地走向錯誤答案。自我一致性(self-consistency)能修掉很多這類問題:對同一個問題獨立取樣好幾條思維鏈(用非零的溫度讓它們有差異),再對最終答案做多數決。不同的有效路徑往往收斂到同一個正確結果,而錯誤則四散——所以投票偏向真相。
- 用適中的取樣溫度,把同一個問題送出好幾次。
- 讓每一次執行各自產生完整的思維鏈與最終答案。
- 只抽出最終答案,忽略彼此不同的推理文字。
- 把出現次數最多的答案作為共識結果回傳。
自洽性对多条推理路径求边缘:采样 N 条独立的思维链,返回最多链一致认同的最终答案。
分支與拆解
有兩種更豐富的結構,超越了單一直線。思維樹(tree of thought)在每個階段探索好幾個候選的下一步,評估它們,再展開最有希望的——它是在一棵由部分解組成的樹上做搜尋,而不是走一條貪婪的路。由簡到繁提示(least-to-most prompting)則從另一個角度切入:先請模型把一個難題拆成一連串較簡單的子問題,再依序解決,把每個答案餵進下一個。
一棵可交互的搜索树,分叉出候选的下一步并扩展得分最高的节点。