【例文付き】Few-shotプロンプティングとは?

「Few-shotプロンプティングって何?」「Few-shotプロンプティングの効果は?」そう思う方もいるのではないでしょうか。

Few-shotプロンプティングは生成AIを効果的に活用する方法の一つで、複雑なタスクに対応することが可能です。

今回PROMPTYでは、Few-shotプロンプティングとは何か、活用事例について詳しく紹介していきたいと思います。

Few-shotプロンプティングとは

Few-shotプロンプティングとは、例を提示することで、タスクを実行するための方法を学習させるプロンプトを指します。複雑なタスクでは、例を提示しないZero-shotプロンプトでは不十分となる場合があります。そのため、プロンプトでいくつかの例(Few-shot)を与えることにより精度の高い出力が期待されます。

次のプロンプトは、Few-shotプロンプトの一例です。

Few-shotプロンプト:

格好いい演奏だった/良い
非常にうるさい部屋だった/悪い
速いスポーツカー/良い
時代遅れなファッション/

GPT-4の出力:

悪い

プロンプトでは、文の後に”/”で区切り、「良いor悪い」といった状態を入力しています。3つの例(3shot)から、フォーマットを学習し、「時代遅れなファッション」に対して「悪い」という言葉を出力していることがわかります。

もう一つFew-shotプロンプトの例を紹介します。

Few-shotプロンプト:

犬→dog
机→desk
車→car
りんご→

GPT-4の出力:

apple

「りんご→」という入力の前に”日本語→英語”の形式の例を3つ提示したため、「apple」が出力されました。

また、文章を生成する場合も検証してみます。

Few-shotプロンプト:

#ツールの説明:
生成AI「Bard」は、Google AIの大規模な言語モデルです。テキストとコードの大規模なデータセットでトレーニングされており、テキストの生成、言語の翻訳、さまざまな種類のクリエイティブコンテンツの作成、質問への回答を行うことができます。
#活用方法:
アメリカ人の上司にメールを送るため、Bardを活用します。要件を日本語で入力して、英語で自然な英文を作成してもらいます。これによって稼働する時間を短縮できます。

#ツールの説明:
Midjourneyは、大規模なテキストと画像のデータセットでトレーニングされた大規模な言語モデルです。テキストの説明文を入力すると、それに合った画像を生成することができます。

#活用方法:

GPT-4の出力:

Midjourneyを活用するための一例として、商品のデザイン案を作成するときに使えます。例えば、「赤いバラのデザインが施された革のハンドバッグ」などと入力すると、それに合った画像を生成します。これによって、デザインの初期段階でのアイデアのビジュアライゼーションを助け、製品開発の時間を短縮することができます。

また、ウェブサイトやブログの記事に合った視覚的なコンテンツを作成するためにも活用できます。例えば、記事の内容を説明する短いテキストを入力すると、それに合ったイメージを生成します。これにより、専門的なデザインスキルがなくても、効果的なビジュアルコンテンツを作成することができます。

ChatGPTの学習データは2021年9月までのため、「Bard」と「Midjourney」は未知のサービスとなります。しかし、Bardを1つの例(1shot)として活用方法を提示することで、例に倣ってMidjourneyの活用方法を出力しています。出力の内容も①概要②具体的な方法③得られるメリットの順番で例と同じ構成になっています。

Few-shotプロンプティングの限界

Few-shotプロンプティングのメリットは、いくつかの例を提示するだけでZero-shotプロンプティングで解答できないタスクも正確に実行することができます。しかし、多くのステップを要する問題では正しい回答が得られません。

例えば、逆さ読みの問題をFew-Shotプロンプティングで解いてみます。

Few-shotプロンプト:

「逆さ読み」は文章を逆さまに読むことです。
「こんにちは」を逆さ読みすると
A.「はちにんこ」
「おはようございます」を逆さ読みすると
A:「すまいざごうよはお」
「よろしくおねがいします」を逆さ読みすると
A:「すましいがねおくしろよ」

「ありがとうございました」を逆さ読みすると
A.

GPT-4の出力:

「たしましたいざござりあ」です。

答えは「たしまいざごうとがりあ」となるため、不正解です。Few-shotプロンプティングでは、正しく逆さ読みをすることはできませんでした。

次に、計数問題を解かせてみます。

Few-shotプロンプト:

次のグループの奇数を合計すると偶数になる。#グループ:1、3、6、8、9、11、12
解答:〇
次のグループの奇数を合計すると偶数になる。#グループ:23、33、44、66、55、78
解答:×
次のグループの奇数を合計すると偶数になる。#グループ:390、890、47、12、2、94
解答:×
次のグループの奇数を合計すると偶数になる。#グループ:16、37、32、13、83、3、8
解答:

GPT-4の出力:

答えは×です。

グループの中で奇数は37、13、83、3で合計は136となるため、答えは〇です。

ステップが多い計数問題もFew-shotプロンプティングでは、正しく解答することができませんでした。

これらのような複雑なタスクを正確に実行させるためには、より工夫したプロンプトを入力しなければいけません。

まとめ

今回PROMPTYでは、Few-Shotプロンプティングとは何か、その使い方と限界について例文を使って紹介しました。ぜひ今後のプロンプトエンジニアリングの知識習得に役立てていただければ幸いです。