Few shot promptの導入
皆さんこんにちは、矢野哲平です。この番組は、耳で学ぶAIをコンセプトに、初心者・中級者向けにAIを分かりやすく解説する番組です。
今回のテーマは、AIが好みを学習する?Few shot promptでニュース分類器を作った話し、について話していきます。
はい、ということで今日は、Few shot promptを使ってニュース分類器を作成した話について話していきます。
Few shot promptというのは聞いたことがありますでしょうか?
プロンプト作成の文脈で、割とよく登場するワードになります。Few shot prompt。
今日はこのFew shot promptを使って、AIが私の好みを理解して、毎日自動でニュースを仕分けてくれる、そんな仕組みをFew shot promptで実装した話をしていきます。
そこからもう一つ掘り下げて、Few shot promptってそもそも何なのとか、あとはどのようなシーンでFew shot promptが使えるのかという点を掘り下げて話していきます。
Few shot prompt、聞いたことはあるけどあまり使ったことがないよと、Few shot prompt初めて聞いたという方は、ぜひ最後までお付き合いください。
今回のエピソードでFew shot promptを話す理由としては、簡単に使えて汎用的なプロンプトテクニックだからです。
世の中にはいろいろプロンプトテクニックがありますよね。
そういったいろんなテクニックがある中で、Few shot promptはわりと広く知られたテクニックなんですけど、
どのようなシーンで使えばいいのかわからないという声も多いので、改めて今日このポッドキャストで一緒に学んでいきたいと思います。
ニュース分類器の実例
今日話すポイントは主に3つです。
1つ目に、そもそもFew shot promptって何ですかという点を話していきます。
2つ目に、Few shot promptを使ってニュース分類器を作った話、私の具体的な事例を交えて話します。
そして最後3点目に、Few shot promptがどのようなケースで使えるのか活用事例についても掘り下げます。
はい、では早速話していきましょう。
そもそもFew shot promptって何ですかという話からです。
Few shot promptを簡単に言うと、AIにいくつかの例題を渡して学習させるアプローチです。
FEWと書いてFew、これはいくつかのというような意味合いです。
でShot、ここでは例題のような意味合いです。
Few shot prompt、いくつかの例題を渡すプロンプト。
具体的には、AIに入力と出力を渡して、その特徴であったり傾向を学習させることができます。
これあの、Few shot prompt、私初めて知った時、ちょっと分かりにくかったんですよね。
AIにいくつかの例題を渡して、何になるんですかと。
ちょっとこのFew shot promptの使いどころが、よくイメージできなかった経験があります。
今回私はこのFew shot promptを使って、あるタスクをこなしたんですけど、
これが結構Few shot promptを理解する上で、イメージしやすいかなと思ったので話そうと思います。
私が作ったのが、AIによるニュースの分類器というのを作りました。
ハッカーニュースという海外のニュースサイトがあります。
これはテクノロジー系のニュースをキュレーションしているようなサイトになるんですけど、
私頻繁にこのサイトをチェックしていて、その中から海外で話題になっているニュースをチェックしています。
ただ、ハッカーニュースに載っているニュースタイトル、すべてに私が興味があるわけではないんですね。
ハッカーニュースのサイトに訪問をして、興味がありそうな記事だけを手動でピックアップをしていました。
ある時、ふと思いました。このピックアップの作業をAIに任せることができないかなと。
AIがハッカーニュースのタイトル一覧を見て、矢野さんはこのニュースに興味がありそうだと、
このニュースは興味がなさそうだと、AIが判断してくれるようなワークフローです。
これを実装してみたんですけど、結論言うと予想以上に機能しています。
ここで何を使ったのかというと、今回話す浮遊ショートプロンプトのアプローチを採用しました。
どういったことをしたかというと、具体的にはまずニュースタイトルを100記事分集めました。
その集めたニュースのタイトルに対して、これは興味がある、これは興味がないという、私の主観ですね。
そうしたものを全部ラベル付けをしました。そしてこのようにAIに指示を渡しました。
ユーザーが添付したデータには、タイトルと興味のスコアが格納されています。
このデータを参考に、次のタイトルの興味をES可能で判断してください。
そしてここに100記事分のデータを貼り付けました。
この記事は興味がある、この記事は興味がないという100件のデータです。
こうすると何が起こるのかというと、私が新しいニュースタイトルをAIに渡すとします。
そうするとAIが、矢野さんはこの記事、興味があるだろう、興味がないだろうということを判別してくれるようになります。
その判断の元になっているのが、このフューショットプロンプトで渡した100記事分のニュースタイトルのデータです。
興味がある、興味がない、ラベル付けしたデータです。
ちょっと今手元で試してみると、例えば次のようなニュースタイトルを渡したとします。
陸地からの淡水流出が海面上昇の主な原因です。
これは実際に掲載されているハッカーニュースのニュースタイトルです。
これを渡すと、ちなみにこのニュースタイトル、私は興味はないです。
このニュースタイトルを渡すと、そうですね、AIが興味なしで出力をしてくれました。
次にこのようなニュースタイトルを渡してみます。
Persona Vector、言語モデルにおける性格特性の監視と制御というニュースタイトルを渡してみます。
ちなみにこのニュースタイトルは私は興味があります。
AIに渡すと、うまく機能してますね。興味ありで出力してくれました。
このようにニュースタイトルを渡して、興味のありなしを伝えてAIに学習をさせると。
こうした浮遊ショットプロンプトのアプローチを採用することで、
ニュースタイトルから自分の好みの記事をAIが選別してくれる、こうしたタスクを実装することができます。
Few shot promptの応用
ここまで話を聞くと、こう思う人もいるかもしれません。
いや、私はニュース記事の分類はしないから浮遊ショットプロンプトを使う機会はないかなと。
でもですね、浮遊ショットプロンプト、結構幅広いシーンで利用することができます。
例えば私が今回やったニュース記事の分類、仕分けの作業ですね。
その文脈で言うと、例えばメールの件名や内容から緊急度仕分けするタスク、
そうしたタスクにも応用することができます。
あとは、例えばユーザーのフィードバックからポジティブなフィードバック、ネガティブなフィードバックを仕分けするようなタスク、
こうした仕分け作業って、一見定義は簡単なようなんですけど、細かいニュアンスを支持するのは結構難しいです。
そうした細かいニュアンスをAIに伝えるために浮遊ショットプロンプトを使うと。
それ以外の場面で言うと、あとは文章の作成や、あとは書類の作成とかでも活躍してくれます。
例えば、文章構成のタスクでAIを使っている人多いと思います。
AIに文章構成をさせて、誤字脱字を発見させるようなタスクです。
こうした指示の場合、明らかな誤字脱字を発見するのはAIは得意なんですけど、
微妙なニュアンスの違い、こうしたものをキャッチするのはあまり得意ではありません。
例えば、日本語の文章としてはおかしくないと。
でも、この場合はこのような言い回しはしたくない。
日本語としては間違ってないけど、冗長な表現を避けたいとか。
こうした時に浮遊ショットプロンプトが活躍してくれます。
具体的には、入力として自分の文章を渡します。
そして出力には、本来はこの文章であってほしいという理想の形を渡します。
こうした例題をいくつか渡していくと、
AIがユーザーが求めている文章の理想の形っていうのはこのような形式なんだなっていうのを学習してくれます。
文章構成の精度を高めるためにぜひ使ってみてください。
通常の誤字脱字を拾うタスクっていうのは別でAIにやらせます。
それとは別に、自分で読み直した場合にここはこう書きたかったなという部分をメモしておきます。
それをAIに渡すプロンプトとして作成します。
入力に元々の文章、そして出力には理想的な文章を記載します。
つまりここで何をしているのかっていうと、明らかな誤字脱字とかではなくて、
自分が後で読み返した時にちょっと違和感を感じる文章、
そうした言語化が難しい、違和感のような抽象的なものをAIに伝えるときに、この浮遊ショートプロンプトは役立ちます。
AIに伝えたいことはあるけど、言語化しにくい場面って結構ないですか?
例えば、このニュースは興味があるとか興味がないとか、何を持って興味がある興味がない、結構言語化は難しいんですよね。
こうした微妙なニュアンスであったり、言語化が難しいようなケース、
こうした時の伝える手段として浮遊ショートプロンプトを活用していくと。
ちなみに私のニュースの分類のタスクでは、O3よりもGPT4.1の方がうまく機能しました。
あとそれ以外の浮遊ショートプロンプトの事例で言うと、テキストのトーンを統一したい時にも使えます。
例えば、社内向けのマニュアルであったりとか、あとは社外向けの文章とか、
文章のフォーマットとか、あとはトーン、スタイルがある程度決まっているような文章、
そうした時にも浮遊ショートプロンプトは使えます。
具体的には、文章のトーンを統一するために、過去に作成した文章の一部を浮遊ショートプロンプトでいくつか渡すと。
こうすることで、その渡した例を参照して回答を生成することができます。
つまり、浮遊ショートプロンプトを使うことで、回答のトーンやスタイルというのを統一したい、そんな場面でも使えます。
結構、AIの回答を一言一句コントロールしたい時ってありますよね。
例えば、メールとか、あとは社内規定が決まっている文章とか、この言い回しの場合は必ずこの専門用語を使ってほしいとか、
結構厳格にAIの回答をコントロールしたいケースもあります。
私のケースでは、ユーザーがニュースタイトルを渡したら、興味の度合いをイエスかノーだけで回答してほしい、こんな場面です。
こうした時に、浮遊ショートプロンプトを使うことで、回答の出力もコントロールできます。
AIには、こういったように回答してほしいと、そういった指示は出しているんだけど、
時々こちらの意図通りに回答してくれない、そんな経験あると思うんですけど、そうした時に浮遊ショートプロンプトも試してみてください。
こんな感じで、浮遊ショートプロンプト、結構簡単に使えて、かつ応用ができるので、覚えておくと作業がはかどると思います。
ちょっと一旦、情報をまとめます。
浮遊ショートプロンプトは、AIにいくつかの事例を渡して、回答をコントロールしたり、
AIに言語化しにくいニュアンスを伝えるテクニックです。
基本的には、プロンプトに入力情報と出力情報を渡します。
私のケースでは、入力情報としてニュースのタイトルを渡しました。
そして出力情報には、そのニュースの興味のありなしを渡しました。
浮遊ショットプロンプトの活用
こうすることで、新しいニュースタイトルを渡した時に、私の好みに応じてニュースを仕分けることができます。
私はニュースタイトルの仕分けに使いましたが、その他にも情報の仕分けなどで活躍してくれます。
メールやアンケートの仕分けとかです。
それ以外では、言語化しにくい抽象的な内容をAIに伝える時にも活躍してくれます。
例えば、文章の違和感を検知するようなタスク、こういったものにも応用ができます。
ここまで、浮遊ショットプロンプトの応用例などを話してきました。
ここからは少し視点を変えて、浮遊ショットプロンプトを使う上での注意点について話します。
浮遊ショットプロンプト、イメージ的には、たくさんサンプルを渡すと精度が上がるような印象があります。
でもですね、実際そうではありません。
例えば私、ニュースタイトルの情報を100件AIに渡しました。
じゃあこれ、100件じゃなくて1万件渡したら、もっと精度が高くなるのかというと、そう簡単な話ではないんですね。
AIの性能にもよるんですけど、渡す文章が長くなると精度が落ちる可能性もあります。
なぜなら、それぞれのAIにはコンテキストウィンドウという値が設定されているからです。
このコンテキストウィンドウというのは、そうですね、AIの短期記憶、短い記憶のようなもので、
AIに詰め込める情報量にも限りがあるわけです。
この辺は調整が難しいんですけど、タスクや使っているAIによってどのぐらいのデータを渡せばいいのかというのは変わってきます。
一つの考えとして、データを渡すときに幅広いサンプルを渡すこと、
あとは偏りのない情報を渡すと精度が上がる傾向にあります。
例えば私の場合だったら、いろんなジャンルのニュースタイトルを渡すとか、
あとは興味があるニュースタイトル、興味がないニュースタイトルも偏りなく幅広くAIに渡すようなことが求められます。
浮遊ショットプロンプトを使う場合は、例えばその渡すサンプル、それを5個ぐらいとか少ないデータで試して、
それからどんどんデータを増やしていく、そうしたアプローチがやりやすいと思います。
こんな感じで浮遊ショットプロンプトを簡単に使えて応用が効くので、ぜひ試してみてください。
プロンプトエンジニアリングの概念
最後に今回紹介した浮遊ショットプロンプトのようなプロンプトエンジニアリングについても少し触れたいと思います。
プロンプトエンジニアリングというのは、プロンプトをうまく書いてAIの回答を最大化するようなアプローチです。
今回紹介した浮遊ショットプロンプトもこのプロンプトエンジニアリングの一つの手法になります。
このプロンプトエンジニアリング、最近はあまり聞かなくなりましたよね。以前は頻繁に耳にしていたワードです。
プロンプトエンジニアなんて仕事もアメリカで募集されていて、年収4000万みたいな話もありましたよね。
個人的にはこのプロンプトエンジニアリングという考えというかアプローチ、これは引き続き重要だと思っています。
なぜなら、AIにどのようなプロンプトを渡すかで、AIがこなせるタスクも変わってくるからです。
ただ、現実問題、このプロンプトエンジニアリングというのは、以前ほど話題に上ることは少なくなりました。
背景としては、AIモデルの進化があるのかなと思います。複雑なプロンプトを組まなくても、
AIが理解して回答してくれる、こうしたケースが増えてきました。
でも、今の形が理想的といえば理想的ですよね。正直、プロンプト考えるのって面倒じゃないですか。
でも、AIの進化に伴って、人間の少ない支持からAIがちゃんと回答してくれる。
そうした背景もあって、プロンプトエンジニアリングという言葉、あまり聞かなくなったのかなと思ったりもします。
なので、もちろんそういったプロンプトエンジニアリングのテクニックを知っておいて損はないんですけど、
私たちは最低限の基本的なことだけを抑えておけばいいのかなと思います。
AIは先頭と末尾の指示を重視する傾向にあるけど、中間部の情報は無視する傾向にあるとか、
AIは最初に出した回答に強く影響を受ける傾向にあるとか、
あとは今回話した浮遊ショットプロンプトとかですかね、AIに具体例を渡して学習させる。
言語化しにくい抽象的な情報は浮遊ショットプロンプトでAIに伝えるとかです。
2025年は、あまりプロンプトエンジニアリングの話題は前ほど聞かなくなりましたけど、また新しいワードも実は登場しています。
それがコンテキストエンジニアリングというワードになります。
これはアンドレイ・カルパシーさんが提唱して話題になりました。
アンドレイ・カルパシーさん、バイブコーディングっていう言葉あるじゃないですか。
このポッドキャストでも前に紹介した内容ですけど、バイブコーディングという言葉の生みの親です。
アンドレイ・カルパシーさんが言うには、プロンプトエンジニアリングの次はコンテキストエンジニアリングだと。
ちょっとアンドレイ・カルパシーさんのポストを引用しますね。
コンテキストエンジニアリングは、最適な情報をコンテキストウィンドウに正確に記入する繊細な技術と科学です。
ちょっと難しいですよね。
コンテキストエンジニアリングを簡単に言うと、プロンプト単体ではなく、参照するデータやツールの配置までトータルで設計する発想になります。
このコンテキストエンジニアリングっていうのは、AIエージェントの文脈で語られることが多いです。
以前は、AIに渡すプロンプトだけが重視されていました。
でも、AIが自律的に思考をして、外部の情報にアクセスをしたり、自分で使うツールを選択するような、AIエージェントのようなケースが出てくると、プロンプトエンジニアリングだけのアプローチでは足りなくなってきます。
それこそコンテキストエンジニアリングのように、プロンプト単体ではなく、AIに参照させるデータやツールの配置までをトータルでデザインする必要が出てくるわけです。
プロンプトエンジニアリングとか、コンテキストエンジニアリングとか、ちょっと言葉遊びのような部分も否めないんですけど、
確かにAIエージェントの登場で、プロンプトだけを考えていればいいという状況ではなくなってきたなというのは私も同意します。
ちょっとあの最後に話が逸れてしまったんですけど、コンテキストエンジニアリングというものもあるということを頭の片隅に覚えてもらえるといいかなと思います。
はい、それでは今日のポイントをまとめます。
プロンプト管理の新機能
1つ目に浮遊ショットプロンプトは、AIにいくつかの例題を渡して学習させるアプローチです。
2つ目に、例えばニュースタイトルから興味がある、ないを分類するタスクを実装することもできます。
そして最後3点目、分類タスク以外にも、AIに微妙なニュアンス、言語化しにくい、抽象的な内容を伝えるときにも浮遊ショットプロンプトは役立ちます。
文章作成や書類作成のシーンでも応用できます。
はい、今日はこの辺ということで、本日も聞いていただきありがとうございました。
ちょっと話変わるんですけど、プロンプト管理を楽にするChrome拡張機能を開発しました。
具体的には、プロンプトの保存や管理、あとはチャット画面に一括で挿入できるような機能があります。
例えば、そうですね、文章構成で使う100行ぐらいのプロンプトを登録して、それをコマンド一発でChatGPTの画面で呼び出す、みたいなことができます。
あとは、プロンプトの変更履歴も確認できるので、管理が楽になると思います。
興味がある方はぜひ使ってみてください。概要欄にリンクを貼っておきます。
番組ではこのように、耳で学べるAIを毎週発信しています。
通勤中や家事の合間にAI情報をキャッチアップできます。
毎週水曜朝に更新していますので、ぜひフォローをお願いします。
そして、おすすめの生成AIツールをまとめた資料も配布しています。
興味のある方はこちらもぜひ、概要欄にリンクを貼っておきます。
お相手は、耳で学ぶAIの矢野鉄平でした。また次の配信でお会いしましょう。