第 2 篇/共 12 篇
為什麼對 AI 說「加油」,答案會變好?
一句「我們一步一步想」為什麼能讓 AI 算對數學?用交大第 2 章看懂零樣本、少樣本、思維鏈與自我一致性。
一句話回答
讓答案變好的不是「加油」這兩個字的情緒,而是你的話改變了模型接下來要寫什麼。像「Let's think step by step(我們一步一步想)」這種句子,會引導模型先寫出中間推理步驟再給答案,多步驟的題目因此比較容易算對。這種技巧叫做思維鏈(Chain-of-Thought, CoT)。
為什麼值得知道
每天用 ChatGPT、Claude、Gemini 的人,其實都在做「提示工程(Prompt Engineering)」,只是不一定知道原理。懂了之後:
- 你會知道什麼時候該給範例、什麼時候該要它先列步驟。
- 遇到算錯、漏條件的回答,你有方法調整,而不是一直重問。
- 開發者把大模型接進產品時,提示寫法直接影響正確率和成本。
交大這章的導讀標題就叫「AI 在線求鼓勵?」,意思是:模型有些答案錯得離譜,但換個問法,它可能就答對了。
白話原理
大模型的本質是「根據前面的文字,預測下一段文字」。所以你給它的開頭,等於替它鋪好了路。
零樣本 vs. 少樣本
| 方式 | 你給什麼 | 比喻 |
|---|---|---|
| 零樣本提示(Zero-shot) | 只有指令,例如「把英文翻成法文」 | 直接交代新同事做事 |
| 少樣本提示(Few-shot) | 指令+幾組「題目→答案」範例 | 先給新同事看三份做好的範本 |
少樣本的好處是模型能從範例學到格式和任務邊界。例如教程裡的情感分析例子,範例示範了「挑出評論中的面向詞,再標正面或負面」,模型就會照同樣格式輸出。
思維鏈:把一大步拆成很多小步
人解應用題時會先寫算式,而不是直接報數字。思維鏈就是讓模型也這樣做:
- 少樣本思維鏈:範例裡不只放答案,還放「先算什麼、再算什麼」的過程,模型就會模仿著寫出步驟。
- 零樣本思維鏈:連範例都不給,只在題目後面加一句「Let's think step by step」。這句話之所以有效,是因為它讓模型的下一段文字變成「推理過程」,而不是急著給一個數字。
所以,「加油」本身沒有魔法;真正起作用的,是讓模型「先想再答」的那句引導。
程式思維鏈(PoT)
另一種做法叫程式思維鏈(Program-of-Thought, PoT):請模型把解題過程寫成 Python 程式,最後由電腦執行算出答案。模型負責「列式」,計算交給程式,就比較不會在乘除上粗心出錯。
自我一致性:多想幾次,投票決定
自我一致性(Self-Consistency)是把溫度(temperature)設成大於 0,例如 0.7,讓同一題跑好幾次、得到好幾條不同的推理路徑,最後選出現最多次的答案。像考試時把一題用三種方法算,三次都得到 24,你就比較放心。
教程裡實際做了什麼
這章用的是雲端 API,不需要自己的 GPU。步驟大致如下:
- 申請 API 權限:原文列了通義千問、智譜 AI、OpenAI 等,任選一家開通,拿到 API Key。
- 兩種呼叫方式:先在網頁的模型體驗介面試,再用 Python 呼叫;示範了一般呼叫和串流(streaming)輸出,範例模型是
qwen-turbo。 - 提示學習:用機器翻譯(英翻法)和面向情感分析兩個任務,對照零樣本和少樣本的寫法。
- 思維鏈:用小學數學應用題資料集 GSM8K 的題目,對照自然語言思維鏈(CoT)和程式思維鏈(PoT),各有零樣本、少樣本版本。
- 觀察與思考:
- 把少樣本範例改成錯的答案,結果會怎樣?(引用 ACL 2023 的 Understanding-CoT 研究)
- 用自我一致性多次採樣、投票,看正確率能不能提升(ICLR 2023 論文)。
- 進階(選做):Auto-CoT 自動產生範例、ReAct 結合推理與行動等;另有用 R-Judge 判斷代理操作是否有風險的安全應用。
硬體:能上網、能跑 Python 即可。API 費用依各家方案,原文提到開通後會獲贈試用額度。
動手試試
不寫程式也能試,打開你常用的聊天 AI,用同一題比較三種問法:
題目:10 個朋友一起玩線上遊戲,7 個人下線了。
留下來的每個人有 8 條命,他們總共有幾條命?
A. 直接問題目
B. 題目後面加:「請一步一步推理,最後再給答案。」
C. 同一個 B 問法,開三個新對話各問一次,看答案是否一致
(改寫自教程的 GSM8K 範例,答案是 3 × 8 = 24。)
要寫程式的話:下載原 repo,打開第 2 章的筆記本,把 API Key 換成你自己的。改用其他家的官方 SDK 也行,邏輯相同。
常見誤解
- 「AI 有情緒,所以要鼓勵它」:模型沒有情緒需求。有效的是提示改變了輸出的結構,例如先寫推理。
- 「每題都加一步一步想就對了」:簡單的查詢、翻譯不一定需要,反而變長、變慢、多花 token。思維鏈對多步驟推理比較有幫助。
- 「推理寫出來了,答案就一定對」:步驟看起來合理,數字仍可能算錯,重要結果還是要自己驗算,或用程式思維鏈交給電腦算。
- 「範例一定要完美」:Understanding-CoT 研究發現,範例裡的推理就算有錯,效果也未必大幅下降,範例跟問題是否相關、步驟是否連貫,影響更大。但這不代表可以亂給範例。
延伸閱讀
- 第 2 章原文:https://github.com/Lordog/dive-into-llms/tree/main/documents/chapter2
- GSM8K 資料集:https://github.com/openai/grade-school-math
- Auto-CoT:https://github.com/amazon-science/auto-cot
- 提示技術整理:https://www.promptingguide.ai/
本文整理自上海交通大學《動手學大模型》第 2 章,原教程:https://github.com/Lordog/dive-into-llms/tree/main/documents/chapter2 。內容由 MK 以自己的話解說,如有錯誤歡迎留言指正。
追蹤 MK,掌握最新 AI 工具應用
每週分享 GitHub 飆星實測、AI 工具教學與提示詞,短影片版都在社群。