完整定義
少樣本提示(Few-shot Prompting)是提示工程中的核心技術,透過在提示詞中嵌入數個具代表性的「輸入→輸出」範例,讓大型語言模型(LLM)從中推斷任務的格式、風格與邏輯,並將其應用於新的輸入。相較於零樣本提示(Zero-shot Prompting,不提供範例),少樣本提示能顯著提升模型在特定格式要求、風格模仿或專業術語輸出上的表現,且無需任何模型微調。
少樣本提示(Few-shot Prompting)的概念最早由 GPT-3 的論文《Language Models are Few-Shot Learners》(2020)正式提出,Brown 等人的研究表明,大型語言模型具備從少量情境範例中推斷任務的強大能力,開啟了情境學習(In-context Learning, ICL)的研究方向。
基本概念:零樣本、單樣本、少樣本
提示工程依範例數量分為三種基本模式:
- 零樣本(Zero-shot):不提供任何範例,直接要求模型完成任務。依賴模型的預訓練知識。
- 單樣本(One-shot):提供一個範例。
- 少樣本(Few-shot):提供 2 至 10 個(有時更多)範例。
少樣本提示的結構
標準格式:
任務說明(可選)
### 輸入:<範例 1 的輸入>
輸出:<範例 1 的輸出>
### 輸入:<範例 2 的輸入>
輸出:<範例 2 的輸出>
### 輸入:<目標輸入>
輸出:
範例:情感分析
將以下評論分類為正面或負面。
評論:這家餐廳的服務很棒,食物也非常美味!
分類:正面
評論:等了 40 分鐘,食物還是冷的,絕對不會再來。
分類:負面
評論:價格合理,但環境略嘈雜,下次可能會再試試。
分類:
為什麼少樣本提示有效
大型語言模型透過大規模語料庫的預訓練,習得了廣泛的模式識別能力。少樣本範例在情境中提供了「任務規範」,讓模型理解:
- 任務的格式與輸出結構
- 所需的風格(正式/非正式、詳細/簡短)
- 領域或術語的偏好
- 邊界案例的處理方式
範例選擇的關鍵原則
- 多樣性(Diversity):範例應涵蓋任務的不同子類型與邊界情況,避免全部是同一種情況。
- 代表性(Representativeness):選擇最能代表目標任務分布的範例,不選極端或罕見案例。
- 平衡性(Balance):分類任務中各類別應有均衡的範例數量,避免偏誤。
- 相似性(Relevance):範例應與目標輸入的語義或結構盡可能相近(動態少樣本選擇)。
- 排列順序:研究顯示範例的排列順序會影響結果,通常建議最後一個範例與目標輸入最相似。
進階變體
- 動態少樣本選擇(Dynamic Few-shot Selection):不使用固定範例,而是從範例庫中根據目標輸入的語義相似度動態選取最相關的範例(如使用嵌入向量相似度搜尋)。
- 思維鏈少樣本提示(Few-shot Chain-of-Thought, CoT):在範例的輸出中包含逐步推理過程,引導模型在回答前先展開推理步驟,特別適用於數學推理、邏輯推斷等任務。
- 自動少樣本選擇(Auto-CoT):讓模型自動生成推理鏈,再從中選取高品質範例。
少樣本提示的限制
- 上下文視窗限制:範例佔用輸入 Token,過多範例可能超過模型的上下文視窗,或擠壓目標輸入的空間。
- 推理成本:更長的提示詞消耗更多 Token,增加 API 呼叫費用。
- 範例品質敏感性:低品質或標記錯誤的範例會顯著降低模型輸出品質,「垃圾進,垃圾出」同樣適用。
- 複雜推理仍有限制:少樣本提示對複雜多步驟推理的提升有限,可能需要搭配思維鏈(CoT)或工具使用。
與微調(Fine-tuning)的比較
少樣本提示在情境中學習,無需修改模型權重,靈活性高、部署成本低,但效果通常不如針對特定任務的微調模型。微調模型在推理時不需要在提示詞中攜帶範例,節省 Token 消耗,且在大量特定格式或知識的任務上表現更穩定。在實務中,若任務範例少於數百個且對格式一致性要求不極端,少樣本提示通常是更經濟的起點。
典型應用場景
- 特定格式的文字輸出(如 JSON 生成、表格摘要)
- 術語翻譯或特定風格的文字改寫
- 意圖識別與分類(客服情境)
- 程式碼生成的格式與風格統一
- 資料提取(從非結構化文字提取特定欄位)
常見問題
沒有適用所有任務的最佳數量,一般建議從 2-5 個範例開始,並透過實驗比較效果。研究顯示,範例數量帶來的提升在初始幾個最為明顯,超過 8-10 個後往往邊際效益遞減,且會消耗更多上下文視窗。關鍵在於範例的多樣性與代表性,而非純粹的數量。若任務有多個不同子類型,確保每個子類型至少有一個範例往往比單純增加總數更有效。同時需考慮模型的上下文視窗大小與 API 費用,在效果與成本之間取得平衡。
少樣本提示適合:快速原型驗證(無需訓練時間)、範例數量有限(幾十個以內)、任務格式簡單且一致、需要靈活切換不同任務、或預算有限不適合微調。微調適合:有數百至數千個高品質標記範例、對輸出格式的一致性要求極高(如嚴格的 JSON schema)、需要注入預訓練模型未覆蓋的專業知識、推論時需要節省 Token 成本(微調後不需要在提示中放範例),或對延遲要求極高(較短提示推論更快)。實務上推薦先用少樣本提示快速驗證任務可行性,再評估是否值得投入微調的成本。
有影響。研究表明,範例的排列順序會影響大型語言模型的輸出結果,這種現象稱為「順序偏差(Ordering Bias)」。具體來說,模型往往對序列中最後出現的範例記憶更深(近因效應)。因此,一個常見的策略是將與目標輸入最相似的範例放在最後。此外,若分類任務的範例按同一類別連續排列(AAABBB 而非 ABABAB),可能導致模型對最後出現的類別有偏好。在高精度要求的應用中,建議使用多次打亂順序後平均結果(Ensemble)或使用動態範例選擇來降低順序偏差的影響。
相關術語
來源
這個術語目前沒有標註外部來源。
其他格式:Markdown 版本