创建仅限检索 RAG 评测作业; - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建仅限检索 RAG 评测作业;

您可以使用 AWS 管理控制台、AWS CLI 或支持的 AWS SDK 创建 RAG 评测作业。

此类作业需要对评测器模型的访问权限。有关支持的评测器模型的列表,请参阅支持的模型

要按照以下说明操作来创建作业,您还需要一个提示数据集。如果尚未创建提示数据集,请参阅在 Amazon Bedrock 中创建用于 RAG 评测的提示数据集

Console
  1. 打开 Amazon Bedrock 控制台

  2. 在左侧窗格中的推理和评测下,选择评测

  3. RAG 评测窗格中,选择创建

  4. 通过执行以下操作来输入您的 RAG 评测详细信息:

    1. 评测详细信息窗格中的评测名称下,输入评测作业的名称。您选择的名称在您的 AWS 区域内必须是唯一的。

    2. (可选)在描述 - 可选下,输入评测作业的描述。

    3. 评测器模型下,选择选择模型,然后选择要执行评测的评测器模型。

  5. 输入评测作业的推理来源。借助 Amazon Bedrock RAG 评测,您既可以评测 Amazon Bedrock 知识库的性能,又可以通过在提示数据集内提供自己的推理响应数据来评测其他 RAG 来源的性能。要选择 Amazon Bedrock 知识库,请执行以下操作:

    1. 推理来源窗格中的选择来源下,选择 Bedrock 知识库

    2. 选择知识库下,使用下拉列表选择知识库。

  6. 要自带推理回复数据,请执行以下操作:

    1. 推理来源窗格中的选择来源下,选择自带推理回复

    2. 对于来源名称,输入用于创建响应数据的 RAG 来源的名称。您输入的名称必须与提示数据集内的 knowledgeBaseIdentifier 参数相匹配。

  7. 推理来源窗格中的评测类型下,选择仅限检索

  8. 通过在指标窗格中选择至少一个指标,选择您希望评测器模型使用的内置指标。

  9. 通过执行以下操作来定义数据集和结果的输入位置和输出位置:

    1. 数据集窗格中的选择提示数据集下,输入提示数据集的 Amazon S3 URI,或者选择浏览 S3 并选择您的文件。要查看“仅检索”评测作业所需的提示数据集格式的定义,请参阅创建用于仅限检索 RAG 评测作业的提示数据集

    2. 评估结果下,输入 Amazon Bedrock 的 Amazon S3 位置以保存您的结果,或者选择浏览 S3 以选择一个位置。

  10. Amazon Bedrock IAM 角色 - 权限下,选择创建和使用新的服务角色,让 Amazon Bedrock 为评测作业创建新的 IAM 角色,或者选择使用现有服务角色来选取现有 IAM 角色。有关创建和运行评测作业所需权限的列表,请参阅先决条件

  11. (可选)要使用您自己的 KMS 密钥来加密您的评测数据,请在 KMSkey - 可选下,选中自定义加密设置(高级),然后选择您的 AWS KMS 密钥。默认情况下,Amazon Bedrock 使用 AWS 拥有的 KMS 密钥对您的评测作业数据进行加密。

  12. 选择创建以完成评测作业的创建。

AWS CLI
为 Amazon Bedrock 知识库创建“仅检索”评测作业
  • 使用示例 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/retrieval-only/retrieve-eval-byoir.jsonl" } }, "metricNames": [ "Builtin.ContextCoverage", "Builtin.ContextRelevance" ] } ], "evaluatorModelConfig": { "bedrockEvaluatorModels": [ { "modelIdentifier": "us.meta.llama3-1-70b-instruct-v1:0" } ] } } }, "inferenceConfig": { "ragConfigs": [ { "knowledgeBaseConfig": { "retrieveConfig": { "knowledgeBaseId": "your-knowledge-base-id", "knowledgeBaseRetrievalConfiguration": { "vectorSearchConfiguration": { "numberOfResults": 3 } } } } } ] }, "outputDataConfig": { "s3Uri": "s3://amzn-s3-demo-bucket/output/" } }
使用您自己的推理响应数据执行“仅检索”评测作业
  • 使用示例 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/retrieval-only/retrieve-eval-byoir.jsonl" } }, "metricNames": [ "Builtin.ContextCoverage", "Builtin.ContextRelevance" ] } ], "evaluatorModelConfig": { "bedrockEvaluatorModels": [ { "modelIdentifier": "us.meta.llama3-1-70b-instruct-v1:0" } ] } } }, "inferenceConfig": { "ragConfigs": [ { "precomputedRagSourceConfig": { "retrieveSourceConfig": { "ragSourceIdentifier": "my_rag_source" } } } ] }, "outputDataConfig": { "s3Uri": "s3://amzn-s3-demo-bucket/output/" } }
SDK for Python

以下 python 示例演示了如何使用 适用于 Python (Boto3) 的 AWS SDK 为 Amazon Bedrock 知识库创建仅限检索的作业。要详细了解如何使用 Boto3 创建评测作业,请参阅 Boto3 文档中的 create_evaluation_job

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/service-role/Amazon-Bedrock-IAM-RoleAmazon-Bedrock-IAM-Role", applicationType="RagEvaluation", inferenceConfig={ "ragConfigs": [ { "knowledgeBaseConfig": { "retrieveConfig": { "knowledgeBaseId": "your-knowledge-base-id", "knowledgeBaseRetrievalConfiguration": { "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.ContextCoverage" ] } ], "evaluatorModelConfig": { "bedrockEvaluatorModels": [{ "modelIdentifier": "meta.llama3-1-70b-instruct-v1:0" }] } } } ) print(job_request)