LLMに少数(2〜10個程度)の入出力例をプロンプト内で提示し、タスクのパターンを文脈内学習(In-Context Learning)させるプロンプト技法。Zero-shotより精度が高く、Fine-tuningより手軽。
Few-shot プロンプティングは、大規模言語モデル(LLM)に対してタスクの実行例を少数提示することで、モデルのパラメータを更新せずに所望の出力形式・品質を得るプロンプト設計技法です。2020年の GPT-3 論文「Language Models are Few-Shot Learners」で体系化され、現在の LLM 活用における基本技法として広く定着しています。
| 手法 | 提示例数 | 精度 | 適用場面 |
|---|---|---|---|
| Zero-shot | 0個 | 低〜中 | 汎用的なタスク、指示が明確な場合 |
| One-shot | 1個 | 中 | フォーマット指定のみ必要な場合 |
| Few-shot | 2〜10個 | 高 | 複雑な分類・変換・生成タスク |
| Many-shot | 10〜100個 | 最高 | コンテキストウィンドウが大きいモデル |
GPT-4o(128Kトークン)や Claude 3.5 Sonnet(200Kトークン)、Gemini 1.5 Pro(2Mトークン)のようにコンテキストウィンドウが拡大した現在では、Many-shot(数十〜数百例)も実用的になっています。
Few-shot プロンプティングの精度はショット(例示)の選び方に大きく依存します。以下の設計原則が研究で確認されています。
ユーザーの入力クエリに対して、ベクトル類似度検索で最も関連性の高い例をデータベースから動的に取得し、プロンプトに挿入する手法です。静的な固定例と比較して、未知の入力パターンに対する精度が大幅に向上します。
LangChain の SemanticSimilarityExampleSelector や LlamaIndex の FewShotPromptTemplate がこの手法を実装しており、本番アプリケーションで広く使われています。
Few-shot の例数が増えるほど入力トークン数が増加し、API コストとレイテンシが上昇します。GPT-4o の場合、入力は $2.50/1Mトークン・出力は $10.00/1Mトークン(2025年12月時点)であり、10例のFew-shotで平均500トークン増加するとリクエストあたり約$0.00125のコスト増になります。
精度とコストのトレードオフを評価し、最小の例数で目標精度を達成する例数を実験的に決定することが重要です。
A: Few-shot はデータ10件程度から即座に適用でき、タスク変更も容易です。Fine-tuning は数百〜数千件のデータが必要ですが、推論コストが低くレイテンシも短いため、高頻度・大量処理のタスクに向いています。まず Few-shot で検証し、品質とコストが見合わなければ Fine-tuning を検討するのが一般的なワークフローです。
A: タスクの複雑さとモデルの能力に依存しますが、一般的には3〜5個が出発点です。Google の研究では、例数を3→5に増やすと分類精度が平均8%向上し、5→10ではさらに3%向上するものの、10→20では改善が鈍化する傾向が報告されています。
A: 最大の落とし穴は「例のバイアス」です。特定パターンの例ばかり提示すると、モデルがそのパターンに過学習します。また、例の中に誤りがあるとモデルがその誤りを学習してしまうため、例の品質管理が重要です。