ざっくり言うと
Zero-shot(ゼロショット)は、お手本を見せずに指示だけを渡すやり方です。Few-shot(フューショット)は、お手本をいくつか見せてから指示するやり方です。
目的に合ったお手本を渡すと、答えの形や文体、判断の基準をこちらの望む方向へ寄せやすくなります。
「ショット(shot)」は、ここでは「お手本の数」だと思ってください。0ショットなら例はなし、1ショットなら例が1つ、フューショットなら例が少しだけ、という数え方です。
イメージ
口で説明するより、1枚見せたほうが早いことってありますよね。Few-shotは、その1枚を指示文に添えるやり方です。
正確には
Few-shotという言い方が広まったきっかけのひとつが、GPT-3の論文です。OpenAIの研究者らが2020年に公開しました。題名は「Language Models are Few-Shot Learners」といいます(arXiv:2005.14165)。
プロンプトに入れた少数の例を手がかりに、その場で作業へ対応する使い方は、in-context learning(文脈内学習)と呼ばれます。このとき、ふつうはAIの中身(重み)が書き換わっているわけではありません。学習し直しているのではなく、その場で読み取っているだけです。
各社の現行ガイドも、例の見せ方に触れています。
- OpenAI
少数の入出力例をプロンプトに入れて新しい作業へ誘導する方法を案内。選ぶ例は、多様な入力と望ましい出力を示すものがよいとしている - Anthropic
関連性・多様性・構造を備えた例を、出力の形式やトーン、構造をそろえる有力な方法だとしている - Google
具体的で多様な例を使い、例の数は実験して決めるよう説明している
つまり例示は、主要各社が案内している基本の手法です。ただし、入れれば必ず精度が上がるというものではありません。お手本の質が悪ければ、その悪いパターンまで伝わってしまいます。
呼び名は、お手本の数で決まります
| 用語 | お手本の数 | どんな頼み方? |
|---|---|---|
| Zero-shot | 0個 | 例は見せず、指示だけを渡す |
| One-shot | 1個 | お手本を1つ見せてから指示する |
| Few-shot | 少数(決まった数はなし) | お手本を複数見せてから指示する |
「Few」が何個を指すのかは、厳密には決まっていません。Anthropicは自社モデル向けの目安として3〜5個を案内していますが、すべてのモデルや作業に共通するルールではありません。
お手本そのものも、AIが一度に読める分量(コンテキストウィンドウ)を使います。多すぎると例のほうへ引っ張られることもあるため、最後は自分の手元のデータで見比べて決めてください。
例なしで足りるとき、お手本が効くとき
指示と条件を書けば答えが安定する作業なら、まずは例なしでそのまま頼んでみてください。毎回お手本を用意するほうが手間になります。
お手本を足す価値が高いのは、次のような場面です。
- 出てくる形をそろえたいとき — 箇条書きの細かさ、文体、JSONのような決まった書式
- 自分のところだけの基準を伝えたいとき — 社内のルール、独自の分け方
- 例なしで頼んだら、答えが安定しなかったとき
使う場面
お手本があると、答えはこう変わります
ここからは、実際のプロンプトで見比べてみましょう。
例1:レビューを3つに仕分けてもらう
例2:メールの文体をそろえてもらう
注意点
関連用語
- プロンプト — 指示文そのものを指す言葉です。お手本を足す先が、この指示文にあたります
- Chain-of-Thought(連鎖推論) — 答えを出す前に考える手順を書かせる頼み方です。お手本の見せ方と組み合わせて使われます
- ロールプロンプト — 役柄を割り当ててから答えさせる手法です
- コンテキストウィンドウ — 一度に読める分量のことです。お手本を増やすほど、ここを使います
やってみよう