翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
カスタムメトリクスのプロンプトを作成する
RAG 評価ジョブを使用すると、独自のメトリクスを作成して、特定のビジネスケースのモデルパフォーマンスの特性をより適切に示すことができます。評価ジョブごとに最大 10 個のカスタムメトリクスを定義できます。
独自のカスタム評価メトリクスを作成するには、以下を指定する必要があります。
-
ジャッジモデルが使用する詳細な指示を含むプロンプト
-
カスタムメトリクスに使用する評価者モデル
評価者モデルが RAG システムの出力評価に使用できるスコアリングシステム (出力スキーマ) を指定することもできます。
以下のセクションでは、ベストプラクティスを含め、カスタムメトリクスを使用する際の評価者モデルへのプロンプトを作成する方法について説明します。また、JSON ファイルを使用してメトリクスを作成する場合に使用するスキーマも定義します。
プロンプトでカスタムメトリクスを使用する評価ジョブを作成する方法については、「カスタムメトリクスを使用した取得のみの RAG 評価ジョブの作成」および「カスタムメトリクスを使用した retrieve-and-generate RAG 評価ジョブの作成」を参照してください。
プロンプトの構成とベストプラクティス
カスタムメトリクスのプロンプトを作成する際は、次の要素を使用してプロンプトを構築する必要があります。
-
ロール定義 (オプション) – 評価者モデルに特定の ID またはロールを採用するよう指示します。
-
タスクの説明 – 評価タスクに関する詳細な手順を示します。
-
基準とルーブリック (オプション) – 評価の詳細なスコアリングガイドラインとルーブリックを提供します。
-
入力変数 – プロンプトやレスポンスなど、評価する変数を定義します。
これらの要素をリストで示される順序でプロンプトに含めます。以下のセクションでは、これらの各要素について詳しく説明します。
ロール定義
ロール定義の指定はオプションですが、ロール定義を指定すると評価の枠組み作成に役立ちます。例えば、RAG システムの最終出力が通常の文章形式であるかどうかを評価するメトリクスを作成する場合は、「ライティングチューター」などのロールの使用を検討できます。評価の目標によっては「事実精度チェッカー」や「対象分野のエキスパート」などのロールも適している場合があります。
ロール定義を含める場合は、プロンプトの最初のセクションにする必要があります。以下は、ロール定義の例です。
例ロール定義
You are a professional editor who is familiar with the requirements of commonly-used style manuals.
タスク定義
タスク定義はプロンプトの最も重要なセクションであり、評価者モデルが実行するタスクを定義します。タスク定義では、評価タスクに関する詳細な指示 (最低 15 語を推奨) を示し、重点を置く側面と評価を構成する方法について具体的に説明する必要があります。
タスク定義を含める場合は、ロール定義の直後に来るようにする必要があります。
LLM のプロンプトを構成する方法の一般的なガイダンスについては、「プロンプトを設計する」を参照してください。
次の例は、RAG システムのレスポンスが特定のスタイルガイドに準拠しているかどうかに焦点を当てたメトリクスのタスク定義を示しています。
例タスク定義
You are provided a prompt and a response from a RAG system. The prompt asks the RAG system to follow the Chicago Manual of Style when generating its responses. Your task is to assess how closely the text in the response adheres to the style guide. Focus in particular on grammar, prose style, and citation requirements.
基準とルーブリック
このセクションはオプションであり、複数の評価ルーブリックを定義したり、メトリクスの詳細なスコアリングガイドラインを提供したりできます。このセクションは、タスク定義と入力変数の間に追加する必要があります。次の例は、提供されたタスク定義の例で指定されたタスクの評価ルーブリックとスコアリングガイドラインを示しています。プロンプトのこのセクションには、これらのタイプの情報のいずれかまたは両方を含めることができます。
例評価ルーブリック
When evaluating the response quality, consider the following: - Grammar: Does the grammar in the response follow the requirements of the style guide - Style consistency: Does the response maintain consistent capitalization, punctuation, and paragraph formatting - Citations: Does the response use the correct citation style for in-text citations and endnotes
例スコアリングガイドライン
Please rate the quality of the response on the following scale: - Poor: Response includes errors in citation, grammar, or usage - Acceptable: Response includes only minor formatting errors - Good: Response meets all requirements of the style guide
LLM-as-a-judge を使用する評価ジョブを AWS マネジメントコンソール、AWS CLI、または AWS SDK のいずれかで作成する場合、Amazon Bedrock の出力スキーマを指定して、ジェネレーターモデルからのレスポンスを評価できます。出力スキーマに指定した定義が、プロンプトで定義したスコアリングガイドラインと一致していることを確認します。例えば、前の例では、出力スキーマの定義を「Poor」「Acceptable」「Good」と指定しています。出力スキーマの定義の詳細については、「出力スキーマの指定 (評価スケール)」を参照してください。
入力変数
プロンプトの最後のセクションでは、評価者モデルが評価を実行するために必要な変数を指定します。入力変数は最後に指定する必要があります。入力変数の後にプロンプトでさらに指示を出すと、評価者モデルがメトリクスを正しく評価しない場合があります。
指定する必要がある最小入力変数は、作成する評価ジョブのタイプによって異なります。retrieve-only ジョブの場合は {{context}} を指定し、retrieve-and-generate ジョブの場合は {{prediction}} を指定する必要があります。いずれの場合も、ジェネレーターモデル ({{prompt}}) に提供されるプロンプトも含めることをお勧めします。次の表は、プロンプトで使用できる変数と、それらがプロンプトデータセットのプロパティにどのように対応しているかを示しています。
| 入力変数 | 定義 | 必須 (取得のみ) | 必須 (取得と生成) | プロンプトデータセットプロパティ |
|---|---|---|---|---|
{{prompt}} |
RAG システムに提供されるプロンプト | なし | なし | "prompt" |
{{prediction}} |
レスポンスジェネレーターモデルによって提供されるレスポンス (retrieve-and-generate ジョブでのみ使用可能) | なし | あり | "output" -> "text" (独自の推論データを提供するジョブにのみ適用されます) |
{{ground_truth}} |
プロンプトの参考回答 | なし | なし | "referenceResponses" -> "content" -> "text" |
{{context}} |
レスポンスを生成するために受信した RAG の文章 | あり | なし | "retrievalResults" -> "content" -> "text" |
{{reference_contexts}} |
取得されると予想されるグラウンドトゥルース文章 | なし | なし | referenceContexts -> "content" -> "text" |
次の例は、プロンプトで入力変数を指定する方法を示しています。
例入力変数の定義
Here is the actual task: Prompt: {{prompt}} Response: {{prediction}}
完全を期すために、このユースケースのプロンプト全体を次の例に示します。完全なプロンプトの最大長は 5,000 文字です。
例カスタムメトリクスプロンプト
You are a professional editor who is familiar with the requirements of commonly-used style manuals. You are provided a prompt and a response from a RAG system. The prompt asks the RAG system to follow the Chicago manual of style when generating its responses. Your task is to assess how closely the text in the response adheres to the style guide. Focus in particular on grammar, prose style, and citation requirements. When evaluating the response quality, consider the following: - Grammar: Does the grammar in the response follow the requirements of the style guide - Style consistency: Does the response maintain consistent capitalization, punctuation, and paragraph formatting - Citations: Does the response use the correct citation style for in-text citations and endnotes Please rate the quality of the response on the following scale: - Poor: Response includes errors in citation, grammar, or usage - Acceptable: Response includes only minor formatting errors - Good: Response meets all requirements of the style guide Here is the actual task: Prompt: {{prompt}} Response: {{prediction}}
出力スキーマの指定 (評価スケール)
カスタムメトリクスを使用して評価ジョブを作成するときに、プロンプトの評価ガイドラインに加えて、出力スキーマを指定してメトリクスの評価スケールを定義できます。このスキーマは、スケール値とそれに対応する定義で構成されます。スケール値は数値または文字列のいずれかにすることができますが、両方を混在させることはできません。
評価スケールを定義することを強くお勧めします。定義しないと、Amazon Bedrock は、評価者モデルの出力を適切に解析できず、結果をコンソールにグラフィカルに表したり平均スコアを計算したりできない可能性があります。評価スケールは、コンソールを使用してメトリクスを作成する場合に定義できます。または、AWS SDK もしくは AWS CLI を使用してメトリクスを作成する場合は ratingScale プロパティを使用して定義できます。
評価スケールを定義すると、Amazon Bedrock は構造化出力指示を評価者モデルプロンプトに追加します。構造化出力の形式は評価者モデルによって異なるため、評価スケールを個別に定義するようにし、メインプロンプトの一部として含めないことが重要です。メトリクスを作成し、コンソールで評価スケールを定義すると、構造化出力指示を含む最終プロンプトがプレビューテキスト領域に表示されます。
各スケール値の定義を指定するときは、出力スキーマ定義で使用する定義が、プロンプトでスコアリングガイドラインを定義した方法と完全に一致しているようにしてください。これらの定義は最大 5 語で 100 文字までに制限する必要があります。定義で冠詞 (「a」と「the」) を使用しないでください。プロンプトで説明テキストを使用して、評価者モデルにレスポンスの評価方法の詳細な定義を提供できます。
次の表は、プロンプトでスコアリングガイドラインを説明する方法と、出力スキーマで対応するスケール定義を行う方法を示しています。
| プロンプトスコアリングガイドライン | スキーマスケール値 | スキーマスケール定義 |
|---|---|---|
- Poor: The response fails to meet the basic requirements of the prompt and contains significant errors and omissions |
0 |
Poor |
- Good: The response adequately meets the basic requirements of the prompt but may contain minor errors or omissions |
1 |
Good |
- Excellent: The response fully meets the prompt with comprehensive, accurate, and valuable information |
2 |
Excellent |
この例では、スケールに整数値を使用していますが、文字列を使用することもできます。
評価ジョブの作成時にスキーマを指定する方法については、「カスタムメトリクスを使用してモデル評価ジョブを作成する」を参照してください。
カスタムメトリクスを作成するための JSON ファイルの作成
コンソールでカスタムメトリクスを使用する評価ジョブを作成する場合、メトリクスを定義する JSON ファイルをローカルマシンからアップロードするオプションがあります。コンソールを使用し、JSON ファイルを使用してカスタムメトリクスを作成する場合、評価スケールはコンソール UI のテキスト領域を使用して定義できないため、JSON 定義に含める必要があります。カスタムメトリクスを作成するときは、常に評価スケールを定義することをお勧めします。
次の例は、数値または文字列の評価スケールを使用するか、評価スケールを使用しないカスタムメトリクスを作成するための JSON ファイル形式を示しています。いずれの場合も、完全なプロンプトを文字列として "instructions" プロパティに追加します。
1 つ以上のカスタムメトリクスを使用して評価ジョブを作成すると、Amazon Bedrock は指定された出力 S3 バケットにメトリクス定義を JSON ファイルとして保存します。これらのファイルにアクセスするには、s3:// に移動します。S3-output-bucket-name/job-name/job-uuid/custom_metrics