こんにちは、AIニュースアプリ Morning AI 開発者の矢野哲平です。この記事では、プロンプト作成の文脈でよく登場する「Few-shotプロンプティング」について触れます。

Few-shotプロンプトは広く知られたテクニックですが、「聞いたことはあるけれど、どんな場面で使えばいいのか分からない」という声もよく聞きます。簡単に使えて汎用性も高いテクニックなので、改めて一緒に学んでいきましょう。この記事では、私が実際にFew-shotプロンプトを使って「AIが私の好みを理解して、毎日自動でニュースを仕分けてくれる仕組み」を実装した話を交えながら解説します。ポイントは次の3つです。

  1. そもそもFew-shotプロンプトとは何なのか
  2. Few-shotプロンプトでニュース分類器を作った話(具体的な事例)
  3. Few-shotプロンプトがどんなケースで使えるのか(応用事例)

Few-shotプロンプトとは

Few-shotプロンプトを簡単に言うと、AIにいくつかの例題を渡して学習させるアプローチです。

「Few」はいくつかの、という意味。「shot」はここでは例題のような意味合いです。つまり「いくつかの例題を渡すプロンプト」ですね。具体的には、AIに入力と出力のペアを渡して、その特徴や傾向を学習させます。

私も初めて知ったときは「AIに例題を渡して何になるの?」と、使いどころがイメージできませんでした。なので、具体例で説明していきます。

Few-shotプロンプトでニュース分類器を作った話

私が作ったのは、AIによるニュースの分類器です。

海外にHacker Newsというテクノロジー系のニュースサイトがあります。私は頻繁にチェックしているのですが、すべてのニュースに興味があるわけではありません。これまでは、サイトを訪問して興味のありそうな記事だけを手作業でピックアップしていました。あるときふと、「このピックアップ作業をAIに任せられないか」と思ったのです。

ニュースタイトルの一覧を見て、「矢野さんはこのニュースに興味がありそうだ」「これは興味がなさそうだ」とAIが判断してくれるワークフロー。結論を言うと、これはできました。ここで登場するのがFew-shotプロンプトです。

具体的な方法はこうです。まずニュースタイトルを100記事分集めて、それぞれに「興味がある」「興味がない」のラベルを全部付けます。そして、こうAIに渡しました。

ユーザーが添付したデータにはタイトルと興味のスコアが格納されています。このデータを参考に、次のタイトルの興味をyesかnoで判定してください。アウトプットはyesかnoだけでお願いします。 [100記事分のデータを貼り付ける]

こうすると何が起こるか。新しいニュースタイトルを渡すと、AIが「矢野さんはこの記事に興味があるだろう/ないだろう」と判別してくれます。判断のもとになっているのは、Few-shotプロンプトで渡した100記事分のタイトルと、それに付けた「興味あり・なし」のラベルです。

実際に試すと、「陸地からの淡水流出が海面上昇の主な原因です」というタイトル(私は興味なし)を渡すと「no」、「ペルソナベクトル: 言語モデルにおける性格特性の監視と制御」というタイトル(私は興味あり)を渡すと「yes」と、ちゃんと私の好みに沿って出力してくれました。

このように、ニュースタイトルと興味のありなしを例題として渡し、AIに学習させる。このFew-shotプロンプトのアプローチで、自分の好みに応じてニュースを選別してくれる仕組みを実装できます。

その他の応用事例

「ニュースの分類はしないから、自分には関係ないかな」と思った人もいるかもしれません。でもFew-shotプロンプトは、けっこう幅広いシーンで使えます。

まず、今回のような仕分けで言えば、メールの件名や内容から緊急度を仕分けするタスク、ユーザーのフィードバックをポジティブ・ネガティブに仕分けするタスクなどに使えます。こうした仕分けは、定義は簡単そうに見えても、細かいニュアンスを言葉で指示するのは意外と難しいものです。そのニュアンスを、サンプルとそれに対する評価を渡すことでAIに学習させられます。

文章作成・書類作成でも活躍します。たとえば文章校正でAIを使っている人は多いと思いますが、明らかな誤字脱字の発見は得意な一方、微妙なニュアンスの違いを拾うのはあまり得意ではありません。「日本語としておかしくはないけれど、この冗長な言い回しは避けたい」「この場合はこう書きたい」といった好みです。

こうしたときにもFew-shotプロンプトが効きます。入力として自分の文章を、出力として「本来はこうあってほしい」という理想の形を渡す。これをいくつか例題として渡すと、AIが学習してくれます。通常の誤字脱字チェックは別でAIにやらせ、それとは別に、読み直して「ここはこう書きたかった」という部分をメモしておき、それを入力(元の文章)と出力(理想の文章)のペアにしてプロンプトを作る。すると、誤字脱字以外に、あなたが直したい微妙なニュアンスも拾ってくれます。

