人工智慧

few-shot 提示詞範例該放幾個?3 個判斷重點一次看懂

多數人以為 few-shot 提示詞範例,原則就是塞得越多、AI 回答得越準,但攤開一份公開的實驗數字,故事沒有這麼乾脆。OpenAI 團隊在 2020 年發表的 GPT-3 論文裡測過一項語言理解任務:模型完全不給範例(zero-shot)時,答對率是 76.2%;只給一個範例(one-shot)之後,答對率反而掉到 72.5%,比什麼都不給還低;可是把範例一路加到多個(few-shot)之後,答對率又跳到 86.4%。同一套模型、同一個題目,只是範例數量不一樣,結果卻忽高忽低。

這正是 few-shot 提示詞範例最容易被誤解的地方,範例不是有給就一定加分,數量抓錯,效果甚至會比不給範例更差。要真的靠 few-shot 提示詞範例把 AI 輸出的格式、語氣都控制住,得先搞懂它跟 zero-shot、one-shot 差在哪,再照實驗數字找出範例數量的甜蜜點。先從三者的定義講起。

Few-shot 提示詞是什麼?和 zero-shot、one-shot 有什麼差異?

zero-shot 提示詞不給任何範例,直接把任務要求交給 AI;one-shot 提示詞只搭配一個範例;few-shot 提示詞則放進多個範例,通常兩個以上。範例的基本結構是「輸入-輸出配對」,每個範例先給一段輸入,再接一段你想要的輸出,讓模型從配對裡抓出規律。

zero-shot、one-shot、few-shot 的差別在於提示詞裡放進 0 個、1 個或多個「輸入→輸出」範例配對
zero-shot、one-shot、few-shot 的差別,就在於提示詞裡放進幾組「輸入 → 輸出」範例。

DAIR.AI 整理的 Prompt Engineering Guide 把 few-shot 提示詞定義成一種讓模型做上下文學習(in-context learning)的技巧。你在提示詞裡放進示範,模型就會照著這些示範的模式,去調整接下來的輸出。Anthropic 官方文件也把範例列為引導輸出格式、語氣與結構最可靠的方法之一,一套寫得好的範例,能同時提高輸出的準確度與一致性。

格式一致性特別重要。如果第一個範例用條列式輸出,第二個範例卻換成一段話,模型很容易學到「格式本身也可以變」這個錯誤訊號,反而讓輸出更不穩定。這也是為什麼寫 few-shot 提示詞範例時,格式、用字、標點都該盡量統一,範例才能真的把模型帶到你要的樣子。

範例數量怎麼影響輸出品質?GPT-3 的實驗數字怎麼說?

上一段的反差,其實只是 GPT-3 論文裡一項任務的結果。換到另一項任務,同一套範例邏輯又是另一種樣子。GPT-3 論文測的 LAMBADA 任務,要求模型讀一段文字、猜出最後一個詞。零範例的答對率是 76.2%,只給一個範例反而掉到 72.5%,直到範例數量拉到多個,答對率才明顯拉開差距,衝上 86.4%。同一份論文的 TriviaQA 問答任務,方向穩定得多。零範例答對率 64.3%,加到一個範例就升到 68.0%,範例數量再往上加,答對率也持續墊高到 71.2%。兩項任務放在一起看,範例數量對輸出品質的影響顯然不是一條穩定往上的線,會因任務種類而完全不同。

GPT-3 在 LAMBADA 與 TriviaQA 的準確率顯示範例數量效果因任務而異,LAMBADA 的 one-shot 反而低於 zero-shot
同一套 GPT-3,範例數量對準確率的影響因任務而異;LAMBADA 只給一個範例反而低於零範例(資料來源:GPT-3 論文,OpenAI)。

另一個更值得注意的發現,出現在 SuperGLUE 這套語言理解測驗上。研究團隊測出,GPT-3 只要每個任務放不到八個範例,整體表現就能超越事先微調過的 BERT-Large;但論文實驗最多只測到每個任務三十二個範例,再往上加,效益也隨數量增加而遞減。這也說明了「範例越多越好」聽起來合理,實際測出來的效益曲線,卻是先陡再平緩。

怎麼判斷該放幾個範例?從 2 個抓到 5、6 個就好

