Zubnet AI學習Wiki › Zero-shot / Few-shot
使用AI

Zero-shot / Few-shot

別名:上下文學習

零樣本學習是指讓模型在沒有任何範例的情況下執行任務—僅僅根據指令。少量示例則是在實際請求前,在提示中提供少量的輸入-輸出範例。例如:「這裡有3個如何格式化此數據的範例……現在請處理這個。」模型僅從上下文中學習模式,無需進行訓練。

為什麼重要

少樣本提示是教導模型新格式或行為最快的方式。需要一致的 JSON 輸出嗎?展示三個範例。需要特定的寫作風格嗎?提供範例。這是一種免費、即時且出人意料強大的方法。

深度解析

「零次學習」與「少量示例學習」這兩個術語源自於機器學習研究傳統,其中「示例」指的是訓練樣本。在經典的機器學習中,要教導模型完成新任務,通常需要數千或數百萬個標記好的訓練樣本。然而,大語言模型的突破在於,它們可以在零個訓練樣本(零次學習)或僅需提示中幾個示例(少量示例學習)的情況下完成任務。這種能力稱為「上下文學習」,至今仍是現代大型語言模型(LLM)最令人驚嘆的特點之一——當你在提示中提供示例時,模型並未重新訓練或微調(fine-tuning),而是即時識別上下文中的模式並加以應用。

零次學習適用的場景

零次學習在任務與模型在訓練中大量接觸過的內容高度吻合時效果最佳。情感分析、翻譯、摘要、簡單分類等任務,模型在預訓練階段已接觸過數百萬種變體,因此明確的指令通常就足夠了。「將這則客戶評論分類為正面、負面或中性」這種指令,對任何現代前沿模型都能零次學習完成,因為模型深刻理解分類、情感以及這些標籤的含義。然而,零次學習在處理格式特殊、領域特定慣例或要求含糊的任務時會失效。如果你需要模型輸出符合公司專有XML格式的資料,僅憑簡單指令是無法達成的。

少量示例提示(few-shot prompting)正好彌補了這個缺口。在實際請求前提供2–5個輸入-輸出範例,就能讓模型明確知道你期望的結果。模型會從這些範例中學習到模式——格式、細節程度、風格、邊界案例處理方式——並套用到新的輸入上。這種方法對結構化任務特別有效。需要從混亂文本中提取實體並轉換為特定JSON格式嗎?展示三個混亂文本對應到乾淨JSON的範例,再提供新文本即可。需要將自然語言日期(如「下個星期二」、「三月第二週」)轉換為ISO 8601格式嗎?三個範例就能解決95%的問題。模型基本上是從你的範例中學習函數,而且這是在推理階段完成的,不需要梯度更新。

品質優於數量

少量示例的品質比數量更重要。三個精心挑選的範例,涵蓋不同邊界案例,會比十個重複的範例表現更好。如果任務涉及分類,請至少包含每個分類的範例。如果有棘手的邊界案例,也請包含。範例的順序也可能影響結果——研究顯示模型可能傾向於最後一個看到的範例的標籤,因此洗牌或平衡範例是有價值的。一個實用技巧:包含一個當輸入含糊或不屬於任何分類時模型應如何處理的範例,因為這種邊界案例在生產環境中經常出現,未經指導的模型會隨機猜測。

成本與品質的權衡

需要考慮成本與品質的權衡。每個少量示例會消耗上下文視窗中的token數量,並增加API費用。每個範例200個token,五個範例就是每個請求1,000個token,規模擴展時費用會累積。有些團隊在開發階段先使用少量示例提示,測量哪些範例實際提升了效果,然後嘗試將模式精煉成更明確的零次學習指令。其他團隊則使用動態少量示例選擇——將範例存入資料庫,並為每個特定輸入檢索最相關的範例,這基本上是將輕量級RAG應用於提示工程。最佳平衡點取決於任務複雜度、使用量,以及你的應用場景中一致性與成本何者更重要。

相關概念

← 所有術語
← YAML 智譜 AI →
ESC