检索增强生成(Retrieval-Augmented Generation,RAG)技术近年来备受关注。RAG 通过整合信息检索技术,有效提升了生成式语言模型的性能,减少了模型产生事实性错误(幻觉)的概率,使得生成内容更加可靠、准确。随着 RAG 技术的广泛应用,如何科学、全面地评估 RAG 系统的性能成为了研究和实践中的重要课题。本文将深入探讨 RAG 评测相关的关键指标、评测方法以及常用框架,为理解和应用 RAG 技术提供有力支持。
一、RAG 技术概述
RAG 技术主要由检索(Retrieval)和生成(Generation)两个核心组件构成。检索组件负责对外部知识源进行索引和搜索,根据用户输入的查询,从海量信息中筛选出相关内容;生成组件则利用检索到的数据,结合大语言模型(LLMs)生成连贯且符合上下文语境的回复。这种结合方式弥补了传统语言模型在知识储备和事实准确性方面的不足,让模型在生成内容时能够参考可靠的信息源,进而提升了整体性能。例如,当用户询问关于历史事件的具体细节时,RAG 系统可以从历史文献数据库中检索相关资料,并基于这些资料生成准确的回答,避免了模型凭空臆造信息的情况。
二、RAG 评测指标体系
RAG 系统的评测可分为对检索组件和生成组件的评测,这两个部分相辅相成,共同决定了 RAG 系统的整体质量。
(一)检索组件评测指标
- 上下文精确率(Context precision):上下文精确率衡量的是在检索到的上下文中,相关的真实上下文(ground truth context)的排序情况。当用户在搜索引擎上进行查询时,通常希望在搜索结果的前几条链接中就能找到所需信息,上下文精确率正是模拟了这种用户期望。它的计算依赖于检索到的上下文和真实上下文,通过计算 Precision at K(在检索结果的前 K 个中相关结果的比例)来确定上下文精确率。例如,假设系统检索出 5 个文本片段(chunk/context),其中 3 个与真实情况相符,按照公式计算 Precision at K,再根据这些计算结果确定上下文精确率。在实际应用场景中,比如用户询问 “水在海平面的沸点是多少以及它的化学式是什么”,高上下文精确率的检索结果可能直接包含沸点和化学式的准确信息,如 “Water, with the chemical formula H₂O, boils at 100°C at sea level. It is a vital substance for all known forms of life, covering about 71% of Earth’s surface.”;而低上下文精确率的检索结果可能部分信息缺失或不相关,如 “Water is essential for life and covers a significant portion of Earth’s surface. It has a unique ability to dissolve many substances, making it a versatile solvent.”,通过计算可以量化这种精确程度的差异。
- 上下文召回率(Context recall):上下文召回率用于评估检索到的上下文对真实信息的覆盖程度,即检索到的上下文包含了多少真实情况中的事实和主张。它将真实情况分解为一系列的陈述(claims),然后逐一检查这些陈述是否存在于检索到的上下文中,取值范围从 0 到 1,数值越高表示检索到的上下文对真实信息的覆盖越全面。继续以上述水的问题为例,将真实情况 “水在海平面的沸点是 100°C,它的化学式是 H₂O” 分解为两个陈述,对低上下文召回率的检索结果进行分析,若只包含化学式信息,那么上下文召回率为 1/2 = 0.5,说明只覆盖了一半的真实信息。
(二)生成组件评测指标
- 忠实度(Faithfulness):忠实度衡量的是大语言模型生成的回答与提供的上下文之间的契合程度,即回答中的内容是否能够从给定的上下文中推导出来。计算时,先提取大语言模型回答中的所有主张,然后检查每个主张能否从检索到的上下文中推断得出,取值范围同样为 0 到 1,数值越高表示回答越忠实于上下文。例如,对于 “滑铁卢战役的结果是什么” 这个问题,给定上下文明确指出滑铁卢战役以第七联盟的决定性胜利告终,拿破仑波拿巴最终战败。高忠实度的回答会与上下文一致,如 “The Battle of Waterloo resulted in a decisive victory for the Seventh Coalition on 18 June 1815, marking the final defeat of Napoleon Bonaparte.”;而低忠实度的回答如 “The Battle of Waterloo resulted in a decisive victory for the French forces on 18 June 1815, ending the Napoleonic Wars.”,其中 “法国军队获胜” 这一主张与上下文不符,通过计算其忠实度为 1/2 = 0.5,反映出该回答的不忠实程度。
- 回答相关性(Answer relevance):回答相关性用于评估生成的回答与用户查询的匹配程度,即回答是否针对用户的问题,是否完整且不存在冗余信息。计算时,基于生成的回答生成 N 个相似问题(通常 N 在 3 到 4 之间),通过余弦相似度或点积向量相似度算子比较这些生成问题与原始问题的相似性,从而确定回答相关性。以 “水的化学式是什么,它的主要成分是什么” 这个问题为例,低相关性的回答如 “Water is essential for life and is found in oceans, rivers, and lakes.”,通过生成相关问题并计算与原始问题的相似度,若得到的余弦相似度分数如 tensor ([0.5408, 0.5868, 0.4486]),取平均值后得到回答相关性为 0.52,说明该回答与问题的相关性较低;而高相关性的回答如 “The chemical formula for water is H₂O, and its primary components are hydrogen and oxygen.” 则能更好地匹配用户问题,相关性得分会更高。
三、RAG 评测方法
在实际评测 RAG 系统时,需要综合运用多种方法,结合不同的指标进行全面考量。首先,要构建高质量的真实数据集(ground truth dataset),这是评估的基础。真实数据集应包含丰富、准确的信息,涵盖各种类型的查询和对应的正确答案及相关上下文,以确保评估结果的可靠性。
对于检索组件的评估,可以采用人工标注和自动化评估相结合的方式。人工标注能够直观地判断检索到的上下文与真实情况的相关性和准确性,但效率较低;自动化评估则可以利用预先设定的算法和指标,快速计算上下文精确率和召回率等指标,提高评估效率。例如,使用 Python 编写脚本,根据给定的真实数据集和检索结果,自动计算各项指标的值。
在评估生成组件时,除了计算忠实度和回答相关性等指标外,还可以引入人工评估环节。因为有些语言表达的细微差别和语义理解可能无法完全通过自动化指标来衡量,人工评估可以从语义完整性、逻辑连贯性等多个维度对生成的回答进行综合评价。此外,还可以通过众包平台收集多个评估者的意见,以减少个体主观因素的影响,提高评估的准确性和客观性。
四、常用 RAG 评测框架
(一)DeepEval
DeepEval 是一个功能全面的评估框架,适用于 RAG 和模型微调等多种场景,支持超过 14 种评估指标。它的模块化设计使得其易于集成和定制,可以根据不同的评估需求选择合适的模块进行组合。同时,DeepEval 支持与 Pytest 集成,能够将评估过程视为单元测试进行管理,方便在开发过程中进行持续评估。此外,它还提供了一个托管平台,用于实时评估,便于用户随时监控 RAG 系统的性能变化。
(二)RAGAs
RAGAs 专门为评估 RAG 管道而设计,具有简洁易用的特点。与 DeepEval 相比,它虽然在一些高级功能和灵活性方面有所欠缺,但对于初学者和对评估流程要求不复杂的用户来说,RAGAs 能够快速搭建评估环境,完成基本的 RAG 系统评估任务,帮助用户快速了解 RAG 系统的性能表现。
(三)MLFlow LLM Evaluate
MLFlow LLM Evaluate 是一个功能多样的框架,不仅支持 RAG 评估,还能处理其他大语言模型的评估任务。其直观的开发者体验和模块化设计,使其能够轻松融入现有的评估流程中。对于已经在使用 MLFlow 进行机器学习项目管理的用户来说,使用 MLFlow LLM Evaluate 进行 RAG 评估可以实现无缝衔接,降低学习成本和集成难度。
(四)Deepchecks
Deepchecks 虽然并非专门针对 RAG 评估,但它为大语言模型提供了强大的评估能力。与其他框架不同的是,Deepchecks 更侧重于评估大语言模型本身的性能,如模型的稳定性、泛化能力等。它具有出色的可视化和仪表盘功能,能够将评估结果以直观的方式呈现给用户,帮助用户快速理解模型的优势和不足,进而有针对性地进行优化。
(五)Arize AI Phoenix
Arize AI Phoenix 虽然对 RAG 的针对性不强,但它为人工智能模型提供了全面的评估和监测解决方案。在评估大语言模型性能时,它能够从多个维度进行分析,包括模型的准确性、召回率、F1 值等常见指标,同时还能监测模型在不同时间段和不同数据分布下的性能变化,为用户提供全面的模型性能洞察。
RAG 评测是确保 RAG 系统性能和质量的关键环节,通过对检索组件和生成组件的多指标评估,结合科学的评估方法和实用的评估框架,能够全面、准确地了解 RAG 系统的优势与不足,为进一步优化和改进提供依据。随着 RAG 技术在更多领域的应用,如智能客服、文档生成、智能问答系统等,对评估的要求也会越来越高。