对于 RAG 系统,同时评估检索质量和检索生成质量非常重要。在上文中,我们已介绍了这类工作流相关的多个关键指标,现在还可以评估 RAG 系统的引用质量。在使用 Amazon Bedrock 知识库时,可以将引用信息包含其中。在本节中,我们将介绍如何通过 RAG 评估任务来获取两个关键的引用评估指标。如果自建 RAG 系统使用了引用源,也可以将引用信息以 BYOI 的格式添加到输入数据集中,并使用 Citation precision(引用准确度)和 Citation coverage(引用覆盖度)指标:
最佳方法是同时使用引用准确度和引用覆盖度这两个指标,以全面了解引用质量。

在 Amazon Bedrock 控制台创建 RAG 评估任务的操作步骤:
- 在 Amazon Bedrock 控制台导航栏的 Inference and Assessment(推理与评估)下,点击 Evaluations(评估)。
- 选择 RAG(检索增强生成)。
- 点击 Create(创建)。跳转至新的页面,进入 RAG 评估任务设置流程。

4. 在 Evaluation details(评估详情)下,输入评估任务名称和描述,并在 Evaluator model(评估器模型)下选择要使用的评估器模型。在这里,作为演示,我们选择 Claude 3 Haiku 作为评估器模型。也可以根据需要选择其他评估器模型。该模型将作为评判者,用于评估推理响应。

5. 在 Inference source(推理来源)下,选择 Bring your own inference responses(自己的推理响应)作为推理参考来源。
6. 在 Source name(来源名称)中输入名称,该名称必须与 Prompt 和推理响应数据集中 modelIdentifier 字段的值相同。例如,以下是我们的评估数据集中某个记录的一个代码片段:
{ "conversationTurns": [{ "prompt": { "content": [{ "text": "What is Amazon's SEC file number?" }] }, "referenceResponses": [{ "content": [{ "text": "Amazon's SEC file number is 000-22513." }] }], "output": { "text": "Amazon's SEC file number is 000-22513.", "modelIdentifier": "third-party-model", "knowledgeBaseIdentifier": "third-party-RAG", "retrievedPassages": { "retrievalResults": [{ "content": { "text": "Commission File No. 000-22513" } }, { "content": { "text": "AMAZON.COM, INC. (Exact name of registrant as specified in its charter)" } }] }, "citations": [{ "generatedResponsePart": { "textResponsePart": { "span": { "start": 0, "end": 11 }, "text": "Amazon's SEC" } }, "retrievedReferences": [{ "content": { "text": "UNITED STATESSECURITIES AND EXCHANGE COMMISSION" } }] }, { "generatedResponsePart": { "textResponsePart": { "span": { "start": 12, "end": 22 }, "text": "file number" } }, "retrievedReferences": [{ "content": { "text": "Commission File No. 000-22513" } }] }, { "generatedResponsePart": { "textResponsePart": { "span": { "start": 23, "end": 33 }, "text": "is 000-22513" } }, "retrievedReferences": [{ "content": { "text": "Commission File No. 000-22513" } }] }] } }]
}
因此,引用源名称为 third-party-RAG。

7. 在 Metrics(指标)下,选择 Citation precision(引用准确度)和 Citation coverage(引用覆盖度)。还可以选择其他指标。

8. 在 Dataset and evaluation results S3 location(数据集和评估结果的 S3 位置)下,点击 Browse S3(浏览 S3),输入评估输入文件的 S3 URI 和输出文件的 S3 URI。
9. 在 Amazon Bedrock IAM role – Permissions(Amazon Bedrock 的 IAM 角色 – 权限)下,新建服务角色或使用已有角色。
10. 点击 Create(创建)。

如果在指定 S3 URI 时遇到报错,例如“Your S3 bucket does not have the required CORS settings”(你的 S3 存储桶缺少必要的 CORS 设置),那么需要进入保存数据的存储桶编辑跨域资源共享 (CORS) 设置。有关更多信息,请参阅 S3 存储桶所需的跨域资源共享 (CORS) 权限。

可以监控任务状态。任务运行时,状态为 In progress(进行中)。

11. 当任务状态变为 Completed(已完成)后,点击任务链接查看具体结果。

结果中包含 Metric summary(指标汇总)。从下图展示的示例结果中可以看到,本示例的引用准确度和引用覆盖度都很高。

还可以设置指标标准来确保 RAG 系统的表现达到要求,并查看每个指标下的对话示例。