MKMK 的 AI 筆記
動手學大模型 12 問

第 2 篇/共 12 篇

為什麼對 AI 說「加油」,答案會變好?

閱讀約 9 分鐘(約 1,451 字)發布 分類 一人公司工作流+學習系列

#提示詞#思維鏈#LLM

為什麼對 AI 說「加油」,答案會變好?

一句「我們一步一步想」為什麼能讓 AI 算對數學?用交大第 2 章看懂零樣本、少樣本、思維鏈與自我一致性。

本文目錄
  1. 一句話回答
  2. 為什麼值得知道
  3. 白話原理
    1. 零樣本 vs. 少樣本
    2. 思維鏈:把一大步拆成很多小步
    3. 程式思維鏈(PoT)
    4. 自我一致性:多想幾次,投票決定
  4. 教程裡實際做了什麼
  5. 動手試試
  6. 常見誤解
  7. 延伸閱讀

一句話回答

讓答案變好的不是「加油」這兩個字的情緒,而是你的話改變了模型接下來要寫什麼。像「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。步驟大致如下:

  1. 申請 API 權限:原文列了通義千問、智譜 AI、OpenAI 等,任選一家開通,拿到 API Key。
  2. 兩種呼叫方式:先在網頁的模型體驗介面試,再用 Python 呼叫;示範了一般呼叫和串流(streaming)輸出,範例模型是 qwen-turbo。
  3. 提示學習:用機器翻譯(英翻法)和面向情感分析兩個任務,對照零樣本和少樣本的寫法。
  4. 思維鏈:用小學數學應用題資料集 GSM8K 的題目,對照自然語言思維鏈(CoT)和程式思維鏈(PoT),各有零樣本、少樣本版本。
  5. 觀察與思考:
    • 把少樣本範例改成錯的答案,結果會怎樣?(引用 ACL 2023 的 Understanding-CoT 研究)
    • 用自我一致性多次採樣、投票,看正確率能不能提升(ICLR 2023 論文)。
  6. 進階(選做):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 。內容由 MK 以自己的話解說,如有錯誤歡迎留言指正。

追蹤 MK,掌握最新 AI 工具應用

每週分享 GitHub 飆星實測、AI 工具教學與提示詞,短影片版都在社群。