プロンプトの設計に正しい方法や間違った方法はありませんが、モデルのレスポンスに影響を与えるために使用できる一般的な戦略があります。モデルのパフォーマンスを最適化するには、厳格なテストと評価が不可欠です。
大規模言語モデル(LLM)は、言語単位間のパターンと関係を学習するために、膨大なテキストデータでトレーニングされています。テキスト(プロンプト)を受け取った言語モデルは、高度な予測入力ツールのように、次に来ると思われるものを予測できます。したがって、プロンプトを設計する際は、モデルによる次の予測に影響を与える可能性のあるさまざまな要因を考慮してください。
プロンプト エンジニアリングのワークフロー
プロンプト エンジニアリングは、モデルのパフォーマンスを向上させるテスト駆動型の反復プロセスです。プロンプトを作成する際は、各プロンプトの目的と期待される成果を明確に定義し、それらを体系的にテストして改善の余地を特定することが重要になります。
次の図は、プロンプト エンジニアリングのワークフローを示しています。
効果的なプロンプトを作成する方法
最終的にプロンプトの有効性に影響する要素は、コンテンツと構造の 2 つです。
- コンテンツ:
タスクを完了するには、モデルにタスクに関連するすべての情報を提供する必要があります。この情報には、指示、例、コンテキスト情報などが含まれます。詳しくは、プロンプトのコンポーネントをご覧ください。
- 構成:
必要なすべての情報がプロンプトで提供されている場合でも、情報構造を指定すると、情報の解析がスムーズに行われます。順序、ラベル付け、区切り文字の使用などは、すべてレスポンスの品質に影響します。プロンプトの構造の例については、プロンプト テンプレートの例をご覧ください。
プロンプトのコンポーネント
次の表に、プロンプトの必須コンポーネントと省略可能なコンポーネントを示します。
コンポーネント | 説明 | 例 |
---|---|---|
目的 | モデルに達成してほしいこと。具体的に記述し、全体的な目標も含めてください。「ミッション」、「目標」とも呼ばれます。 | あなたの目標は、数学の問題を解いている生徒に答えを直接教えることではありません。生徒の学習をサポートすることです。 |
指示 | タスクを実行するための詳しい指示。「タスク」、「手順」、「指示」とも呼ばれます。 |
|
オプション コンポーネント | ||
システム指示 | 一連のタスクでモデルの動作を制御または変更する技術的または環境的な指示。多くのモデル API では、システム指示は専用パラメータで指定されます。 システム指示は Gemini 1.5 Pro でのみ使用できます。 |
あなたは、フロントエンド インターフェースのコードのレンダリングを専門とするコーディングの専門家です。作成するウェブサイトのコンポーネントを説明する際は、作成に必要な HTML と CSS を返してください。このコードの説明は行わないでください。UI デザインも提案してください。 |
ペルソナ | モデルがどのような役割で動作しているか。「ロール」、「ビジョン」とも呼ばれます。 | あなたは数学の家庭教師で、生徒の数学の宿題を手伝っています。 |
制約 | レスポンスの生成時にモデルが遵守すべき制限。これには、モデルができることと、できないことが含まれます。「ガードレール」、「境界」、「制御」とも呼ばれます。 | 生徒に直接答えを教えないでください。代わりに、問題を解くためのヒントを提示してください。生徒が混乱している場合には、問題を解くための具体的な方法を伝えてください。 |
トーン | レスポンスの口調。ペルソナを指定することで、スタイルとトーンにも影響を与えることができます。「スタイル」、「声」、「ムード」とも呼ばれます。 | カジュアルなトーンで専門的な表現を使って回答してください。 |
コンテキスト | モデルが現在のタスクを実行するために参照する必要がある情報。「背景」、「ドキュメント」、「入力データ」とも呼ばれます。 | 数学の授業計画。 |
少数ショットの例 | 特定のプロンプトに対するレスポンスの例。「エクゼンプラー」または「サンプル」とも呼ばれます。 | input: あなたは、1 立方メートルの容積の箱に何個のゴルフボールが入るかを計算しようとしています。1 立方メートルを立方センチメートルに換算し、ゴルフボールの体積(立方センチメートル)で割りましたが、私の回答が間違っていると指摘されました。output: ゴルフボールは球体であり、効率的に空間に詰め込むことはできません。計算では、球の最大パック効率を考慮する必要があります。 |
推論手順 | モデルに推論方法を説明します。これにより、モデルの推論能力が向上する場合があります。「思考ステップ」とも呼ばれます。 | 推論を段階的に説明します。 |
レスポンスの形式 | レスポンスの形式。たとえば、JSON、表、マークダウン、段落、箇条書き、キーワード、エレベーター ピッチなどでレスポンスを出力するようにモデルに指示します。「構造」、「プレゼンテーション」、「レイアウト」とも呼ばれます。 | レスポンスをマークダウン形式にしてください。 |
内容のまとめ | プロンプトの末尾で、プロンプトの主なポイント(特に制約とレスポンスの形式)を簡潔に繰り返します。 | 答えを教えずに、ヒントを提示してください。レスポンスは常にマークダウン形式にします。 |
安全保護対策 | 質問をボットのミッションに関連付けます。「安全ルール」とも呼ばれます。 | なし |
特定のタスクに応じて、省略能なコンポーネントの一部を含めるか除外するかを選択できます。コンポーネントの順序を調整して、レスポンスにどのように影響するかを確認することもできます。
プロンプト テンプレートのサンプル
次のプロンプト テンプレートは、適切に構造化されたプロンプトの例を示しています。
<OBJECTIVE_AND_PERSONA> You are a [insert a persona, such as a "math teacher" or "automotive expert"]. Your task is to... </OBJECTIVE_AND_PERSONA> <INSTRUCTIONS> To complete the task, you need to follow these steps: 1. 2. ... </INSTRUCTIONS> ------------- Optional Components ------------ <CONSTRAINTS> Dos and don'ts for the following aspects 1. Dos 2. Don'ts </CONSTRAINTS> <CONTEXT> The provided context </CONTEXT> <OUTPUT_FORMAT> The output format must be 1. 2. ... </OUTPUT_FORMAT> <FEW_SHOT_EXAMPLES> Here we provide some examples: 1. Example #1 Input: Thoughts: Output: ... </FEW_SHOT_EXAMPLES> <RECAP> Re-emphasize the key aspects of the prompt, especially the constraints, output format, etc. </RECAP> |
ベスト プラクティス
プロンプト設計のベスト プラクティスは次のとおりです。
- 明確で具体的な指示にする
- 少数ショットの例を含める
- 役割を割り当てる
- コンテキスト情報を追加する
- システム指示を使用する
- プロンプトを構造化する
- 推論方法を説明するようにモデルに指示する
- 複雑なタスクを分割する
- パラメータ値を試す
- プロンプトのイテレーションに関する戦略
次のステップ
- プロンプト ギャラリーでプロンプトの例を確認する。
- Vertex AI プロンプト オプティマイザー(プレビュー版)を使用して、Google モデルで使用するようにプロンプトを最適化する方法を学習する。
- 責任ある AI のベスト プラクティスと Vertex AI の安全フィルタについて学習する。