プロンプトエンジニアリングとは?基礎知識と活用法を徹底解説
最終更新日:2024.03.21
ChatGPTなどで知られる生成AI(ジェネレーティブAI)が、業務で活用される機会が増えるにつれて「プロンプトエンジニアリング」という言葉もよく聞くようになりました。プロンプトエンジニアリングは、生成AIを使いこなすうえで必須のスキルともいわれています。
この記事では、コマンドプロンプトの概要やその役割、活用方法などを解説します。
プロンプトエンジニアリングとは?
プロンプトエンジニアリングとは、AIに入力する適切な指示(プロンプト)を開発・最適化させる技術・学問分野です。例えば、生成AIの1つであるChatGPTはユーザーがプロンプトを入力することで、入力内容に合わせてコンテンツを出力します。試しに「日曜日」とだけ入力すると、ChatGPTは次のように回答しました。
先ほどとは別に「日曜日」と入力しても、こちらのプロンプトがあいまいなため、どのような情報を求めているかが分からず、ChatGPTは異なる回答を出力します。
今度は「『日曜日に公園に出かけます』という文章を英語に翻訳してください」と入力しました。すると、ChatGPTはこちらの意図を汲み取って、指示通りに英語訳した文章を出力してくれました。
このように、AIに入力するプロンプトを改善するプロセスが、プロンプトエンジニアリングなのです。
プロンプトエンジニアリングの役割と重要性
ChatGPTなどの生成AIは、私たちのプロンプトに従って文章や画像などのコンテンツを生成します。先ほどの例文のように、プロンプトの内容があいまいであれば回答結果もあいまいとなり、プロンプトが明確であればこちらが望む回答結果を得られる可能性が高まります。
私たちが求める情報を得るために、適切なプロンプトを用意することが、プロンプトエンジニアリングの役割なのです。
ビジネスにおいて生成AIを使用するシーンが増えている昨今、生成AIに正しく意図を伝えて、最適な回答を得る必要があります。そのため、プロンプトエンジニアリングはプログラミングなどに従事するエンジニアだけでなく、非エンジニア人材にも必要な技術として、重要性が高まっています。
プロンプトエンジニアリングとChatGPT
生成AIは、テキスト生成AIや画像生成AIなど、いくつもの種類があります。そのうち、テキスト生成AIに分類されるChatGPTは、日本でも一般的に使用されている生成AIの1つです。
ChatGPTは、チャット形式で会話するように質問・回答を繰り返しながらコンテンツを生成します。ユーザーからの入力に対して適切な返答を生成するため、その回答結果の質や精度は、プロンプトに大きく依存しています。プロンプトを最適化することができれば、さまざまな場面でChatGPTを活用できるのです。
- メールマガジンの文章作成
- 外国語の資料・メールの翻訳
- 自社メディアのコンテンツ企画
- 業務マニュアルの作成
プロンプトエンジニアリングの知識を深めてChatGPTを使用できれば、従業員の業務効率向上に大きな効果を発揮します。
主なプロンプトの構成要素
プロンプトの内容は、ユーザーによって自由に設計できます。しかし、効果的なプロンプトには、大きく4つの要素が含まれているとされています。
- 命令・指示
- 文脈・背景
- 入力データ
- 出力
命令・指示
冒頭で紹介した「『日曜日に公園に出かけます』という文章を英語に翻訳してください」のように、プロンプトで生成AIに対して命令か指示を行います。その内容に合わせて、生成AIはコンテンツを生成するのです。命令・指示の内容があいまいだったり、複数の命令・指示を同時に与えられると、望む回答結果は得られにくくなるでしょう。
【命令・指示の一例】
- 3月にリリースする記事の企画を出せ。
- 以下に続く文章を要約してください。
- この文章をフランス語に翻訳してくれますか?
文脈・背景
AIからの回答結果の精度を高めるために、命令・指示に追加する情報が「文脈・背景」です。回答内容に制限・条件などの情報を与えます。
例えば「天気予報を教えて」というプロンプトでは、AIは現在の地域の天気を知るための情報が必要です。そのため、「東京の明日の天気予報を教えて」と文脈・背景を明確にすることで、AIは具体的な答えを返すことができます。
【文脈・背景の一例】
- 3月にリリースする記事の企画を10個出せ。
- 以下に続く文章を100文字以内に要約してください。
- この文章をフォーマルなフランス語に翻訳してくれますか?
入力データ
「入力データ」は、回答結果の精度をさらに高める要素の1つです。例文のように、出力してほしいコンテンツに必要な情報(商品名、商品の特徴、企画の背景、調査対象や調査方法)を伝えます。AIは、与えた情報を踏まえて回答してくれます。
【入力データの一例】
- 3月にリリースする「新生活にまつわる記事」の企画を10個出してください。3月は多くの人々が新生活を迎えるシーズンです。記事では、新生活に役立つ〇〇という商品を紹介します。商品の特徴は以下の通りです(以下略)
出力形式
「出力形式」は、AIにどのような形で回答を出力するかを指定する要素です。出力形式を制限することで、より回答精度を向上させることができます。
【出力形式の一例】
- 3月にリリースする記事の企画を10個考えて、箇条書きにしてまとめてください。
- 〇〇の企画の記事を作成してください。タイトルはh1タグ、見出しはh2タグ、h3タグにして記載しなさい。
- AとBの商品の特徴を「料金」「重量」「バッテリー駆動時間」で比較して、比較表を作成してください。
プロンプトの型と例
プロンプトエンジニアリングでは、プロンプトを改善するために知っておくと便利な「型」があります。今回はそのなかでも、6つの型を例文を交えて紹介します。
Zero-Shotプロンプティング
Zero-Shotプロンプティングとは、AIに対して「前例のないプロンプト」を投げかけるテクニックです。はじめてChatGPTなどを使う場合は、ほとんどがこのタイプのプロンプトを行っているといえるでしょう。
今回の例文では、「次の文章に該当する気分を回答しなさい」というプロンプトを入力しました。ちなみに、このプロンプト以前にAIには例文を紹介したり、似たような文章によるテストは行っていません。
プロンプトの内容が的確で、かつ使用している生成AIが正常に機能しているのなら、Zero-Shotプロンプティングで正しい回答が得られます。もしも正しい回答が得られなければ、事前に例文を提供したり、デモンストレーションとしてテストを行ったりしてみましょう。
Few-Shotプロンプティング
Zero-Shotプロンプティングは、複雑なタスクに対して満足な回答を得られないケースがあります。Few-Shotプロンプティングとは、プロンプト内に回答内容のデモを提供することで、未知のタスクに対する回答精度を高める手法です。
例えば、ChatGPTに算数の計算をさせてみましょう。Zero-ShotプロンプティングはAIにいきなりタスクを課します。
Few-Shotプロンプティングでは、複数の計算結果の情報を与えて、その上でタスクを課します。複雑な計算や推論に対しては、デモの数を3つ、5つ、8つ…と増やしていくことで、回答結果の精度を改善できます。
Chain-of-Thoughtプロンプティング
Chain-of-Thoughtプロンプティングは、問題を解決するまでの一連の手順をプロンプトに含めるテクニックを指します。連鎖的な思考方法によって回答精度を高めることから、「Chain-of-Thought」と呼ばれています。
以下の画像は、プロンプトの一例です。
Chain-of-Thoughtプロンプティングは、人間の思考プロセスに模倣した形で特定の問題を段階的に解いていく手法です。物事を考える上での途中の手順を分解し、それをプロンプトとして設定します。これにより、AIは人間と同じ思考過程で問題解決に取り組むことができるのです。
Zero-Shot CoT
CoTは「Chain-of-Thought」の略語で、Zero-ShotプロンプティングにChain-of-Thoughtプロンプティングの考え方を応用させる手法です。例文のように、Zero-ShotプロンプティングでいきなりAIにタスクを課しつつ、「ステップに分けて考えてください」という指示を与えます。
段階的に推論をすることにより、AIは正しい回答を導き出すことができました。Zero-Shotプロンプティングにこの手法を加えることで、回答精度の改善につながります。
Self-Consistency(自己整合性)プロンプティング
Self-Consistencyプロンプティングでは、Few-Shotプロンプティングを用いて連想的な思考のプロンプトを大量に学習させます。それにより、自己補完的に整合性の高い回答を自ら選択できるようにするという手法です。
一例として、ある姉妹の年齢に関する問題をChatGPTに回答してもらいました。
残念ながら、回答が間違っています。今度はSelf-Consistencyプロンプティングを用いて、似たような連想思考の事例をたくさんデモとして紹介した上で、同じ問題を出題します。その結果、AIがプロンプトの推論を学習して正しい回答を出力しました。
Generate Knowledge(知識生成)プロンプティング
知識生成プロンプティングは、プロンプトの一部に使用する知識・情報などを組み込む手法です。参考となる知識をプロンプトに加えることで、ChatGPTに正しい推論ができるように促します。例えば、例文としてゴルフについて質問しました。
「Yes」と出力しているのに実際はプロンプトの内容を否定しているので、ちぐはぐな回答内容になっていることが分かります。そこで、今度はプロンプトを通じて推論のヒントになる知識を与えた上で、同じ質問をしてみます。すると、与えられた知識を参考に正しい推論と回答を行いました。
効果的なプロンプトを作るポイント
AIから適切な回答結果を得られるために、次の3つのポイントを意識してプロンプトを設計しましょう。
- シンプルなプロンプトから試していく
- 明確&具体的な指示内容を心がける
- 指示内容を変えながら試行錯誤する
シンプルなプロンプトから試していく
プロンプトエンジニアリングを学ぶ上で、まずはシンプルなプロンプトから試すことです。AIから最適な回答を得るには、何度もプロンプトの実践と改善を何度も繰り返していくというプロセスが欠かせません。
いきなり複雑なプロンプトを作成しようとせず、シンプルなプロンプトを入力するところから始めてください。その結果に応じて、よりよい回答を得るためのプロンプトを随時追加していきましょう。
明確&具体的な指示内容を心がける
あいまいな表現や抽象的な指示をすると、回答の精度も下がってしまいます。具体的かつ明確な指示を心がけることで、AIは正確な答えを生成しやすくなります。
【あいまいなプロンプトの例】
- イノベーションについて教えて。
- この文章を要約して。
【具体的なプロンプトの例】
- イノベーションの定義とその実例を3つ挙げてください。
- この文章を100文字以内に要約してください。
明確かつ具体的な表現であるほど、AIは明確な情報を提供してくれるようになります。
プロンプトの内容を変えながら試行錯誤する
プロンプトエンジニアリングでは、欲しい情報に対して多種多様な指示内容を試すことが重要です。求める回答が得られない場合は、プロンプトの内容をその都度修正していきましょう。
例えば、プロンプトの長さが回答内容に影響を与えることがあります。一般的に、短いプロンプトではシンプルな回答を引き出しやすく、長いプロンプトは具体的で詳細な回答を引き出しやすい傾向があります。「AIとは何ですか?」という質問と「AIの定義とその機能は何ですか?」という質問は、回答で得られる情報量が大きく異なるでしょう。
もちろん、常に長いプロンプトがいいとは限らず、状況に応じて適切な長さのプロンプトを選択する必要があります。プロンプトの試行錯誤は時間と労力を要しますが、その結果としてAIの挙動を理解し、より質の高い結果を引き出せます。
まとめ
プロンプトエンジニアリングを学ぶことで、生成AIの回答の精度を高めたり、より幅広い用途で生成AIを使用できたりします。社内で生成AIを活用する際は、ぜひ記事で紹介したプロンプトの型などを参考にしてください。