少樣本提示 是什麼?
Few-shot Prompting:少樣本提示 的完整解釋
在提示詞中提供少量(通常 2-10 個)輸入輸出範例,引導語言模型依照示範格式完成任務的提示技術。
少樣本提示(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 生成、表格摘要)
- 術語翻譯或特定風格的文字改寫
- 意圖識別與分類(客服情境)
- 程式碼生成的格式與風格統一
- 資料提取(從非結構化文字提取特定欄位)