近年、「ChatGPT」、「Gemini(旧Bard)」、「Claude」といった対話型AIが大きな注目を集めています。またそれらと連携したチャットボットなどのツール、サービスが数多く登場し、ビジネス分野を中心に急速に広がっています。
対話型AIと連携したボットは、カスタマーサポートや情報検索、マーケティング支援など様々なタスクにおいて高いパフォーマンスを発揮することが可能です。ただし、生成AIボットを最大限に活用するには、プロンプトと呼ばれる指示文を適切に設計する必要があります。
本記事では、ChatGPTなどのLLM(大規模言語モデル)利用におけるプロンプトについての基礎知識と、効果的なプロンプト構築のコツを解説します。
目次
◇プロンプトとは
「プロンプト(prompt)」という言葉は「〜を刺激する」「〜を促す」という意味を持ちます。元々情報通信の分野では、テキストベースのインターフェースでユーザーが入力するコンピュータへの命令文などが、プロンプトと呼ばれてきました。
生成AIの文脈におけるプロンプトは、「生成AIボットに指示を与え、望ましい出力を促すための入力文」のことを指します。プログラミング言語などの特殊な記法ではなく、日本語や英語などの自然言語で入力するのが一般的です。
◆なぜプロンプトが重要なのか
ChatGPTなどのLLM(大規模言語モデル)は、大規模なデータセットでトレーニングされた高度なAIモデルです。しかし、どんなツールも使い方が良くなければ最大限のパフォーマンスを発揮することはできません。これは、LLMと連携した生成AIボットも同様です。ユーザーの期待通りの出力を生成するには適切なプロンプト構築が不可欠なのです。
たとえば、ChatGPTなどのLLMを「様々な分野の知識を習得済みの極めて優秀な新入社員」とすると、LLMに指示を与えるユーザーは「上司」という立ち位置となります。上司は新入社員に対してタスクを指示するわけですが、この時の指示が大雑把で具体性に欠けていたり、タスクに必要な情報が共有されていなかったりすると、いかに優秀な新入社員といえど、十分な業務成果をあげることができません。とはいえ、長すぎる指示や情報量が多く複雑な指示をしてしまうと、新入社員が混乱して業務効率が落ちてしまったり、独断で余計なことをしてミスにつながる可能性もあります。
優秀な新入社員(=LLM)がその潜在能力をいかんなく発揮するには、明瞭かつ具体的であり、タスクを実行するに過不足ない情報を備えた指示(=プロンプト)が必要不可欠なのです。

◆LLM利用におけるプロンプトエンジニアリング
プロンプトエンジニアリングは、LLMの能力を最大限に引き出すために効果的なプロンプトを設計・構築する技術です。単にAIに指示を与えるだけでなく、LLMの内部処理を予測し、意図した出力を導き出すためのスキルです。ただしプログラミングなどのスキルとは違って、専門知識や高度な技術は必要ありません。プロンプトはあくまでも自然言語によって入力するため、一般的な言語能力さえあれば、エンジニアなどの人材でなくてもその技術を習得することが可能です。
とはいえ、効果的なプロンプト構築には、生成AIの仕組みやボットのシステム構成についてある程度の理解が必要です。その上で「どのようなプロンプトを与えれば、モデルがどのような挙動をするかを予測し、最適な指示を与える」のがプロンプトエンジニアリングです。今後、生成AIと連携したツールやサービスが広く普及していくに従って、業種・業界を問わず求められる重要なスキルとなっていくでしょう。
◇プロンプトの構成要素
ここからは、効果的なプロンプトを構成する要素をご紹介します。
ただし、本来プロンプトに決まった形はなく、生成AIボットにどのようなパフォーマンスを求めるかによって、その文面は千差万別です。生成AIボットを利用する際は、目的に合わせて柔軟にプロンプトの内容をカスタマイズすることが重要です。
例として、ChatGPTに「新商品のキャンディーのキャッチコピーを考えて」という指示を出す場合を想定してみましょう。まずはシンプルな指示のみのプロンプトを与えてみます。

