Chapter 3 プロンプトエンジニアリングのテクニック

学習時間の目安0.25時間

プロンプトエンジニアリングのテクニック

プロンプトエンジニアリングのテクニックはいくつかの種類に分類できます。ここでは「Zero-shot」「Few-shot」について説明します。これらのプロンプトごとに得られる回答の特性を理解しておくことで、状況に応じてどのようなプロンプトを利用することが適切かを判断できるようになり、得たい結果を得られやすくなります。

ゼロショット(Zero-shot)

ゼロショット(Zero-shot)とは、生成モデルに対し特定のタスクについての例やデータをプロンプト内で提示せずに、生成AI自身にそのタスクを実行させる方法を指します。生成AIはそれまでに見たことのないタスクであっても、事前に学習済みのデータから適切と思われる回答の出力を生成できます。

例えば、ChatGPTに入力したテキストがポジティブなものか、ネガティブなものかを判別する感情分析のタスクを指示するとしましょう。

【ゼロショットの例】

プロンプトカフェのレビューコメントがそれぞれポジティブかネガティブか判定してください。
「素晴らしいコーヒーと心地よい雰囲気です。スタッフもフレンドリーで、いつも笑顔で迎えてくれます。」
「内装は素敵ですが、混雑時の待ち時間が長すぎます。注文が来るまで30分以上かかったことも。」
「新鮮なペストリーが豊富で、朝食にぴったり。特にクロワッサンがおすすめです。」
ChatGPTの回答 これらのカフェのレビューコメントについての判定は以下の通りです。
「素晴らしいコーヒーと心地よい雰囲気です。スタッフもフレンドリーで、いつも笑顔で迎えてくれます。」
ポジティブ: このコメントはコーヒー、雰囲気、スタッフの態度について肯定的な意見を述べており、全体的にカフェの良い点を強調しています。

「内装は素敵ですが、混雑時の待ち時間が長すぎます。注文が来るまで30分以上かかったことも。」
ネガティブ: このコメントは内装の評価はポジティブですが、主要な部分である待ち時間について不満を表明しており、ネガティブな印象を与えます。

「新鮮なペストリーが豊富で、朝食にぴったり。特にクロワッサンがおすすめです。」
ポジティブ: このコメントはペストリーの品質と種類について高く評価しており、特にクロワッサンを推奨している点がポジティブな評価となっています。

このゼロショットプロンプトでは、具体的な前提や指示を与えずに、レビューが肯定的なものか、否定的なものかを判断させています。ChatGPTは、自らの知識ベースから感情分析を行っており、ゼロショットの典型的な例です。

フューショット(Few-shot)

フューショット(Few-shot)は、プロンプトの中で具体例を提示し、タスク実行の方法を学習させるプロンプトです。ChatGPTは、ゼロショット(Zero-shot)のように具体例がなくても出力を生成してくれますが、フューショット(Few-shot)のように具体例を入れることで、より意図にあった回答を出してくれます。

たとえば、以下のプロンプトでは、「『鍋』の季節は冬である」ということを判定させたいとします。

【ゼロショットで指示した場合】 例を出さずに指示をすると以下のような解説が生成されます。形にはなっていますが、意図した結果ではありません。

プロンプト鍋は?
ChatGPTの回答 鍋は料理を調理するための道具であり、通常は金属や陶器で作られています。鍋は液体を加熱し、その中で食材を調理するのに使用されます。さまざまな種類の鍋があり、それぞれ異なる料理や調理法に適しています。例えば、鍋の種類には鍋、フライパン、圧力鍋、鍋、蒸し器などがあります。

【フューショットで指示した場合】 意図した出力を生成したい場合などは、しっかりと例示することで意図した出力結果が得やすくなります。

プロンプト『雪合戦』の季節は冬である。
『桜』の季節は春である。
『キャンプ』の季節は夏である。『秋刀魚』の季節は秋である。
『鍋』は?
ChatGPTの回答 『鍋』の季節は冬です。
鍋料理は寒い冬に温かい料理を囲んで食べることが多く、日本では冬の風物詩として親しまれています。したがって、『鍋』の季節は冬と考えられます。

コメント