SuperGLUE 那條先陡再平的效益曲線,換算成一句能直接照做的建議,就是範例不必無限往上加,抓到一個夠用的區間就該停。這個區間怎麼抓,分三步走:先依任務複雜度定基準、再從兩三個範例開始測試效果、最後抓到五六個就該停手,不要無限往上疊。這幾個數字不是憑感覺喊的,Google 的《Prompt Engineering》白皮書(Lee Boonstra,2024 年 9 月發布)給出的通則是,做 few-shot 提示詞至少該用三到五個範例,實際數量還要看任務難度、範例本身的品質,以及使用的模型能力而定。

決定 few-shot 提示詞範例數量的三步驟:依任務複雜度定基準、從 2~3 個開始測、加到 5~6 個就停手
抓範例數量分三步:先依任務複雜度定基準,從 2~3 個開始測,加到 5、6 個通常就該停手。

步驟一:先依任務複雜度,抓一個範例數量基準

任務越單純,像是把文字分類到固定幾個類別、或模仿一種固定語氣,範例基準可以抓低一點,兩三個就夠;任務要模型同時抓格式、邏輯、語氣好幾件事,基準就該抓高一點,但仍以個位數為主,不是無上限往上加。Google 的白皮書把這個判斷寫得直白。範例數量該抓多少,取決於任務複雜度、範例本身的品質,還有你用的模型能力這幾個因素,不是套一個固定數字了事。

步驟二:從 2 到 3 個範例開始,檢查輸出有沒有抓對格式

實際動手時,先放兩到三個範例,看輸出的格式、語氣有沒有跟著範例走。PromptHub 由 Dan Cleary 撰寫的一份 few-shot 提示詞指南,歸納多篇研究後指出,至少用兩個範例,但通常不需要超過五個;多篇研究也都顯示,範例數量加到兩個之後,效益就開始進入平原期,再往上加,很可能只是多花 token,換不到更準的輸出。這個階段的重點不是一次到位,而是先確認模型有沒有抓對你要的樣子,抓對了再往下一步微調。

步驟三:效果不夠再加,加到 5、6 個就該停

兩三個範例還抓不到位,可以逐步往上加,加到五、六個通常就該停手。Google 白皮書在分類任務這類段落給的建議更具體,一個好用的起手式是先抓六個範例當基準,再從這裡開始測試準確率,依實際表現微調,而不是預設範例越多越保險。這個上限也呼應前面 GPT-3 在 SuperGLUE 測驗裡的發現,效益隨數量增加,卻是遞減的,超過某個範例數之後,多加的範例多半只是墊高提示詞的長度,對輸出品質沒有明顯幫助。

範例品質,比數量更決定輸出好壞

範例數量抓對了,不代表輸出就一定準,範例本身選得好不好,影響往往更大。倫敦大學學院與北京大學合作的一項研究,在探討怎麼用大型語言模型修程式錯誤時發現,範例的效果跟數量之間不是穩定往上的關係,而是非單調的,多塞幾個不一定更好,選對的範例才會更好。研究團隊用一套統計模型挑出跟每個錯誤最相關的範例,在一組 157 個錯誤的測試集裡修好 88 個,比表現最佳的固定範例組合多修了 17%。同一批候選範例,單靠精準挑選,就能比隨機堆疊更多範例拿到更好的結果。

範例排列的順序,同樣會左右輸出品質。Zhao 等人 2021 年發表的研究做過一個對照實驗。同一組兩個範例,GPT-3 一個 27 億參數版本原本能拿到 88.5% 的準確率,只把兩個範例的順序對調,準確率就掉到 51.3%,接近亂猜。研究團隊測了多種提示詞格式與範例組合後,得出的結論是,範例的挑選與排列順序,可以讓同一個模型的準確率,從接近亂猜一路跳到接近當時最好的表現。

把這兩份研究擺在一起看,好範例該符合的條件其實很具體:跟任務高度相關、涵蓋多樣的情境、正例與反例都給、格式從頭到尾一致。Google 白皮書也提醒,範例要相關、多樣、品質夠好、寫得清楚,一個小失誤就可能讓模型會錯意。與其糾結該放幾個範例,不如先把這幾個條件顧好。

同一組兩個範例只調換順序,準確率就從 88.5% 掉到 51.3%,顯示範例品質與排列比數量更關鍵
光是把兩個範例的順序對調,準確率就從 88.5% 掉到接近亂猜的 51.3%——範例挑得好、排得對,比多放幾個更重要。

什麼情況該放棄 few-shot,改用零範例+思維鏈?

不是每個任務都該往提示詞裡堆範例。DAIR.AI 整理的 Prompt Engineering Guide 裡有一個示範。請模型判斷一串數字裡的奇數加總起來是不是偶數,即使提供了幾個 few-shot 範例,模型給出的答案還是錯的。這類需要多步驟邏輯推理的任務,範例反而可能把模型的思路帶偏,它順著範例的表面格式作答,卻沒有真的把每一步算清楚。