何の情報もない中で、一応キャッチコピーを作ってくれました。
しかし、商品が「もちもち食感」であることや「ふわふわ甘い」ことは、ChatGPTの勝手な決めつけです。これでは実際のコピーとしては使い物にならないでしょう。
では、ChatGPTにより効果的なコピーを出力してもらうためにはどのようなプロンプトを与えるべきでしょう。ここからは、効果的なプロンプトを構築するための要素をご紹介します。
◆コンテキスト
まずはコンテキストが重要です。コンテキストは、日本語では一般的に「文脈」と訳されます。要はLLMが指示の背景・目的を理解し、適切な回答を出力するために必要な情報です。つまり、指示に関連する周辺情報が「コンテキスト」です。上記の例の場合、商品の特徴やターゲット層、LLMに求める役割などの情報をコンテキストとしてプロンプトに追加することで、さらに効果的なキャッチコピー案を生成することができます。
コンテキストには以下の要素を取り入れると効果的です。
- ボットに求める役割(あなたは〇〇の専門家です、など)
- 指示の背景やユーザーの状況(新商品の認知拡大を図るため、など)
- 参照すべき情報、知識(商品の特徴、ターゲット層など)
回答の生成に必要なコンテキストが不十分な場合、LLMは事前に学習した膨大なデータを元に不足している情報を補完しようとします。この性質が災いして、LLMが事実と異なる情報をさも事実かのように出力してしまう「ハルシネーション 」という現象が起こってしまうのです。
ハルシネーション について詳しくは下記の記事をご覧ください。
◆条件
次に、ボットの生成文に課したい条件を指示します。
今回の場合、
- ユニークで刺激的な印象を与えるコピー
- 1つ20文字以内で10通り
という条件を付与し、より洗練された回答の出力を目指します。
この条件の部分が多岐にわたり複雑化することでLLMは指示を十分に理解できなくなってしまいます。一度で完璧な回答を得たいからといって、複雑な条件をいくつも追加しないように注意が必要です。
◆出力形式、規則
次に、LLMに求める出力形式や、守るべき規則を明確に示します。今回は、わかりやすく「箇条書き」という出力形式を指定してみましょう。他にも、リズムの良いキャッチコピーにするために五七五の形式で生成するように指示したり、特定の単語を使用しないように制限を設けたりすることも可能です。ただし、こちらも「条件」と同様に指示が複雑化することでモデルが十分なパフォーマンスを発揮できなくなる可能性があるので注意しましょう。
・プロンプトと生成結果の例
以上の要素を追加すると、以下のようなプロンプトが出来上がります。

目的を「新商品の認知拡大」とし、ChatGPTに求める役割を「マーケティングチームの一員」と明確に指定した上で、参照すべき情報として「商品の特徴」や「訴求内容」を与えています。さらに生成するキャッチコピーの「数」「文字数」「テイスト」を指定し、最後に「箇条書き」で出力するように指示しています。
この結果、ChatGPTが生成した回答が以下となります。

いかがでしょう。この出力結果がキャッチコピー案として優れているかどうかは意見が分かれそうですが、少なくともモデルがユーザーの提示した情報を全て踏まえた上で回答を生成したことが窺えます。
重要なのは、ここで解説したプロンプトの構成さえ知っていれば、このキャッチコピー案作成というタスクがほんの数分で完了する、という点です。もちろん、作業としては上記のプロンプトを入力するだけなので、ユーザーがコピーライターである必要も、AIエンジニアである必要もありません。
◇プロンプト構築のコツ
上述した例のように、プロンプトに必要な情報を明確に記載することでLLMのパフォーマンスを高めることが可能です。ただし、目的とするタスクによってその形式は様々に異なるため、プロンプトエンジニアリングには創意工夫と試行錯誤が求められます。
ここからは、様々なプロンプトに共通して使えるいくつかのコツをご紹介します。
◆テキストの持つ役割を明確にする
LLMは、実は文章や言葉の意味を理解しているわけではなく、言葉と言葉や文章と文章の関係性を自ら整理することもできません。そのため、プロンプトに含まれるテキストの役割が曖昧だと、どのように出力に反映していいのかも判断できないのです。
それぞれのテキストが持つ意味や役割を「#」などの記号を用いて明確にし、文と文の関係性をわかりやすく示すことで、LLMがプロンプトの内容を正確に理解しやすくなります。
上述したキャッチコピー案生成の例では、「あなたの役割」「商品の特徴」といった見出しとなるテキストに「#」をつけることで、そのテキストの下にある文章が指示の本文であることを示しています。
つまり、プロンプトの記法に一定のルールを設けることで、より正確にユーザーの意図を伝達できるようになるのです。

