

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# カスタムメトリクスを使用した retrieve-and-generate RAG 評価ジョブの作成
<a name="knowledge-base-evaluation-create-randg-custom"></a>

カスタムメトリクスを使用する評価ジョブを作成するには、以下を指定する必要があります。
+ ジャッジモデルが使用する詳細な指示を含むプロンプト
+ カスタムメトリクスに使用する評価者モデル

また、ジャッジモデルがジェネレーターモデルのレスポンスを評価するために使用できる評価スケール (出力スキーマ) を指定することもできます。

カスタムメトリクスを使用して評価ジョブを作成するには AWS マネジメントコンソール、、 AWS Command Line Interface (AWS CLI)、または Amazon Bedrock API を使用します。評価ジョブを作成するには、次の手順に従います。メトリクスのプロンプトを作成する手順とガイダンス、および作成時に指定する評価スケールの定義方法については、「[カスタムメトリクスのプロンプトを作成する](kb-evaluation-custom-metrics-prompt-formats.md)」を参照してください。

1 つ以上のカスタムメトリクスを使用して評価ジョブを作成すると、Amazon Bedrock は指定された出力 S3 バケットにメトリクス定義を JSON ファイルとして保存します。これらのファイルにアクセスするには、`s3://{{S3-output-bucket-name}}/{{job-name}}/{{job-uuid}}/custom_metrics` に移動します。カスタムメトリクスの JSON 定義の形式については、「[カスタムメトリクスを作成するための JSON ファイルの作成](model-evaluation-custom-metrics-prompt-formats.md#model-evaluation-custom-metrics-prompt-formats-json)」を参照してください。

次の手順を使用してジョブを作成するには、プロンプトデータセットも必要です。まだ作成していない場合は、「[Amazon Bedrock で RAG 評価用のプロンプトデータセットを作成する](knowledge-base-evaluation-prompt.md)」を参照してください。

サポートされている評価者モデルのリストについては、「[サポートされているモデル](evaluation-kb.md#evaluation-kb-supported)」を参照してください。

------
#### [ Console ]

1. [Amazon Bedrock コンソール](https://console.aws.amazon.com/bedrock/home)を開きます。

1. 左側のペインの **[推論と評価]** で、**[評価]** を選択します。

1. **[RAG 評価]** ペインで、**[作成]** を選択します。

1. 以下を実行して、RAG 評価の詳細を入力します。

   1. **[評価の詳細]** ペインの **[評価名]** に、評価ジョブの名前を入力します。選択する名前は、 内で一意である必要があります AWS リージョン。

   1. オプションで、**[説明 - *オプション*]** に評価ジョブの説明を入力します。

   1. **[評価者モデル]** で、**[モデルを選択]** を選択し、評価を実行する評価者モデルを選択します。

1. 評価ジョブの推論ソースを入力します。Amazon Bedrock RAG 評価では、Amazon Bedrock ナレッジベースのパフォーマンスを評価することも、[プロンプトデータセット](knowledge-base-evaluation-prompt.md)に独自の推論レスポンスデータを指定して他の RAG ソースのパフォーマンスを評価することもできます。Amazon Bedrock ナレッジベースを選択するには、次の手順を実行します。

   1. **[推論ソース]** ペインの **[ソースを選択]** で、**[Bedrock ナレッジベース]** を選択します。

   1. **[ナレッジベースを選択]** で、ドロップダウンリストを使用してナレッジベースを選択します。

1. 独自の推論レスポンスデータを使用するには、以下を実行します。

   1. **[推論ソース]** ペインの **[ソースを選択]** で、**[独自の推論レスポンスを使用]** を選択します。

   1. **[ソース名]** に、応答データの作成に使用した RAG ソースの名前を入力します。入力する名前は、[プロンプトデータセット](knowledge-base-evaluation-prompt.md)の `knowledgeBaseIdentifier` パラメータと一致している必要があります。

1. **[推論ソース]** ペインの **[評価タイプ]** で、**[取得と応答生成]** を選択します。

1. **[メトリクス]** ペインで組み込みメトリクスを選択して、評価者モデルで使用する組み込みメトリクスを選択します。

1. カスタムメトリクスをもう 1 つ追加するには、まずメトリクスの評価に使用する評価者モデルを選択します。**[カスタムメトリクス]** ペインで、次の手順を実行します。

   1. **[モデルを選択]** を選択します。

   1. ポップアップで、使用するモデルを選択します。

   1. **[Apply]** (適用) を選択します。

1. **[メトリクス名]** で、メトリクスの名前を入力します。

1. メトリクスは、メトリクスを指定する JSON ファイルを指定する方法、テンプレートからの既存の組み込みメトリクスプロンプトを編集する方法、または評価者モデルが使用するプロンプトをコンソールに直接入力する方法の 3 つの方法で設定できます。

   JSON ファイルからメトリクスを作成するには、次の手順を実行します。

   1. **[メトリクスタイプを選択]** で、**[JSON ファイルをインポート]** を選択します。

   1. **[JSON ファイルをインポート]** で、**[ファイルを選択]** を選択します。

   1. ファイルピッカーを使用して、カスタムメトリクス定義で JSON ファイルを選択し、**[開く]**を選択します。JSON ファイルを使用してカスタムメトリクスを指定するためのスキーマの詳細と、いくつかのサンプルファイルについてには、「[カスタムメトリクスを作成するための JSON ファイルの作成](kb-evaluation-custom-metrics-prompt-formats.md#kb-evaluation-custom-metrics-prompt-formats-json)」を参照してください。

   1. (オプション) 別のメトリクスを作成するには、**[カスタムメトリクスを追加]** を選択します。評価ジョブごとに最大 10 個のカスタムメトリクスを作成できます。

      カスタムメトリクスの作成が完了したら、ステップ 14 に進み、評価ジョブのデータセットを設定します。

1. 組み込みテンプレートからカスタムメトリクスを作成するには、次の手順を実行します。

   1. **[メトリクスタイプを選択]** で、**[テンプレートを使用]** を選択します。

   1. **[テンプレートを選択]** で、ドロップダウンリストから、カスタムメトリクスの開始点として使用する既存の組み込みメトリクスプロンプトを選択します。

   1. **[手順]** で、独自のユースケースに合わせて選択したプロンプトを編集します。カスタムメトリクスプロンプトを作成する際のベストプラクティスと必須要素のリストについては、「[カスタムメトリクスのプロンプトを作成する](kb-evaluation-custom-metrics-prompt-formats.md)」を参照してください。

   1. 評価ジョブで、ランク付けされたスコアを含む構造化出力を出力する場合は、**[出力スキーマを有効化 (推奨)]** にチェックを入れたままにしておきます。メトリクス設定には出力スキーマを含める必要はありませんが、スキーマを定義することをお勧めします。スキーマを使用しない場合、表示する結果には、スコアやデータが視覚化されずに説明のみが含まれます。

   1. **[スケールタイプ]** で、ユースケースに合わせて **[数値]** または **[文字列]** を選択し、テキストボックスにスケールと説明の定義を入力します。出力スケールの定義に関するガイダンスとベストプラクティスについては、「[出力スキーマの指定 (評価スケール)](kb-evaluation-custom-metrics-prompt-formats.md#kb-evaluation-custom-metrics-prompt-formats-schema)」を参照してください。

   1. (オプション) 別のメトリクスを作成するには、**[カスタムメトリクスを追加]** を選択します。評価ジョブごとに最大 10 個のカスタムメトリクスを作成できます。

      カスタムメトリクスの作成が完了したら、ステップ 14 に進み、評価ジョブのデータセットを設定します。

1. コンソールでカスタムメトリクスを最初から作成するには、次の手順を実行します。

   1. **[メトリクスタイプを選択]** で、**[カスタム]** を選択します。

   1. **[手順]** で、カスタムメトリクスのプロンプトをテキストボックスに直接入力します。カスタムメトリクスプロンプトを作成する際のベストプラクティスと必須要素のリストについては、「[プロンプトの構成とベストプラクティス](kb-evaluation-custom-metrics-prompt-formats.md#kb-evaluation-custom-metrics-prompt-formats-create)」を参照してください。

   1. 評価ジョブで、ランク付けされたスコアを含む構造化出力を出力する場合は、**[出力スキーマを有効化 (推奨)]** にチェックを入れたままにしておきます。メトリクス設定には出力スキーマを含める必要はありませんが、スキーマを定義することをお勧めします。スキーマを使用しない場合、表示する結果には、スコアやデータが視覚化されずに説明のみが含まれます。

   1. **[スケールタイプ]** で、ユースケースに合わせて **[数値]** または **[文字列]** を選択し、テキストボックスにスケールと説明の定義を入力します。出力スケールの定義に関するガイダンスとベストプラクティスについては、「[出力スキーマの指定 (評価スケール)](kb-evaluation-custom-metrics-prompt-formats.md#kb-evaluation-custom-metrics-prompt-formats-schema)」を参照してください。

   1. (オプション) 別のメトリクスを作成するには、**[カスタムメトリクスを追加]** を選択します。評価ジョブごとに最大 10 個のカスタムメトリクスを作成できます。

      カスタムメトリクスの作成が完了したら、次のステップに進み、評価ジョブのデータセットを設定します。

1. 以下を実行して、データセットの入力場所と結果の出力場所を定義します。

   1. **[データセット]** ペインの **[プロンプトデータセットを選択]** で、プロンプトデータセットの Amazon S3 URI を入力するか、**[S3 を参照]** を選択してファイルを選択します。取得のみの評価ジョブに必要なプロンプトデータセット形式の定義を確認するには、「[取得のみの RAG 評価ジョブのプロンプトデータセットを作成する](knowledge-base-evaluation-prompt-retrieve.md)」を参照してください。

   1. **[評価結果]** で、Amazon Bedrock が結果を保存する Amazon S3 の場所を入力するか、**[S3 を参照]** を選択して場所を選択します。

1. **[Amazon Bedrock IAM ロール - アクセス許可]** で、**[新しいサービスロールを作成して使用]** を選択して Amazon Bedrock で評価ジョブ用の新しい IAM ロールを作成するか、**[既存のサービスロールを使用]** を選択して既存の IAM ロールを選択します。評価ジョブを作成して実行するために必要なアクセス許可のリストについては、「[前提条件](knowledge-base-evaluation-create.md#knowledge-base-evaluation-create-prereqs)」を参照してください。

1. (オプション) 独自の KMS キーを使用して評価データを暗号化するには、**KMSkey - *オプション*で**、**暗号化設定のカスタマイズ (詳細)** を確認し、 AWS KMS キーを選択します。デフォルトでは、Amazon Bedrock は評価ジョブデータを AWS所有の KMS キーで暗号化します。

1. **[作成]** を選択して、評価ジョブの作成を完了します。

------
#### [ AWS CLI ]

**Amazon Bedrock ナレッジベースの retrieve-and-generate 評価ジョブを作成する**
+ サンプル JSON ファイルを使用して次の AWS CLI コマンドを実行します。

  ```
  aws bedrock create-evaluation-job --cli-input-json file://{{my_eval_job.json}}
  ```

  ```
  {
      "jobName": "my_rag_eval",
      "roleArn": "arn:aws:iam::111122223333:role/service-role/Amazon-Bedrock-Custom-Metric",
      "applicationType": "RagEvaluation",
      "evaluationConfig": {
          "automated": {
              "datasetMetricConfigs": [
                  {
                      "taskType": "General",
                      "dataset": {
                          "name": "text_dataset",
                          "datasetLocation": {
                              "s3Uri": "s3://amzn-s3-demo-bucket/input/retrieval-only/retrieve-eval.jsonl"
                          }
                      },
                      "metricNames": [
                          "Builtin.ContextCoverage",
                          "Builtin.ContextRelevance",
                          "CustomMetric-Correctness-FloatRatingScale"
                      ]
                  }
              ],
              "customMetricConfig": {
                  "customMetrics": [
                      {
                          "customMetricDefinition": {
                              "name": "CustomMetric-Correctness-FloatRatingScale",
                              "instructions": "{{<Your complete custom metric prompt including at least one {{input variable}}>}}",
                              "ratingScale": [
                                  {
                                      "definition": "Not at all",
                                      "value": {
                                          "floatValue": 0
                                      }
                                  },
                                  {
                                      "definition": "Somewhat",
                                      "value": {
                                          "floatValue": 1
                                      }
                                  },
                                  {
                                      "definition": "Mostly",
                                      "value": {
                                          "floatValue": 2
                                      }
                                  }
                              ]
                          }
                      }
                  ],
                  "evaluatorModelConfig": {
                      "bedrockEvaluatorModels": [
                          {
                              "modelIdentifier": "anthropic.claude-3-haiku-20240307-v1:0"
                          }
                      ]
                  }
              },
              "evaluatorModelConfig": {
                  "bedrockEvaluatorModels": [
                      {
                          "modelIdentifier": "mistral.mistral-large-2402-v1:0"
                      }
                  ]
              }
          }
      },
      "inferenceConfig": {
          "ragConfigs": [
              {
                  "knowledgeBaseConfig": {
                      "retrieveAndGenerateConfig": {
                          "type": "KNOWLEDGE_BASE",
                          "knowledgeBaseConfiguration": {
                              "knowledgeBaseId": {{"<Your Knowledge Base ID>"}},
                              "modelArn": "mistral.mistral-large-2402-v1:0",
                              "generationConfiguration": {
                                  "promptTemplate": {
                                      "textPromptTemplate": "$search_results$ hello world template"
                                  }
                              },
                              "orchestrationConfiguration": {
                                  "queryTransformationConfiguration": {
                                      "type": "QUERY_DECOMPOSITION"
                                  }
                               }
                          }
                      }
                  }
              }
          ]
      },
      "outputDataConfig": {
          "s3Uri": "s3://amzn-s3-demo-bucket/output/"
      }
  }
  ```
**注記**  
サンプル JSON ファイルには 2 つの `evaluatorModelConfig` オブジェクトが含まれています。`customMetricConfig` オブジェクト内のインスタンスは、カスタムメトリクスで使用する評価者モデルを指定します。もう 1 つのインスタンスは、組み込みメトリクスに使用するモデルを指定します。これら 2 つのオブジェクトを正しく指定してください。

**独自の推論レスポンスデータを使用して retrieve-and-generate 評価ジョブを作成する**
+ サンプル JSON ファイルを使用して次の AWS CLI コマンドを実行します。

  ```
  aws bedrock create-evaluation-job --cli-input-json file://{{my_eval_job.json}}
  ```

  ```
  {
      "jobName": "my_rag_eval",
      "roleArn": "arn:aws:iam::{{111122223333}}:role/service-role/Amazon-Bedrock-Custom-Metric",
      "applicationType": "RagEvaluation",
      "evaluationConfig": {
          "automated": {
              "datasetMetricConfigs": [
                  {
                      "taskType": "General",
                      "dataset": {
                          "name": "text_dataset",
                          "datasetLocation": {
                              "s3Uri": "s3://amzn-s3-demo-bucket/input/retrieval-only/retrieve-eval.jsonl"
                          }
                      },
                      "metricNames": [
                          "Builtin.ContextCoverage",
                          "Builtin.ContextRelevance",
                          "CustomMetric-Correctness-FloatRatingScale"
                      ]
                  }
              ],
              "customMetricConfig": {
                  "customMetrics": [
                      {
                          "customMetricDefinition": {
                              "name": "CustomMetric-Correctness-FloatRatingScale",
                              "instructions": "{{<Your complete custom metric prompt including at least one {{input variable}}>}}",
                              "ratingScale": [
                                  {
                                      "definition": "Not at all",
                                      "value": {
                                          "floatValue": 0
                                      }
                                  },
                                  {
                                      "definition": "Somewhat",
                                      "value": {
                                          "floatValue": 1
                                      }
                                  },
                                  {
                                      "definition": "Mostly",
                                      "value": {
                                          "floatValue": 2
                                      }
                                  }
                              ]
                          }
                      }
                  ],
                  "evaluatorModelConfig": {
                      "bedrockEvaluatorModels": [
                          {
                              "modelIdentifier": "anthropic.claude-3-haiku-20240307-v1:0"
                          }
                      ]
                  }
              },
              "evaluatorModelConfig": {
                  "bedrockEvaluatorModels": [
                      {
                          "modelIdentifier": "mistral.mistral-large-2402-v1:0"
                      }
                  ]
              }
          }
      },
     "inferenceConfig": {
          "ragConfigs": [
              {
                  "precomputedRagSourceConfig": {
                      "retrieveAndGenerateSourceConfig": {
                          "ragSourceIdentifier": {{"my_rag_source"}}
                      }
                  }
              }
          ]
      },
      "outputDataConfig": {
          "s3Uri": "s3://amzn-s3-demo-bucket/output/"
      }
  }
  ```
**注記**  
サンプル JSON ファイルには 2 つの `evaluatorModelConfig` オブジェクトが含まれています。`customMetricConfig` オブジェクト内のインスタンスは、カスタムメトリクスで使用する評価者モデルを指定します。もう 1 つのインスタンスは、組み込みメトリクスに使用するモデルを指定します。これら 2 つのオブジェクトを正しく指定してください。

------