

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

# retrieve-and-generate RAG 評価ジョブの作成
<a name="knowledge-base-evaluation-create-randg"></a>

RAG 評価ジョブは AWS マネジメントコンソール、、 AWS CLI、またはサポートされている AWS SDK を使用して作成できます。

このタイプのジョブでは、評価者モデルへのアクセス権限が必要です。サポートされている評価者モデルのリストについては、「[サポートされているモデル](evaluation-kb.md#evaluation-kb-supported)」を参照してください。

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

------
#### [ 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. **[データセット]** ペインの **[プロンプトデータセットを選択]** で、プロンプトデータセットの 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-IAM-Role-Amazon-Bedrock-IAM-Role-20250218T063974"}},
      "applicationType": "RagEvaluation",
      "evaluationConfig": {
          "automated": {
              "datasetMetricConfigs": [
                  {
                      "taskType": "General",
                      "dataset": {
                          "name": "text_dataset",
                          "datasetLocation": {
                              "s3Uri": "s3://amzn-s3-demo-bucket/input/retrieve-and-generate/rng-eval-byoir.jsonl"
                          }
                      },
                      "metricNames": [
                          "Builtin.Correctness",
                          "Builtin.Completeness",
                          "Builtin.Helpfulness",
                          "Builtin.LogicalCoherence",
                          "Builtin.Faithfulness",
                          "Builtin.Harmfulness",
                          "Builtin.Stereotyping",
                          "Builtin.Refusal",
                          "Builtin.CitationCoverage",
                          "Builtin.CitationPrecision"
                      ]
                  }
              ],
              "evaluatorModelConfig": {
                  "bedrockEvaluatorModels": [
                      {
                          "modelIdentifier": "us.meta.llama3-1-70b-instruct-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/"
      }
  }
  ```

**独自の推論レスポンスデータを使用して 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-IAM-Role-Amazon-Bedrock-IAM-Role-20250218T063974"}},
      "applicationType": "RagEvaluation",
      "evaluationConfig": {
          "automated": {
              "datasetMetricConfigs": [
                  {
                      "taskType": "General",
                      "dataset": {
                          "name": "text_dataset",
                          "datasetLocation": {
                              "s3Uri": "s3://amzn-s3-demo-bucket/input/retrieve-and-generate/rng-eval-byoir.jsonl"
                          }
                      },
                      "metricNames": [
                          "Builtin.Correctness",
                          "Builtin.Completeness",
                          "Builtin.Helpfulness",
                          "Builtin.LogicalCoherence",
                          "Builtin.Faithfulness",
                          "Builtin.Harmfulness",
                          "Builtin.Stereotyping",
                          "Builtin.Refusal",
                          "Builtin.CitationCoverage",
                          "Builtin.CitationPrecision"
                      ]
                  }
              ],
              "evaluatorModelConfig": {
                  "bedrockEvaluatorModels": [
                      {
                          "modelIdentifier": "us.meta.llama3-1-70b-instruct-v1:0"
                      }
                  ]
              }
          }
      },
      "inferenceConfig": {
          "ragConfigs": [
              {
                  "precomputedRagSourceConfig": {
                      "retrieveAndGenerateSourceConfig": {
                          "ragSourceIdentifier": {{"my_rag_source"}}
                      }
                  }
              }
          ]
      },
      "outputDataConfig": {
          "s3Uri": "s3://amzn-s3-demo-bucket/output/"
      }
  }
  ```

------
#### [ SDK for Python ]

次の Python の例は、*取得および生成*の Boto3 API リクエストを行う方法を示しています。

```
import boto3
client = boto3.client('bedrock')

job_response = client.create_evaluation_job(
    jobName="my_evaluation_job",
    jobDescription="two different task types",
    roleArn="arn:aws:iam::111122223333:role/role-name",
    applicationType="RagEvaluation",
    inferenceConfig={
        "ragConfigs": [
            {
                "knowledgeBaseConfig": {
                    "retrieveAndGenerateConfig": {
                        "type": "KNOWLEDGE_BASE",
                        "knowledgeBaseConfiguration": {
                            "knowledgeBaseId": "73SPNQM4CI",
                            "modelArn": "anthropic.claude-3-sonnet-20240229-v1:0",
                            "generationConfiguration": {
                                "promptTemplate": {
                                    "textPromptTemplate": "$search_results$ hello world template"
                                }
                            },
                             "retrievalConfiguration": {
                                 "vectorSearchConfiguration": {
                                     "numberOfResults": 10,
                                     "overrideSearchType": "HYBRID"
                                }
                             }
                        }
                    }
                }
            }
        ]
    },
    outputDataConfig={
        "s3Uri":"s3://amzn-s3-demo-bucket-model-evaluations/outputs/"
    },
    evaluationConfig={
        "automated": {
            "datasetMetricConfigs": [
                {
                    "taskType": "Summarization",
                    "dataset": {
                        "name": "RagDataset",
                        "datasetLocation": {
                            "s3Uri": "s3://amzn-s3-demo-bucket-input-data/data_3_rng.jsonl"
                        }
                    },
                    "metricNames": [
                        "Builtin.Faithfulness"
                    ]
                }
            ],
            "evaluatorModelConfig":
                {
                    "bedrockEvaluatorModels": [{
                        "modelIdentifier": "meta.llama3-1-70b-instruct-v1:0"
                    }]
                }
        }
    }
)

print(job_response)
```

------