⚡ 站長快讀:核心重點
- 文章屬性:科技冷知識 / 規格解析
- 核心結論:Few-shot Prompting 給模型的不是「正確答案」,而是輸出格式、可選範圍與輸入長相;它在推論時發生、不更新任何權重,所以既不是訓練也不是微調,範例一離開對話就失效。
- 適用對象:會用 ChatGPT、Claude、Gemini,但常覺得「我明明講得很清楚,它還是不照做」的人
📌 快速答案
一句話答案:Few-shot Prompting 是在提示詞裡附上幾組「輸入→輸出」範例,讓模型照範例的格式與模式作答,不必微調就能把任務交代清楚。
🔍 故事的起點
2020 年 5 月,OpenAI 丟出一篇標題就講完結論的論文:《Language Models are Few-Shot Learners》。在那之前,要讓語言模型做一件新任務,標準流程是準備數千到數十萬筆標註資料去微調(fine-tuning);這篇論文證明了另一條路——把幾個示範直接寫進提示詞裡,模型在推論當下就能把任務做起來,而且全程「不做任何梯度更新或微調」。這句話是原文寫的,不是後人的詮釋。
從那天開始,Zero-shot、One-shot、Few-shot 這三個詞就變成提示詞工程的基本語彙。但中文圈的說法大多停在「多給範例 AI 會更準」這一層,站長我認為這個講法會讓你用錯地方。想先掌握提示詞的整體寫法,可以從站內 提示詞怎麼寫?10 個技巧讓 AI 聽懂你要什麼 那篇入門;本文則是把其中「給範例」這一招拆到底。這篇文章給你三個一般教學不會講的角度:第一,有研究把範例裡的答案故意標錯,效果幾乎沒掉——這代表 AI 從範例學到的東西跟你以為的不一樣;第二,同一組範例只是換個順序,成績可以從接近當時最佳水準掉到跟亂猜差不多;第三,OpenAI、Anthropic、Google 三家官方文件對「要不要放範例」「要放幾個」的建議並不一致,照抄任何一家都可能踩空,我會把各家原話並排放給你看。
🧪 原理拆解
Zero-shot、One-shot、Few-shot:差的只是你給幾個示範
先把定義釘死。這三個詞的正式定義出自 GPT-3 那篇論文第 2 節(Approach)開頭的四點條列與 Figure 2.1,判準只有一個:在提示詞裡放了幾組完整的「輸入+輸出」示範。
| 模式 | 提示詞裡的示範數 | 論文原始定義重點 |
|---|---|---|
| Zero-shot(0S) | 0 組 | 只給一段自然語言的任務描述,不給任何示範;論文形容它「最方便,但也最困難」 |
| One-shot(1S) | 1 組 | 除任務描述外只允許一個示範;論文說這最接近某些任務交付給人類的方式(舉的例子是人力外包平台上的標註工作,通常示範一次) |
| Few-shot(FS) | 多組 | 給 K 組示範,再給最後一個只有輸入的題目讓模型補完;不允許權重更新 |
論文在同一段定義條列裡對 K 的取值寫得很直白:當時通常設在 10 到 100 之間,理由是 GPT-3 的上下文視窗只有 2,048 個 token,塞得下的量就這麼多。這個數字今天不能照抄——它是被當年那個 2,048 token 的視窗框出來的——但它提醒了一件事:範例數的上限從來不是「越多越好」,而是被視窗和成本框住的工程取捨。
還有一個常被略過的重點:論文明確把 Few-shot 跟 Fine-tuning 對立著寫。Fine-tuning 要「數千到數十萬筆標註樣本」並更新權重;Few-shot 則是在推論時把示範當條件,不做權重更新。所以你在對話框貼三個範例,跟做一次 LoRA 微調 完全是兩回事——前者關掉視窗就沒了,後者改的是模型本身。
為什麼給了範例,模型就突然「聽懂」了
先給結論:範例的作用是把任務的形狀畫給模型看,而不是把知識灌進去。
OpenAI 官方提示詞工程文件的說法是:Few-shot learning 讓你「用提示詞裡的少量輸入/輸出範例把模型導向新任務,而不是去微調模型」,模型會隱性地從那些範例裡抓到模式再套用到你真正的問題上;文件同時建議,提供範例時要盡量展示多樣的輸入與對應的期望輸出。Google 的 Gemini 提示詞設計文件講法幾乎相同:模型會試著從範例中辨識模式與關聯,再套用到生成上;而 Few-shot 提示常見的用途,是規範回應的格式、措辭、範圍與整體模式(原文用的是 often used,不是「最」)。
換句話說,你貼範例不是在「教它知識」,是在限制它的自由度。這也解釋了一個常見現象:你寫了一大段規則,模型還是給你一坨散文;但你貼兩個排版正確的範例,它立刻就照做了。規則是抽象的,範例是具體的——對一個靠模式接龍運作的系統來說,後者的訊號強得多。
反直覺的實驗:範例的答案標錯,效果幾乎不掉
這是本文最值得記住的一段。2022 年一篇被廣泛引用的研究《Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?》做了一件很壞的事:他們把範例裡的標準答案隨機換掉,再看模型表現。
結果是:在一系列分類與多選任務上,隨機替換標籤幾乎不影響效能,而且這個現象在包含 GPT-3 在內的 12 個模型上一致成立。真正驅動效果的是另外三件事——範例提供了(1)標籤空間(可能的答案有哪些)、(2)輸入文字的分布(題目長什麼樣)、(3)整體序列格式(輸入輸出怎麼排)。
站長我的解讀是:範例是在畫界線,不是在教答案。 這對日常使用有兩個直接影響。第一,你不必為了「範例答案要完美」而卡住,格式一致、涵蓋面夠廣通常更重要。第二,反過來說,如果你的任務恰恰需要模型學到某個特定判準,光靠貼範例是不夠的,你得把判準寫成明確指令,或改用微調。
不過這裡要誠實標一句範圍:該研究的實驗集中在分類與多選題型,不能直接外推成「所有生成任務貼錯答案都沒差」。寫程式、翻譯、長文改寫這類開放式輸出,範例的內容正確與否仍然會被模型當成模仿對象。
範例的順序,會決定你拿到接近最佳還是接近亂猜
另一個違反直覺的發現來自 2021 年的《Fantastically Ordered Prompts and Where to Find Them》。研究者發現:同一組範例,只是排列順序不同,結果可以從接近當時最佳水準掉到跟隨機猜測差不多。論文進一步指出,這個現象在各種模型尺寸上都存在(包含當時最大的模型)、跟「挑到哪幾個樣本」無關,而且在 A 模型上表現好的順序,換到 B 模型不一定管用。他們最後用模型自己生成一組人工驗證集、以熵統計挑出好的排列,在 GPT 家族、11 個文字分類任務上拿到約 13% 的相對提升。
實務上你不需要跑熵統計,但要記住兩件事:一,同樣的提示詞跑兩次結果差很多,不見得是你寫壞了,可能只是範例排列的運氣;二,結果不穩定時,先試著換範例順序、或把最接近你目標情境的範例放到最後,比再加三段規則有效率。

