適用於誰
- 搜「少樣本提示」「few shot 提示詞」「few-shot prompt 例子」的人;
- 用文字怎麼描述都得不到想要的格式和語氣,想知道「給例子」到底該怎麼給的人。
本文根據 Anthropic、Google、OpenAI 的官方提示詞文檔整理,資料核對於 2026-10-11。
結論先說
- 少樣本提示就是在提示詞裏放幾組「輸入 → 期望輸出」的例子,讓模型照着這個模式做;一個例子都不給叫零樣本(zero-shot)。
- 例子主要用來管格式、措辭、範圍和風格,這些東西用文字很難描述清楚,用例子一看就懂。
- 給幾個:Anthropic 的建議是 3–5 個。Google 說需要自己試,並提醒例子太多模型可能「過擬合」到例子上。
- 怎麼挑:貼近真實場景、彼此有差異、覆蓋邊界情況。
- 怎麼排:所有例子的結構和格式必須一致,並且和指令明確分隔開。
- 推理模型可以先不給例子試試,這是 OpenAI 對推理模型的建議。
三家官方怎麼說
| 態度 | 關鍵建議 | |
|---|---|---|
| Anthropic | 示例是引導輸出格式、語氣和結構最可靠的方法之一 | 3–5 個;相關、多樣、有結構;用 <example> 標籤包起來 |
| 建議始終在提示詞裏包含少樣本示例,沒有示例的提示詞效果可能更差 | 例子足夠清楚時甚至可以去掉指令;注意數量和格式一致 | |
| OpenAI | 通過少量輸入輸出示例把模型引向新任務,不用微調 | 示例要覆蓋多樣的輸入;推理模型先試零樣本 |
三家的共同點是:例子有用,而且比多數人以為的更有用。分歧只在「是不是每次都要給」。
步驟
1. 判斷需不需要例子
適合給例子的情況:
- 輸出有固定格式(表格列、JSON 字段、固定句式);
- 有特定的語氣和文風(品牌口吻、某種報告體例);
- 分類、打標籤、資訊抽取這類「同一種操作重複做」的任務;
- 你發現自己寫了一大段話在描述「我想要的樣子」。
可以先不給的情況:用的是推理模型(開啟思考的模型),任務本身說得清楚。OpenAI 的原話是:推理模型往往不需要少樣本示例就能給出好結果,先寫不帶例子的提示詞;輸出要求比較複雜時再加幾個,並且確保例子和指令高度一致,兩者有出入會導致結果變差。
2. 挑例子:相關、多樣
Anthropic 給的三個標準:
- 相關(Relevant):貼近你的真實使用場景;
- 多樣(Diverse):覆蓋邊界情況,彼此差別足夠大,免得模型學到你沒打算教的規律;
- 有結構(Structured):見下一步。
「多樣」最容易被忽略。常見的翻車方式:
- 三個例子的答案都是「正面」,模型就傾向於什麼都判正面;
- 三個例子的輸出都是恰好三句話,模型就認為必須三句話;
- 例子的輸入都很短,遇到長輸入時表現失常。
所以挑的時候刻意放進:不同類別的各一個、長短不一的、至少一個「難判斷」的或者「應該拒絕 / 應該說不知道」的。
Anthropic 還提到一個省事的辦法:讓模型幫你評估這組例子夠不夠相關和多樣,或者基於你已有的幾個再生成一些。
3. 排版:格式一致,和指令分開
Google 的提醒:加例子的主要目的之一就是向模型展示回答的格式,所以所有例子的結構和格式必須相同,尤其要注意 XML 標籤、空格、換行和例子之間的分隔符。
Anthropic 的做法是用標籤把例子包起來,讓模型能分清哪些是例子、哪些是指令:單個用 <example>,多個再套一層 <examples>。OpenAI 官方示例的排法類似,把例子放在開發者消息的「Examples」一節,每組用成對的標籤標出輸入和輸出。
一個完整的例子(給用戶評論打標籤):
把下面的用戶評論歸為「好評」「中評」「差評」之一,只輸出這兩個字,不要解釋。
<examples>
<example>
<review>音質很好,降噪也不錯,就是充電盒有點大。</review>
<label>好評</label>
</example>
<example>
<review>續航還行,耳墊感覺比較廉價。</review>
<label>中評</label>
</example>
<example>
<review>客服態度太差,再也不買了。</review>
<label>差評</label>
</example>
<example>
<review>東西還沒到,先來佔個位。</review>
<label>中評</label>
</example>
</examples>
<review>[待分類的評論]</review>
第四個例子是特意放的邊界情況:沒有實際評價內容時該怎麼歸。
4. 控制數量
- Anthropic:3–5 個效果最好;
- Google:模型通常用幾個例子就能抓住規律,但需要你自己試出合適的數量;例子太多時,模型可能過擬合,回答變得過於貼近例子本身。
實際做法是從 3 個開始,輸出不穩定就針對出錯的類型補例子,而不是盲目加量。
5. 讓例子「壓過」預設傾向
Google 文檔裏有個很有啟發的演示:同一個選擇題,零樣本時模型選了較長的解釋;在提示詞裏放兩個「都偏向簡短答案」的例子之後,模型改選了較短的那個。也就是說,例子不只是示範格式,還能改變模型的偏好。想讓回答更短、更口語、更謹慎,就讓例子體現出來。
配合思考模式
Anthropic 文檔說明,少樣本示例在思考模式下同樣有效:提示詞裏的完整解題範例會影響模型在思考過程中處理類似問題的方式。官方建議把每個例子寫成「問題 + 應該用的方法 + 期望的答案」。
常見問題
Q:例子和指令衝突時聽誰的?
沒有可靠的規則,結果會變得不穩定。OpenAI 專門提醒了例子與指令不一致會導致結果變差。寫完後檢查一遍:例子裏的每個輸出,是否都嚴格符合你寫的指令?
Q:模型總是照抄例子裏的內容怎麼辦?
這是例子太少或太相似的信號。增加差異;在指令裏說明「例子只用於展示格式,不要複用其中的具體內容」。
Q:聊天介面裏怎麼用少樣本?
直接在消息裏寫「參考下面幾個例子的格式」再貼例子即可。要長期使用,就放進自定義指令、項目說明或智能體的系統提示詞裏,見《系統提示詞怎麼寫》。
Q:例子很長,佔了太多上下文怎麼辦?
固定不變的例子放在提示詞的開頭部分,配合各家的提示詞緩存可以降低重複調用的成本,見站內《Claude 提示詞緩存入門》。
Q:去哪裏找現成的例子?
站內提示詞庫(/prompts)的文本類提示詞都附有「示例輸出」,可以直接拿來當少樣本示例改寫。
參考資料
- Anthropic 文檔:Prompting best practices(Use examples effectively)— https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices
- Google 文檔:Prompt design strategies(Zero-shot vs few-shot prompts)— https://ai.google.dev/gemini-api/docs/prompting-strategies
- OpenAI 文檔:Prompt engineering(Few-shot learning)— https://developers.openai.com/api/docs/guides/prompt-engineering
- OpenAI 文檔:Reasoning best practices — https://developers.openai.com/api/docs/guides/reasoning-best-practices
0 條評論
還沒有評論,來搶沙發~