
昨天談到 GPT-3 時,我們看到一個重要的轉變:模型不一定要重新微調,只要在 Context 裡提供指令與範例,就可能暫時理解我們想做的任務。
但如果今天問模型一道需要多個步驟的問題,例如:
一件商品原價 1,000 元,先打八折,再加上折後價格的 5% 稅金,最後是多少?
模型可以直接回答:
840 元。
也可以把過程寫出來:
1,000 × 0.8 = 800
800 × 0.05 = 40
800 + 40 = 840
兩個答案都一樣,但第二種做法多了一段中間過程,讓我們知道它是怎麼走到答案的。
這種把問題拆成一連串中間步驟,再產生答案的方法,就和今天要談的 Chain-of-Thought(CoT,思維鏈) 有關。對一般使用者而言,可以先把它理解成:
不要只叫模型交答案,也讓它先展開解題步驟。
2022 年,Google Research 等研究者發表〈Chain-of-Thought Prompting Elicits Reasoning in Large Language Models〉,觀察到足夠大的語言模型在 Prompt 中看到幾個包含中間推理步驟的示範後,於算術、常識與符號推理等多步驟任務上的表現可能明顯改善。
這個方法不是替 Transformer 加上一個新的零件,也不是突然插入一顆「邏輯晶片」。模型仍然是昨天談過的 Transformer,也仍然在預測下一個 Token。
差別在於,模型不必一次從問題直接跳到答案;它可以先生成一些中間 Token,把複雜問題拆成較小的步驟。
可以想成原本模型被要求:
問題 → 答案
加入 Chain-of-Thought 後,變成:
問題 → 中間步驟 → 中間步驟 → 答案
這些中間文字一方面把問題拆開,另一方面也像是替模型增加一塊暫時的計算草稿紙。
模型並不是突然獲得更多知識,而是多取得了一些可以用來計算、檢查與延續模式的 Token。原本要心算,現在至少發了一張計算紙,至於會不會算錯,仍然是另一回事。
最初的 Chain-of-Thought Prompting,通常會在 Prompt 裡提供幾個包含推理過程的範例。
例如:
問題:小明有 3 顆蘋果,又買了 2 顆,總共有幾顆?
推理:
小明原本有 3 顆,又增加 2 顆。
3 + 2 = 5。
答案:5 顆。
接著再提供新的題目,讓模型模仿相同的回答結構。
同樣在 2022 年,〈Large Language Models are Zero-Shot Reasoners〉進一步發現,即使沒有提供完整示範,只是在問題後加入類似:
Let's think step by step.
也可能提升大型模型在部分多步驟推理任務上的表現。這種方法被稱為 Zero-shot Chain-of-Thought。
這句話當時幾乎成了 Prompt 世界裡的都市傳說:遇到問題先加一句「請一步一步思考」,彷彿 AI 就會坐直、戴上眼鏡,開始認真作答。(現在常見的模型基本上不需要這一步了)
但它不是萬用咒語。
對簡單的知識查詢、翻譯或格式轉換,硬要求模型長篇推理,可能只會讓回答更慢、更長,甚至在原本簡單的問題上多繞幾圈。Chain-of-Thought 較適合需要計算、規劃、比較條件或多步驟判斷的任務。
有些問題需要草稿紙,有些問題只需要回答「台北是臺灣的首都」,這種不太需要思考的問題。如果每一題都要求寫三頁推導,使用者可能也不會看,直接一路綠燈通行。
不完全一樣。
Chain-of-Thought Prompting 比較像是一種使用方法:透過指令或範例,引導一般大型語言模型生成中間推理步驟。
Reasoning Model 則是產品與研究中常見的廣泛說法,通常指經過特別後訓練、能在作答時投入更多推論計算的語言模型。它們可能在產生最後答案前探索問題、檢查錯誤或嘗試其他解法,以提高複雜任務的成功率;但這不是一個所有研究者都採用相同定義的嚴格分類。
兩者可以先這樣區分:
| 面向 | Chain-of-Thought Prompting | Reasoning Model |
|---|---|---|
| 核心概念 | 用 Prompt 引導模型展開步驟 | 以特別後訓練與更多推論計算處理複雜任務 |
| 是否需要特定模型 | 不一定;一般 LLM 也可嘗試 | 通常需要模型本身具備相應的訓練與推論機制 |
| 主要改變 | 輸入中的指令與示範 | 模型的訓練方式與推論行為 |
| 是否更新參數 | 使用時不更新 | 訓練時會更新;使用時通常不更新 |
| 推論時間 | 常因輸出更多步驟而增加 | 可主動投入更多計算量處理複雜問題 |
以 OpenAI 在 2024 年介紹的 o1 為例,官方說明其透過大規模強化學習,學習如何使用 Chain-of-Thought,包含拆解問題、辨認錯誤與改用其他策略。研究也觀察到,模型在訓練階段投入更多計算,或在回答時花更多推論計算,複雜推理任務的表現可以隨之改善。
2025 年發表的 DeepSeek-R1,也展示了使用大規模強化學習培養推理能力的路線。其推理軌跡中可能出現重新檢查、改變方向,甚至先走錯再回頭的情況。
所以 Reasoning Model 並不是不再做「下一個 Token 預測」。它依然逐步生成 Token,只是經過訓練後,較能在回答前利用更長的推理軌跡與更多推論計算;不同產品未必會把完整軌跡顯示給使用者。
普通模型可能是被我們提醒:「請先想一下。」
Reasoning Model 則比較像是已經接受過訓練,知道遇到複雜問題時,不要拿到題目三秒鐘就舉手交卷。
也不是。
增加推理步驟可能讓模型有更多機會拆解問題、發現矛盾與修正錯誤,但同樣也可能帶來新的問題:
這有點像考試時寫滿整張計算紙。寫得很多只能證明筆很努力,不一定代表答案正確。
因此,Chain-of-Thought 比較像是增加模型處理問題的空間,不是正確性的保證書。對需要外部資料的問題,仍然要查核來源;對數學或程式問題,也可以使用計算器、Python、測試工具或其他可驗證的方法。
部分地端或開放權重的 Reasoning Model,會把推理階段以 <think> 標籤、Reasoning 欄位或其他形式顯示出來;是否顯示、顯示多少,仍取決於模型與介面設計。各位可以去Ollama看一下不同模型的標籤。
接下來,我會用地端模型輸入一個需要多步驟判斷的問題,觀察模型在回答以前做了什麼:它如何拆解問題、是否走錯路、會不會自我修正,以及推理長度和答案品質是否真的有關。
這裡所說的「內心戲」是一種方便理解的比喻。
畫面上看到的是模型生成的推理軌跡(Reasoning Trace),不等於我們直接讀取了神經網路裡全部、真實且完整的內部計算。研究已經發現,模型寫出的 Chain-of-Thought 有時能反映解題過程,有時則可能不完整,甚至與真正影響答案的因素不完全一致。
請打開 ollama_test.md看完整的思維鏈、繁體中文翻譯與模型回覆。
使用模型:
gemma4:26b-mlx執行環境:
Ollama輸入問題:
請問台南手搖飲的「半糖」,換算成台北的甜度標準大概是多少?
這個例子中,模型先把問題拆成「甜度基準」、「南北口味差異」與「換算假設」,接著在草稿中自行提醒:這只是飲食文化的認知,不是數學定律。
它的最終建議是把台南半糖大致對應到台北七至八分糖,極端情況可能接近全糖。這段推理有清楚的結構,但其中的換算與文化差異仍是模型提出的假設,不能因為步驟完整就當成已驗證的事實。
我的觀察:
當模型把步驟寫出來時,我們很容易產生一種感覺:終於可以看見 AI 怎麼想了。
但這裡需要保持一點警覺。
Chain-of-Thought 本身也是模型生成的文字。它可能是解題過程的一部分,也可能是模型為答案整理出來的說明;不同模型、任務與訓練方式,推理軌跡的可信程度並不相同。
因此,看到推理過程後,我們可以問:
換句話說,Chain-of-Thought 讓我們多了一個可以觀察的對象,但沒有讓查核責任消失。
甚至可以說,它讓 AI 從「只交答案的學生」,變成「連計算紙一起交上來的學生」。老師確實比較容易檢查,但計算紙寫得密密麻麻,仍然可能從第二行就算錯。
Chain-of-Thought 最有意思的地方,不只是讓模型表現得更好,而是把「如何走到答案」這件事拉到我們眼前。想看更多案例的可以到day4_practice.ipynb
當我們要求 AI 拆解問題時,其實也在反過來練習自己的思考:這個問題包含哪些條件?中間缺少哪一步?哪個假設需要驗證?我們為什麼相信這個答案?
因此,觀察模型的推理,不只是偷看 AI 的內心戲,也是一面檢查自己思考方式的鏡子。
講到這裡,你可能已經發現:Token、Embedding、Pre-training、Fine-tuning、Chain-of-Thought 一口氣出現後,學習的摩擦力開始變大。再往下塞縮寫,讀者可能還沒學會,就先學會關分頁。
明天,我們就來處理這個問題:當 AI 專有名詞開始大量出現時,如何先建立一個可以放置新知識的鷹架,而不是一開始就被縮寫/專有名詞淹沒。
參考資料