三家官方怎麼建議:數字與作法其實不一樣
這是很多中文教學會糊掉的地方——三家官方文件的建議並不一致,直接照抄任何一家都可能踩空。
| 廠商 | 官方建議重點 | 具體數字/作法 |
|---|---|---|
| Anthropic(Claude) | 範例是最可靠的輸出格式、語氣與結構控制手段「之一」(原文為 one of the most reliable ways);要求範例做到相關、多樣、有結構 | 明確建議放 3–5 個;用 <example> 標籤包住單一範例、<examples> 包住整組 |
| Google(Gemini) | 建議一律放 Few-shot 範例,沒有範例的提示詞「很可能比較沒效」;範例夠清楚時甚至可以把指令拿掉 | 未給固定數字,強調要實驗;放太多會 overfit 到範例;所有範例的結構與格式必須一致 |
| OpenAI(GPT 系列) | Few-shot 用來把模型導向新任務,取代微調;範例通常寫在 developer message 裡 | 未給固定數字,強調展示多樣輸入;推理模型另有規則,見下一節 |
其中 Google 那條「格式一致」值得單獨拉出來講:官方文件寫得很清楚,加範例的主要目的之一就是示範回應格式,所以所有範例的結構與格式必須一致,尤其要注意 XML 標籤、空白、換行與範例之間的分隔符號。這也是實務上最常見的翻車點——三個範例的縮排不一樣,模型就會給你三種排版。
範例要放在對話的哪一層?這點只有 OpenAI 講明:文件寫「範例通常作為 API 請求裡 developer message 的一部分提供」;Anthropic 只規定用標籤包住、Google 只規定格式一致,兩家都沒指定層級。想搞懂這些層級誰壓誰,可以看站內 System Prompt 是什麼 那篇的授權階層說明;在一般聊天介面裡沒有這一層,直接寫在訊息裡就好。
一個可以直接抄的骨架
把上面幾條規則收斂成一個結構,實際用起來大概長這樣:
# 任務
把使用者貼進來的產品評論分成「正面」「負面」「中立」三類。
# 規則
- 只輸出一個詞,不要任何說明或標點。
# 範例
<example>
輸入:耳機音質超乎預期,這個價位很難挑剔。
輸出:正面
</example>
<example>
輸入:續航還行,但耳墊摸起來很廉價。
輸出:中立
</example>
<example>
輸入:客服態度差到不行,再也不會買了。
輸出:負面
</example>
# 現在處理這一則
輸入:出貨很快,但外盒有壓痕。
輸出:五個實作原則,對應前面每一段的依據:
- 每個範例的格式逐字一致(Google:結構與格式一致,注意標籤、空白、換行與分隔符)。
- 範例要涵蓋你會遇到的各種輸入,包含邊界案例(Anthropic:相關且多樣;OpenAI:展示多樣的輸入)。
- 標籤空間要在範例裡出現齊全——三個分類就三個都示範到(依《Rethinking the Role of Demonstrations》所指出的三大驅動因素)。
- 從 3 個範例起跳,再視情況加減(Anthropic 建議 3–5;Google 提醒太多會 overfit)。
- 結果不穩就先換順序,而不是先加規則(依《Fantastically Ordered Prompts》)。
什麼時候「不要」給範例:推理模型是例外
前面 Google 講「一律都放」,但 OpenAI 對推理模型的官方建議剛好相反:文件明寫「先試 zero-shot,需要時再用 few-shot」——因為推理模型通常不需要範例就能給出好結果,只有在輸出要求比較複雜時才建議加範例;而且加的時候要確認範例與指令高度一致,兩者有出入反而會產生糟糕的結果。同一份文件還提醒,對推理模型下「一步一步想」這類指令不但沒幫助,有時候還會扣分,因為它本來就在內部做推理了。
所以這兩份文件的建議是真的不一樣,不是誰抄錯了誰。Google 那頁的立場是「一律先放範例」,OpenAI 那頁的立場是「推理模型先試 zero-shot」。站長我不打算幫它們硬圓成一句話——你用哪個平台、跑哪一類任務,就以那家自己的文件為準。我自己的取捨是這樣:
- 你要控制的是輸出格式(欄位、長度、語氣、排版)→ 給範例,而且格式要一致。
- 你要模型想得更深(數學、除錯、多步驟規劃)→ 先不給範例,把目標和限制寫清楚,不行再補。
- 不確定時,先跑 zero-shot 看一次,不滿意再往上加,你會比較清楚範例到底補了什麼。
最後提醒一個容易被忽略的成本:範例是提示詞的一部分,每一輪對話都要重送一次,長期跑量的自動化任務,範例塞太多會直接反映在 token 帳單上。要壓這筆成本,OpenAI 官方文件的作法是把「每次都會重複出現的內容」放在提示詞最前面,以吃到 prompt caching 的快取折扣——範例正好屬於這一類。
💡 總結:冷知識延伸
站長我最想把「Few-shot 是在畫界線、不是在教答案」這句話送給你。多數人第一次聽到「給範例 AI 會更聽話」時,腦中的畫面是模型看了你的範例、學會了你的判斷標準——但 2022 年那個把標籤隨機打亂的實驗告訴我們,至少在分類這類任務上,模型抓走的主要是選項有哪些、題目長什麼樣、格式怎麼排這三件事。
這也順帶解釋了一個冷知識:為什麼提示詞工程裡「格式排版」的份量比多數人想像的重。當範例的效力有很大一塊來自序列格式,那麼縮排、分隔線、標籤這些看起來很無聊的東西,就不是美觀問題,而是訊號本身。
實務上我的習慣是:先用 zero-shot 試一次,看模型自己會怎麼做;不滿意再補一個最接近目標的範例,通常這一步就解決八成問題;還是不對,才補到三到五個並且把格式對齊。反過來一開始就貼十個範例,除了浪費 token,也讓你很難判斷到底是哪一個範例把結果帶偏。
❓ 常見問題
Q:Few-shot Prompting 跟微調(fine-tuning)到底差在哪?
差在有沒有改到模型。GPT-3 論文對 Few-shot 的定義明寫「不允許權重更新」,示範只在推論當下當作條件;微調則是拿數千到數十萬筆標註資料實際更新模型參數。所以 Few-shot 隨開隨用、關掉就沒了,微調是一次性成本換長期生效。
Q:One-shot 有什麼存在意義?一個範例會有用嗎?
論文特別把 One-shot 獨立出來,理由是它最接近某些任務交付給人類的方式——論文舉的例子是在 Mechanical Turk 這類人力外包平台上請人標資料,通常就是示範一次。實務上一個範例的效果經常被低估:當你的問題主要卡在「輸出格式沒講清楚」時,一個排版正確的範例常常就夠了。
Q:範例到底要放幾個?
Anthropic 的官方文件建議 3–5 個;Google 沒給固定數字,但提醒放太多模型會過度貼合範例(overfit);GPT-3 論文當年因為視窗只有 2,048 token,K 通常設在 10 到 100。站長建議從 3 個起跳,依結果加減。
Q:範例裡的答案不小心寫錯,會不會把 AI 帶壞?
在分類、多選這類任務上,研究顯示隨機替換標籤對效果影響很小;但這個結論不能外推到寫程式、翻譯、長文生成這類開放式輸出——那些任務模型會直接模仿範例內容,寫錯就是錯。保險起見還是校對一下。
Q:同樣的提示詞,為什麼有時準有時不準?
除了模型本身的隨機性(可參考取樣溫度的說明),範例排列順序也是一個被低估的變數:有研究指出,同一組範例換順序,結果可以從接近最佳掉到接近亂猜,而且好順序無法跨模型移轉。遇到不穩定,先換順序再說。
🔗 延伸閱讀
- Prompt Caching 是什麼:AI API 費用怎麼一口氣省一半以上
- AI 的 Temperature 是什麼?調成 0 就真的不會亂回答嗎
- Embedding(文字嵌入)是什麼?AI 怎麼把文字變成能算相似度的向量
- 模型蒸餾 Distillation 是什麼?小模型怎麼跟大模型「偷學功夫」
- MCP 是什麼?Model Context Protocol 讓 AI 接上你的工具與資料
📎 參考資料來源
📖 第一級|廠商官方:
- OpenAI|Prompt engineering(Few-shot learning) — 2026-08-29 查證
- OpenAI|Reasoning best practices(Try zero shot first, then few shot if needed) — 2026-08-29 查證
- Anthropic|Claude Platform Docs — Prompting best practices(Use examples effectively) — 2026-08-29 查證
- Google|Gemini API — Prompt design strategies(Zero-shot vs few-shot prompts) — 2026-08-29 查證
📖 第一級|研究論文(標示同儕審查/預印本狀態):
- Brown et al., Language Models are Few-Shot Learners(arXiv 預印本,2020-05-28 投稿;NeurIPS 2020 收錄) — 2026-08-29 查證
- Min et al., Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?(arXiv 預印本,2022-02-25 投稿;EMNLP 2022 收錄) — 2026-08-29 查證
- Lu et al., Fantastically Ordered Prompts and Where to Find Them(arXiv 預印本,2021-04-18 投稿;ACL 2022 收錄) — 2026-08-29 查證