◆曖昧な表現は避け、具体的に指示する
これは人間同士のコミュニケーションでも同様ですが、曖昧な表現が多くなるほど正確な意思伝達は困難です。たとえば何かを説明してほしい時、「わかりやすく教えて」と要求すれば、相手はなるべくわかりやすく説明してくれるでしょう。しかしその「わかりやすさ」の基準は人それぞれで、結果として説明がわかりやすいものであるかどうかは受け手次第ということになります。プロンプトエンジニアリング においても同じことが言えます。
人それぞれの基準になってしまう「わかりやすく」という指示ではLLMはその指示をどのように出力に反映すべきか判断できません。一方「小学校低学年の子供でもわかるように」や「専門知識を持たない一般人に説明するように」と具体的に基準を定めると、LLMは情報を提供する相手を想定して説明文のわかりやすさを調整することができるのです。
◆長すぎるプロンプトには弊害も
原則として、プロンプトは短く端的な文章で、情報量は必要最小限に留めるようにしましょう。
LLMが一度の応答で処理可能なテキスト量には上限があり、その上限を超えるプロンプトを与えると適切な応答ができません。また、上限を超えていなくてもプロンプトが長くなることで指示の内容が複雑になり、LLMにとって理解が難しくなる可能性もあります。
またChatGPTのAPIを利用したツールやサービスの場合、LLMが処理するトークン数によってAPIの利用料金が変動します。大量のテキストをプロンプトとして処理させることで想定以上にコストがかさんでしまう可能性もあります。
つまりコストパフォーマンスの観点からも、プロンプトは短く端的かつ具体的で、可能な限り洗練された指示書であることが重要なのです。
◇効果的なプロンプトで生成AIボットを最大活用
生成AI活用に必要不可欠なプロンプトエンジニアリングは、目的に合わせた構成要素といくつかのコツを把握して行うことが重要です。
現状、多くの研究者や専門家らが「効果的なプロンプト」の例やテンプレートを見つけ出しWeb上で公開していますが、それらも万能とはいえません。なぜならLLMは同じプロンプトを与えても同じ出力をするとは限らないからです。LLMが回答を生成する過程はブラックボックスであり、効果的とされるプロンプトを与えたところで、そのプロンプトがどう処理されるか、ユーザーにはわからないのです。だからこそ、プロンプトエンジニアリングには創意工夫と試行錯誤が必要不可欠なのです。
自社で効果的なプロンプトの構築法を追求する自信がない場合は、生成AI活用における豊富な実績を持った企業の提供するツールやサービスを利用することをオススメします。
◆ChatGPT連携「SELFBOT」
「SELFBOT」はOpenAI社のChatGPTと連携した生成AIチャットボットです。
既存の社内データやWebサイト情報、資料ドキュメントを自動学習することで、手軽に高性能の生成AIボットを構築できます。
多数の導入実績によって蓄積したプロンプトエンジニアリングの知見を有し、充実した導入・運用サポートを提供することが可能です。

- エンベディング+RAG(検索拡張生成)により精度の高い回答出力
- 自動データ学習機能で手軽な導入・運用が可能
- Azure OpenAI Service利用によりセキュリティも万全
- 多機能かつ直感的に操作可能な管理画面を提供
- 多数の導入実績に基づく、手厚い運用サポート
◆無料トライアル実施中
SELFBOTは無料トライアルを実施中です。
SELFBOTの全機能を、実際のサービス環境下にてご利用頂けます。WEBサイト上でのカスタマーサポート、社内ナレッジ検索などの用途でお試し頂くことが可能です。詳細は下記のお問い合わせページよりお気軽にお問い合わせください。

SELFのライターを中心に構成されているチーム。対話型エンジン「コミュニケーションAI」の導入によるメリットをはじめ、各業界における弊社サービスの活用事例などを紹介している。その他、SELFで一緒に働いてくれる仲間を随時募集中。