在大型语言模型(LLM)时代,RAG 或检索增强生成是突出的 AI 框架,例如 ChatGPT。 它通过整合外部知识提升这些模型的能力,确保更准确和更及时的响应。 标准的 RAG 系统包括一个 LLM,一个类似 Milvus 的向量数据库,以及一些提示作为代码。
随着越来越多的开发人员和企业采用 RAG 构建 GenAI 应用程序,评估它们的有效性变得越来越重要。 在另一篇文章中,我们评估了使用 OpenAI 助手和 Milvus 向量数据库构建的两种不同 RAG 系统的性能, 这些系统为评估 RAG 系统提供了一些启示。
本文将深入探讨评估 RAG 应用程序所使用的方法。我们还将介绍一些强大的评估工具, 并突出标准的度量标准。
RAG 评估指标
评估 RAG 应用并不仅仅是简单地比较几个例子。 关键在于使用令人信服、定量且可复现的指标来评估这些应用。
在这个过程中,我们将介绍三类指标:
- 基于真相的指标
- 无基于真相的指标
- 基于 LLM 响应的指标
基于真相(ground truth)的指标
真相指的是数据集中对应用户查询的知名答案或知识文档块。 当真相是答案时,我们可以直接将真相与 RAG 响应进行比较, 使用答案语义相似性和答案正确性等指标,促进端到端的测量。
以下是根据正确性评估答案的示例。
真相(ground truth):爱因斯坦于 1879 年在德国出生。 高答案正确性(high answer correctness):1879年,爱因斯坦在德国出生。 低答案正确性(low answer correctness):在西班牙,爱因斯坦于 1879 年出生。
如果真相是来自知识文档的块,我们可以使用传统指标, 如精确匹配(EM)、Rouge-L 和 F1,评估文档块与检索上下文之间的相关性。 本质上,我们正在评估 RAG 应用的检索效果。
- 如何为您自己的数据集生成基本真相。
我们现在已经确定了使用带有基本真相的数据集来评估 RAG 应用程序的重要性。 然而,如果您想使用未标记基本真相的私有数据集来评估 RAG 应用程序该怎么办呢? 如何为您的数据集生成所需的基本真相?
最简单的方法是要求像 ChatGPT 这样的 LLM 根据您的专有数据集生成示例问题和答案。 像 Ragas 和 LlamaIndex 这样的工具也提供了根据您的知识文档定制生成测试数据的方法。
这些生成的测试数据集包括问题、上下文和相应答案,促进了定量评估,而无需依赖无关的外部基准数据集。 这种方法赋予用户使用其独特数据来评估 RAG 系统的能力,确保进行更加定制和有意义的评估过程。