Few-shot プロンプティングとは、大規模言語モデルへのプロンプトに少数(2〜5個程度)の入出力例を含めることで、モデルに期待するタスクのパターンを学習させ、新しい入力に対して同様の形式・品質で出力させるプロンプト技法である。In-context Learning(文脈内学習)の代表的手法として広く活用されている。
Few-shot プロンプティングは、LLM に対して少数の入出力例(ショット)を提示し、パターンを文脈内で学習させることで出力の品質と一貫性を向上させる手法である。GPT-3 の論文「Language Models are Few-Shot Learners」(Brown et al., 2020)で体系化され、プロンプトエンジニアリングの基盤技術として定着した。
LLM への例示数による分類は以下の通りである:
| 手法 | 例示数 | 特徴 | 適用場面 |
|---|---|---|---|
| Zero-shot | 0個 | 指示のみで直接タスク実行 | 単純な分類・要約・翻訳 |
| One-shot | 1個 | 1つの入出力例を提示 | フォーマット統一が必要なタスク |
| Few-shot | 2〜5個 | 複数の入出力例を提示 | 複雑なパターン認識・特殊フォーマット |
| Many-shot | 10個以上 | 大量の例を提示(Gemini 1.5等の長コンテキスト活用) | 高精度が必要な専門タスク |
GPT-4o(128K コンテキスト)や Gemini 1.5 Pro(1M コンテキスト)の登場により、Many-shot(10〜100例)の提示が実用的になり、ファインチューニングなしで専門ドメインへの適応が可能になった。
Few-shot プロンプトの標準的な構造は以下の通りである:
[タスクの説明(オプション)]
例1:
入力: [入力テキスト1]
出力: [期待出力1]
例2:
入力: [入力テキスト2]
出力: [期待出力2]
例3:
入力: [入力テキスト3]
出力: [期待出力3]
本番:
入力: [実際の入力]
出力:
この構造により、モデルは例示のパターンを「文脈内学習」(In-context Learning)し、新しい入力に対して同様の形式と品質で出力を生成する。
Few-shot の精度は例示の質と選択方法に大きく依存する。効果的な例示選択の原則は以下の通りである:
2024年に発表された研究では、入力に意味的に近い例を動的に選択する「Retrieval-Augmented Few-shot」手法が、固定例示より平均 8〜12% の精度向上を達成している。
以下の製品レビューの感情を「ポジティブ」「ネガティブ」「ニュートラル」で分類してください。
レビュー: このグラボは静音性が素晴らしい。ファンが全く気にならない。
感情: ポジティブ
レビュー: 初期不良で交換になった。サポートの対応も遅い。
感情: ネガティブ
レビュー: RTX 4070 Tiとしては標準的なスペック。可もなく不可もなく。
感情: ニュートラル
レビュー: [分析対象のレビュー]
感情:
製品情報から以下の形式でデータを抽出してください。
入力: ASUS ROG Strix GeForce RTX 4090 OC Edition 24GB GDDR6X
出力: {"brand":"ASUS","series":"ROG Strix","gpu":"RTX 4090","vram":"24GB","vram_type":"GDDR6X","edition":"OC"}
入力: MSI GeForce RTX 4080 SUPER 16G GAMING X SLIM
出力: {"brand":"MSI","series":"GAMING X SLIM","gpu":"RTX 4080 SUPER","vram":"16GB","vram_type":"GDDR6X","edition":"標準"}
入力: [抽出対象の製品情報]
出力:
| モデル | 入力単価(1M tokens) | 3例 Few-shot 追加コスト目安 | コンテキスト上限 |
|---|---|---|---|
| GPT-4o | $2.50 | 約$0.005 | 128K |
| Claude 3.5 Sonnet | $3.00 | 約$0.006 | 200K |
| Gemini 1.5 Pro | $1.25 | 約$0.0025 | 1M |
| GPT-4o mini | $0.15 | 約$0.0003 | 128K |
Q1: Few-shot の例は何個が最適? A: 一般的には 3〜5 個が費用対効果のバランスが良い。精度は例数の対数に比例して向上するため、3個→5個の改善幅は大きいが、5個→10個の改善幅は小さくなる。タスクの複雑さとコンテキスト予算に応じて調整する。
Q2: Few-shot とファインチューニングはどちらが良い? A: 数十〜数百件のデータなら Few-shot が効率的。数千件以上のラベル付きデータがあり、同一タスクを大量に処理する場合はファインチューニングの方がコスト効率が高い。Few-shot は即座に試行でき、ファインチューニングは学習に数時間〜数日かかる。
Q3: Many-shot は Few-shot より常に優れている? A: 例数が多いほど精度は向上する傾向があるが、コンテキスト消費・コスト増加・処理速度低下のトレードオフがある。Google の研究では Gemini 1.5 Pro で 100例の Many-shot が Few-shot を大幅に上回ったが、実務ではコスト制約からFew-shot(3〜5例)+高品質な例示選択が主流である。