東京大學與 Google 團隊在 2022 年發表的研究,提出了一個更直接的做法。完全不給範例,只在提示詞裡加一句「讓我們一步一步來想」,就能明顯拉高模型在多步驟推理任務上的表現。研究團隊測出,這個做法能把 MultiArith 這類數學應用題的答對率,從 17.7% 推到 78.7%,GSM8K 則從 10.4% 推到 40.7%。不用任何範例,單靠一句引導語,就讓模型自己把推理過程拆開來走一遍。

這個方向,後來也變成推理型模型的官方建議。DeepSeek-R1 的技術報告直接寫明,給這個模型加 few-shot 範例,反而會持續拉低它的表現,團隊建議使用者直接描述問題、說清楚想要的輸出格式,用零範例的方式提問,才能拿到最好的結果。

把這幾個發現收在一起,判斷準則並不複雜:任務是要模型模仿格式、語氣,或做簡單分類,few-shot 提示詞範例仍然管用;任務牽涉到多步驟的邏輯推理,先試零範例加思維鏈,不急著堆範例。

依任務本質選策略:模仿格式語氣或分類用 few-shot 提示詞範例,多步驟推理改用零範例加思維鏈
任務若是模仿格式、語氣或簡單分類,few-shot 仍管用;遇到多步驟推理,改用零範例+思維鏈更有效。

下次要寫 few-shot 提示詞範例之前,與其死記三到五個這個數字,不如先問自己幾件事。這個任務的本質是什麼,是要模型模仿一種固定的格式與語氣,還是需要它一步一步做多步驟推理。手上準備的範例,是不是真的跟任務高度相關、涵蓋的情境夠不夠多樣。真的需要範例嗎,還是這個任務,一句講清楚的零範例提示詞加上思維鏈,反而更管用。先想清楚這幾個問題,寫出來的提示詞,才不會只是塞了幾個範例,卻沒有真正解決問題。

常見問答

本區問答由 AI 依文章內容自動整理,僅供快速參考,正式內容仍以全文為準。

什麼是 few-shot 提示詞?

few-shot 提示詞是在提示詞裡放進兩個以上「輸入-輸出」範例配對,讓模型從範例中學習規律,也就是所謂的上下文學習;相對地,one-shot 只給一個範例,zero-shot 則完全不給範例,直接把任務要求交給模型作答。

範例是不是給得越多,模型回答就一定越準?

不一定。GPT-3 論文的實驗顯示,零範例答對率是 76.2%,只給一個範例反而掉到 72.5%,比不給範例還低,直到範例數量增加到多個,答對率才回升到 86.4%,可見範例數量和輸出品質不是穩定的線性關係。

few-shot 提示詞範例,最多建議放到幾個就該停?

沒有固定數字,做法是先依任務複雜度抓一個基準,從兩三個範例開始測試效果,抓到五、六個通常就該停手;Google 白皮書建議至少用三到五個範例,實際數量仍要看任務難度、範例品質與模型能力而定。

同一組範例換順序,準確率會差多少?

Zhao 等人 2021 年的實驗顯示,同一組的兩個範例,GPT-3 的 27 億參數版本原本準確率是 88.5%,只把兩個範例的順序對調,準確率就掉到 51.3%,幾乎等於亂猜,可見範例排列順序造成的影響,並不亞於範例數量本身。

什麼任務不適合用 few-shot 範例?

需要多步驟邏輯推理的任務不適合硬塞範例,模型容易只模仿範例的表面格式,卻沒有把每一步算清楚;這類任務改用零範例搭配「讓我們一步一步來想」的引導語,效果通常更好,DeepSeek-R1 也建議直接零範例提問。

資料來源
  1. Language Models are Few-Shot Learners — OpenAI
  2. Prompt Engineering Guide:Few-Shot Prompting — DAIR.AI
  3. Prompting best practices:Multishot Prompting — Anthropic
  4. Prompt Engineering(Lee Boonstra,2024) — Google
  5. The Few-Shot Prompting Guide — PromptHub
  6. The Fact Selection Problem in LLM-Based Program Repair — 倫敦大學學院與北京大學
  7. Calibrate Before Use: Improving Few-Shot Performance of Language Models — Zhao 等人(2021)
  8. Large Language Models are Zero-Shot Reasoners — 東京大學與 Google
  9. DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning — DeepSeek-R1