言語化しにくい場面で活躍する

「AIに伝えたいことはあるけれど、うまく言語化できない」という場面、けっこうありますよね。微妙なニュアンスや、言語化が難しいものをAIに伝える手段として、Few-shotプロンプトは活躍します。

ちなみに、私のニュース選別のタスクでは、o3よりもGPT-4.1の方がうまく機能しました。タスクによって相性の良いモデルは変わるので、ここも試してみる価値があります。

応用例をもう一つ。テキストのトーンを統一したいときにも使えます。社内向けマニュアルや社外向け文書など、フォーマットやトーンが決まっているものですね。過去に作成した文章の一部をFew-shotプロンプトでいくつか渡すと、その例を参照してトーンやスタイルを揃えた回答を生成できます。「この場面では必ずこの専門用語を使ってほしい」「興味の度合いをyesかnoだけで答えてほしい」といった、出力を細かくコントロールしたいケースでも有効です。AIに指示しているのに時々こちらの意図通りに答えてくれない、というときは、Few-shotプロンプトを試してみてください。

Few-shotプロンプトの注意点

簡単に使えて応用範囲も広いFew-shotプロンプトですが、使ううえで注意点があります。

イメージとしては「たくさん例題を渡せば精度が上がる」と思いがちですが、実はそうではありません。私はニュースタイトルを100件渡しましたが、では1万件渡せばもっと精度が上がるかというと、そう単純ではないのです。AIの性能にもよりますが、渡す文章が長くなると、かえって精度が落ちる可能性もあります。

なぜなら、各AIにはコンテキストウィンドウという値が設定されているからです。これはAIの短期記憶のようなもので、詰め込める情報量には限りがあります。このあたりは調整が難しく、タスクや使うAIによって最適な量は変わります。

一つの考え方として、データを渡すときは偏りのない幅広いサンプルを渡すと精度が上がる傾向があります。私の場合なら、いろんなジャンルのニュースタイトルを、興味あり・なしも偏りなく渡すイメージです。最初は3つくらいの少ない例題で試して、そこから少しずつ増やしていくアプローチがやりやすいと思います。なお、こうした「中間部は無視されやすい」「情報量にも限界がある」といった性質は、生成AIの4つの特性で詳しく解説しているので、あわせて読むと理解が深まります。

プロンプトエンジニアリングとコンテキストエンジニアリング

最後に、Few-shotプロンプトのようなプロンプトエンジニアリング全般についても少し触れます。

プロンプトエンジニアリングとは、プロンプトをうまく書いてAIの回答を最大化するアプローチで、Few-shotプロンプトもその一手法です。一時期はプロンプトエンジニアという職種が年収4,000万円で募集される、なんて話もありました。最近はあまり聞かなくなりましたが、個人的にはこの考え方は引き続き重要だと思っています。AIにどんなプロンプトを渡すかで、こなせるタスクが変わってくるからです。

話題に上りにくくなった背景には、AIモデルの進化があります。複雑なプロンプトを組まなくても、少ない指示からAIがちゃんと回答してくれるケースが増えてきました。プロンプトを考えるのは面倒なので、今の形はむしろ理想的とも言えます。だからこそ、私たちは最低限の基本だけ押さえておけば十分だと思います。たとえば、AIは先頭と末尾の指示を重視し中間部は無視しやすいこと、最初に出した回答に引きずられること、そして今回のFew-shotプロンプトですね。

そして2025年、新しいワードも登場しています。コンテキストエンジニアリングです。これはアンドレイ・カルパシー氏(バイブコーディングという言葉の生みの親)が提唱して話題になりました。彼のポストを引用します。

コンテキストエンジニアリングは、最適な情報をコンテキストウィンドウに正確に記入する、繊細な技術と科学です。

少し難しいですが、簡単に言うと「プロンプト単体ではなく、参照するデータやツールの配置までトータルで設計する発想」です。これはAIエージェントの文脈で語られることが多い概念です。以前はAIに渡すプロンプトだけが重視されていましたが、AIが自律的に外部情報にアクセスしたり使うツールを選んだりするエージェント的なケースでは、プロンプトだけでは足りなくなってきます。

プロンプトエンジニアリングとコンテキストエンジニアリング、言葉遊びのような部分も否めませんが、AIエージェントの登場でプロンプトだけ考えていればいい状況ではなくなってきたのは事実です。こういうワードもあるのだ、と頭の片隅に置いておいてもらえればと思います。

まとめ

最後に、今回のポイントをまとめます。

  1. Few-shotプロンプトは、AIにいくつかの例題を渡して学習させるアプローチ
  2. たとえば、ニュースタイトルから興味のあるなしを分類するタスクを実装できる
  3. 分類タスク以外にも、微妙なニュアンスや言語化しにくい抽象的な内容を伝えるときに役立つ。文章作成や書類作成のシーンでも応用できる