LLMに2〜5個の入出力例(ショット)を提示し、期待するタスクのパターンを学習させるプロンプティング手法。例示なしの Zero-shot より高精度で、大量の学習データを必要とするファインチューニングより手軽。分類・変換・抽出タスクで特に効果を発揮する。
Few-shot プロンプティングは、LLM へのプロンプトに少数(2〜5個)の入出力例を含めることで、モデルにタスクのパターンを文脈内で学習させる手法である。GPT-3 の論文(2020年)で体系化され、ファインチューニングなしでタスク精度を大幅に改善できることが示された。
| 手法 | 例数 | 精度 | コスト | 使いどころ |
|---|---|---|---|---|
| Zero-shot | 0 | 低〜中 | 最低 | 簡単なタスク、十分に訓練済みの領域 |
| One-shot | 1 | 中 | 低 | フォーマットの指定が主目的 |
| Few-shot | 2〜5 | 高 | 中 | 分類・抽出・変換・特殊フォーマット |
| Many-shot | 10〜100 | 最高 | 高 | 長コンテキストモデルで複雑なパターン |
効果的な Few-shot プロンプトの構成は以下の通り。
[タスク説明]
テキストの感情を「ポジティブ」「ネガティブ」「中立」に分類してください。
[例1]
入力: このカメラの画質は素晴らしく、夜景も綺麗に撮れます
出力: ポジティブ
[例2]
入力: バッテリーが2時間しか持たないのは致命的です
出力: ネガティブ
[例3]
入力: サイズは152×73mmで重量は180gです
出力: 中立
[本番入力]
入力: 起動は速いですが画面の色味が不自然で気になります
出力:
A1: 一般に3〜5個が最適。2個だとパターン学習が不十分で、6個以上は精度向上が頭打ちになりトークンコストだけ増える。ただし Many-shot(10〜100個)が効果的なケースもあり、コンテキスト長に余裕があれば試す価値がある。
A2: 同一タスクを月に数千回以上実行するならファインチューニングがコスト効率で優位。それ以下の頻度や、タスク内容が頻繁に変わる場合は Few-shot の方が柔軟で実用的。
A3: 固定例で十分なケースが多いが、入力に応じて類似度の高い例を動的に選択する「Dynamic Few-shot」はさらに精度が向上する。RAG で例を検索し、入力に最も関連する例を選ぶパターンが実用的。