🎯 什麼情境該想到我
當你「想讓模型做推理(算術、邏輯、規劃),在考慮要不要叫它『一步一步想』、要不要多跑幾次投票、或讓它探索多條思路」的時候。
⚙️ 怎麼用(步驟 / 公式)
0. 先判斷:該不該用思維鏈
動機:書引 Flat Scaling Curves 現象,模型變大後語意理解、翻譯會變強,但算術、常識、符號推理不太跟著變好;加了思維鏈,推理能力才會隨規模提升。
但書明確列出不該用的情況,依任務、模型規模、模型能力三點判斷:
| 條件 | 結論 |
|---|---|
| 任務簡單(情感分類、常識問答) | 標準 prompt 就夠,思維鏈難以加分,反而增加複雜度 |
| 模型小(書的例子是十億級) | 可能產生不連貫的推理鏈,比標準 prompt 更差;書說思維鏈在千億級模型上才顯著有效 |
| ★ 模型做過推理方向的指令微調(ChatGPT、GPT-4、LLaMA2-Chat) | 不給指令也會自己寫出推理步驟;很多情況下不加思維鏈指令反而更好(書推測已在微調中內化) |
| Base 模型(LLaMA2-13B-Base 等)做推理題 | 適當的思維鏈提示能激發推理能力 |
1. 三種模式(書的分類)
| 模式 | 比喻 | 結構 | 方法 |
|---|---|---|---|
| 按部就班 | 照預定路線一步步走 | 單一條推理鏈 | CoT、Zero-Shot CoT、Auto-CoT |
| 三思後行 | 在森林裡每走一步就停下來評估,可回頭 | 樹或圖,可回溯 | ToT、GoT |
| 集思廣益 | 開會整合各方意見 | 多條獨立推理鏈,最後彙整 | Self-Consistency |
2. 各方法怎麼做
-
CoT(少樣本):在 prompt 放幾個手寫的「題目 → 推理步驟 → 答案」示範。缺點:要人工寫很多示範,而且效果強烈依賴示範品質。
-
Zero-Shot CoT:不用示範,分兩次呼叫:
- 問題後面接「Let’s think step by step/讓我們一步一步思考」,讓模型寫出推理;
- 把「原問題+第一步的推理」接起來,結尾加「Therefore, the answer is/因此,最終答案為」,取出最終答案。
書說在多個推理任務上可媲美、甚至勝過少樣本 CoT。
-
Auto-CoT:自動產生示範。用聚類從題庫挑題,用 Zero-Shot CoT 幫這些題寫推理鏈當示範,再接觸發句回答新問題。(書寫「挑跟使用者問題同一群的題」;原論文是每群各取一題以求多樣性,兩者描述不同。)
-
Self-Consistency:用隨機取樣(temperature > 0)跑 N 條推理路徑,收集各自的最終答案,取出現最多次的。★ 不綁定特定 CoT 形式,可以疊在任何一種上面。成本約是單次的 N 倍。
-
ToT(思維樹):四件事要設計:
- 拆解:一步要多大,數學題是一行等式,寫作是一段大綱;
- 衍生:產生下一步候選。思路空間大(寫作)時用多個示範擴大候選;空間受限(24 點)時在 prompt 寫明規則限制候選;
- 評估:讓模型對節點投票或打分,砍掉不可能的分支;
- 搜尋:BFS/DFS,或 A*、蒙地卡羅樹搜尋。
書的 24 點例子:輸入 4 9 10 13,每步挑兩個數運算產生子節點,讓模型評估剩下的數「能/可能/不可能湊成 24」,只保留有希望的節點,BFS 往下展開。其中一條成功路徑是 13−9=4、10−4=6、4×6=24。
-
GoT(思維圖):把樹擴成有向圖,可以合併不同分支的結果,也能自我反思修正。
3. 選型
書在 3.4.3 的建議:
| 需求 | 選 |
|---|---|
| 只要邏輯推理、不需領域知識 | Zero-Shot CoT/Auto-CoT |
| 要高準確、高可靠(例如寫程式時生成多個版本挑最一致的) | Self-Consistency |
| 帶創意的任務(例如寫故事時探索不同情節) | ToT/GoT |
成本面是我依機制推導的:單次 CoT ≈ 1 次呼叫(Zero-Shot CoT 是 2 次);Self-Consistency ≈ N 次;ToT/GoT ≈ 節點數 ×(衍生+評估),常常是幾十次起跳,延遲也最高。先用最便宜的,評估集上不夠再升級。
4. 控制推理寫多詳細
用示範的風格控制輸出:示範只寫「(7−3=4)顆」,模型就只給簡短算式;示範寫完整步驟,模型也寫完整步驟。使用者需要看過程時才放完整示範,省 token。
5. 延伸:用執行結果投票
Text-to-SQL 的 C3 方法把 Self-Consistency 用在 SQL 上:取樣多條 SQL,依執行結果投票選最終答案。能執行驗證的任務(程式、SQL、數學)都可以這樣做,比單純比對文字可靠。
🧪 我實際套用的紀錄
- (尚無)
⚠️ 注意 / 什麼時候不適用
- 對已經會自己推理的對話模型,硬加「一步一步想」可能變差,一定要跟不加的版本比。
- 書裡的效果描述幾乎沒有實驗數字,以自己的評估集為準。
- 「千億級才有效」是書寫作時的經驗,新的小模型經過推理訓練後未必如此,視為方向,不是門檻。
- Self-Consistency 只適合答案可以比對是否相同的任務(數字、選項、SQL 結果);開放式長文沒辦法直接投票。
- 書沒有涵蓋 Least-to-Most、ReAct、Reflexion。需要邊推理邊呼叫工具時,見 ReAct 與 Agent Loop。
🔗 相關工具
- 大模型基礎 —— 3.3、3.4.3 節
- 工具-上下文學習的示例怎麼挑怎麼排 —— 少樣本 CoT 的示範怎麼挑
- 工具-提示工程 —— prompt 整體寫法
- ReAct 與 Agent Loop —— 推理加上工具呼叫的迴圈
- 取樣與解碼策略 —— Self-Consistency 依賴隨機取樣;temperature 怎麼設看這頁