生成AIから期待する回答を得るには、長い指示文や特別な言い回しが必要だと思われがちです。
しかし、現在のChatGPTやClaude、Geminiなどは、目的の概要を伝えるだけでも、必要な条件を整理したり、実際に使用するプロンプトを作成したりできます。そのため、利用者が最初から完成したプロンプトを書く必要は少なくなっています。
一方で、AIの性能が向上しても、何を実現したいのか、どの情報を使うのか、どのような条件を守らせるのかまで自動的に決まるわけではありません。
現在重要になっているのは、特別な言い回しを覚えることではなく、AIに依頼の目的や必要な情報を正しく伝えることです。
この記事では、現在のプロンプト作成について、次の順番で説明します。
- プロンプトの基礎知識
- 変化したプロンプト作成の考え方
- 実際にプロンプトを作成する方法
- プロンプト作成と改善の自動化
最初に、プロンプトの意味と、生成AIを利用するときに知っておきたい基本用語から確認します。
プロンプトの基礎知識
プロンプトとは何か
プロンプトとは、生成AIに渡す入力全体のことです。
一般的には、ChatGPTなどの入力欄に書く質問や指示をプロンプトと呼びます。ただし、実際には質問文だけでなく、AIに与える背景情報、資料、具体例、制約、期待する出力形式などもプロンプトに含まれます。
例えば、次のような短い質問もプロンプトです。
会議の案内メールを作成してください。
この指示だけでは、会議の日時、場所、参加者、目的、文体などが分かりません。AIが不足している内容を推測して回答するか、追加情報を求めることになります。
次のように情報を加えると、意図に近い回答を得やすくなります。
社内メンバーに送る会議案内メールを作成してください。会議は9月10日15時から会議室Aで開催します。目的は新商品の進捗確認です。丁寧だが堅すぎない文体で、件名と本文を作成してください。
曖昧な指示ではAIが判断する範囲が広くなり、具体的な指示では回答の方向を限定できます。ただし、長く詳しく書けば必ずよい結果になるわけではありません。不要な条件や矛盾する指示が増えると、かえって結果が悪くなることもあります。
プロンプトに関する基本用語
コンテキスト
コンテキストとは、AIが回答を作るために利用する背景情報や文脈のことです。現在の質問だけでなく、同じチャット内の以前の会話、添付した資料、システム側で設定された指示などもコンテキストになります。
現在は、指示の言い回しを工夫すること以上に、判断に必要なコンテキストを適切に与えることが重視されています。
システムプロンプトとユーザープロンプト
システムプロンプトは、AIの基本的な役割や共通ルールを設定する指示です。ユーザープロンプトは、利用者がその都度入力する質問や依頼を指します。
ChatGPTを通常利用する場合は、この違いを強く意識する必要はありません。APIや業務システムでは、共通ルールと個別の入力を分けるために重要になります。
入力と出力
入力はAIに渡す内容で、出力はAIから返される結果です。入力には文章だけでなく、画像、音声、PDF、表計算ファイル、プログラムコードなどが含まれる場合があります。出力も文章だけでなく、表、Markdown、HTML、プログラムコード、JSONなどを指定できます。
制約と出力形式
制約とは、AIに守らせる条件です。「300文字以内にする」「日本語で回答する」「資料にない内容を推測しない」などが該当します。条件が多すぎたり互いに矛盾したりする場合は、優先順位を付けます。
出力形式とは、回答をどのような形で返すかという指定です。文章、箇条書き、比較表、HTML、Markdown、JSONなどを指定できます。
Zero-shotとFew-shot
Zero-shotは、回答例を与えずに指示だけで実行させる方法です。Few-shotは、期待する入力と出力の例を少数提示してから、同じ形式で処理させる方法です。
Few-shotは、回答の形式、文体、分類基準などを揃えたい場合に有効です。ただし、例が偏っていると、AIの回答もその例に引っ張られます。
トークンとコンテキストウィンドウ
トークンは、AIが文章を処理するときの単位です。入力と出力が長くなるほど、一般的には使用するトークンも増え、APIでは利用料金や処理時間に影響します。
コンテキストウィンドウとは、AIが一度に参照できる情報量の上限です。現在のモデルは大量の情報を扱えますが、情報を増やせば必ず精度が上がるわけではありません。重要な情報が埋もれたり、費用が増えたりするため、必要な情報を選ぶことも重要です。
ハルシネーション
ハルシネーションとは、AIが事実ではない内容を、もっともらしく生成する現象です。
与えた資料だけを根拠に回答してください。資料に記載がない内容は推測せず、「確認できない」と記載してください。
このような指示で誤りを減らすことはできますが、完全には防げません。法律、医療、料金、製品仕様、最新情報など、正確性が重要な内容は、公式情報や一次情報による確認が必要です。
プロンプトに含める基本要素
- 目的:最終的に何を実現したいのか
- 背景と対象:誰が使用するのか、何を処理するのか
- 条件と制約:守る条件、変更範囲、禁止事項
- 資料と具体例:判断に必要な情報や期待する回答例
- 出力形式:文章、表、JSONなど、結果を受け取る形
- 判断基準と完了条件:何を良い回答とし、どこまで行えば完了か
すべての依頼に、これらを細かく記載する必要はありません。単純な質問なら短いプロンプトで十分です。複雑な調査やプログラム修正、繰り返し実行する業務では、目的や制約、完了条件を明確にします。
