3秒でわかる
AI へ依頼するとき、望む入出力の例をいくつか添えてから本題を頼む方法。言葉で説明しにくい形式や粒度を、例で直接伝えられます。
30秒図解
もう少し詳しく
どういうものか
Few-shot は、生成 AI へのプロンプトに入力と出力の組を数件添えてから、本当に処理させたいデータを渡す書き方です。例を 1 つも付けないのが Zero-shot、1 つだけ付けるのが One-shot、複数付けるのが Few-shot です。モデルは追加学習をしているわけではなく、プロンプトの中の例から出力の形式や判断基準を読み取ります。
なぜ必要か
出力の形式は、言葉で説明するより例を見せたほうが正確に伝わります。「箇条書きで簡潔に」と書いても、何行が簡潔なのか、記号は何を使うのかは伝わりません。例を 3 件見せれば、行数も記号も語尾も一度に決まります。
判断基準についても同じです。問い合わせの分類で、どこまでを「苦情」としどこからを「要望」とするかは、定義を文章で書き切るのが難しい領域です。境界に近い例を並べたほうが、定義文を長々と書くより精度が上がります。
具体例
次の問い合わせを 苦情 / 質問 / 要望 のいずれかに分類してください。
入力 商品が 3 日経っても届きません
出力 苦情
入力 領収書は発行できますか
出力 質問
入力 サイズ展開を増やしてほしいです
出力 要望
入力 注文をキャンセルしたいのですが手順が分かりません
出力最後の行を空けておくと、モデルは直前の形式に合わせて 1 語だけ返します。JSON で受け取りたい場合は、例側も JSON にしておきます。
似た用語との違い
| 手法 | 例の数 | 向いている場面 |
|---|---|---|
| Zero-shot | 0 | 一般的な要約や翻訳 |
| Few-shot | 2 から 5 程度 | 形式を揃えたい、独自の分類をさせたい |
| ファインチューニング | 数百から数千 | 例が長すぎてプロンプトに収まらない場合 |
Few-shot はモデルの重みを変えないため、例を差し替えるだけで挙動を変えられます。試行錯誤の速さが利点です。
つまずきやすいところ
例に偏りがあると、そのまま出力に出ます。3 件すべて「苦情」の例を並べると、判断に迷う入力が苦情に寄ります。分類させるなら、各ラベルの例を同じくらいの数だけ入れます。
もうひとつは例の数を増やしすぎることです。10 件、20 件と足すと、入力が長くなって費用と応答時間が増える一方、精度は途中で頭打ちになります。まず 3 件で試し、間違えたパターンに近い例だけを足していくほうが速く仕上がります。例の中に誤りが混ざっていると、その誤りごと真似されるため、例の正確さは本題より重要です。
覚え方
指示は「どうしてほしいか」を言葉で伝える手段、Few-shot は「できあがりの見本」を渡す手段です。人に仕事を頼むときも、口頭の説明より過去の成果物を 1 枚見せたほうが早いことがあります。その見本にあたるのが例です。