本文聚焦于RAG工程的测评方法与实践。
本文属于RAG系列教程,上一篇系统梳理了RAG的基础知识,尚未阅读的朋友可以查阅参考。本篇将深入探讨如何对RAG工程进行有效评测。以下是快速导航目录。
一、RAG评估方法
二、RAG 的关键指标与能力维度
三、RAG的主流评估框架
一、RAG评估方法
在评估RAG系统时,业界主要存在两种主流思路:其一是“独立评估”,即将检索与生成两大模块解耦、分别评测;其二是“端到端评估”,直接着眼于系统最终输出的整体效果。究竟哪种方法更优?这完全取决于您的具体业务场景与优化目标。
1. 独立评估
所谓独立评估,是将RAG系统拆解为检索与生成两个核心部分,并各自进行独立的评分与衡量。
1)检索模块
评估检索模块的性能,核心是借鉴信息检索领域的一系列经典评估指标。这些指标与推荐系统的评估标准有着深厚的渊源:
命中率 (Hit Rate):最为直观的指标,衡量检索结果中包含用户所需信息内容的比例。
平均排名倒数 (MRR):该指标更关注“首次命中”的质量。命中排位越靠前,得分越高。若排名第一,得1分;第二,得0.5分;第三,得1/3分,以此类推,最终对所有查询得分取均值。换言之,该指标非常青睐那些能直接、快速输出正确答案的检索系统。
归一化折扣累积增益 (NDCG):这是评估检索模块的关键指标。它并非仅关注“是否命中”或“第几次命中”,而是对所有相关结果按其在排名列表中的位置进行加权评分,位置越靠前,赋予的权重越大。尽管听起来复杂,但计算逻辑相对清晰:先计算DCG,再进行归一化处理,其目的是让不同查询的得分能够进行有效的横向比较。
2)生成模块
对生成模块的评估,主要聚焦于其产出的回答质量。这里需要区分两种情形:
若手头没有标准答案,那么评估维度主要涵盖答案的准确性、相关性及无害性。这三个指标带有较强的主观性,通常依赖人工标注或借助大型语言模型进行打分。
若拥有已知的参考答案,评估过程则更为直接,通常计算准确率(Accuracy)与精确匹配(EM)。
准确率的概念直观易懂,无需赘言。而精确匹配(EM)则要求更为严苛——生成的答案必须与参考标准完全一致方可计为正确,哪怕只差一个字也不符合要求。计算公式同样简洁:完全一致得1分,否则得0分。
2. 端到端评估
端到端评估,是将检索与生成环节视为一个整体进行综合评测。它不关心具体哪个环节发生问题,仅关注最终交付给用户的回答质量。考察的核心依然是答案与用户输入查询之间的相关性、答案本身的准确性,以及是否存在生成不合规或有害内容的风险。这种评估方式在实际产品落地中应用更为广泛,因为它直接关联并反映最终的用户体验。
二、RAG 的关键指标与能力维度
概括而言,评估一个RAG系统,离不开三个核心指标:答案的准确性、答案的相关性以及上下文相关性。后两者相对容易理解,而准确性则更为硬核——回答是否正确,直接决定了用户对系统的信任度。
再看关键能力,这一维度更多地侧重于RAG系统在特定复杂场景下的应对表现。主要涵盖四个方面:抗噪声能力(在检索到大量干扰信息时,是否能依然给出高质量回答)、拒绝无效回答的能力(面对不确定的问题时,具备说不的能力,避免虚构信息)、信息综合能力(能否从片段化的信息中整合出完整且连贯的答案),以及反事实稳健性(在面对含有错误前提的提问时,能否保持清晰的判断力)。
三、RAG的主流评估框架
在实际操作中,完全依赖人工进行RAG评估成本高昂且效率低下。目前业界流行的自动化评估框架,首推RAGAS与ARES。
1. RAGAS
RAGAS依托于一套精心设计的提示词机制,能够全自动地量化评估答案的准确性、相关性与上下文相关性。该框架无需依赖人工标注,实现了全流程自动化,因此成为了众多开发团队的优选方案。
算法原理:
1) 答案忠实度评估:首先,借助大型语言模型将生成的答案拆解为若干陈述句,随后逐一核对每个陈述是否能在原始上下文资料中找到明确的证据支撑。最终,用被支持的陈述数量除以总的陈述数量,从而得出一个百分比形式的“忠实度得分”。该分数越高,表明答案越忠实地基于给定的检索结果,而非模型凭空杜撰。
2) 答案相关性评估:这一步骤更为巧妙——利用大型语言模型根据生成的答案反向推理“这个答案可能是在回答什么问题”。如果反向推理出的这个问题与用户原始提问高度相似,则说明答案的相关性强;反之,则相关性较弱。最终的得分是对所有生成问题与原始问题相似度取平均值。
3) 上下文相关性评估:直接从检索获得的上下文信息中,筛选出与用户问题直接相关的句子。随后,计算这些相关句子占上下文所有句子的比例。该比例越高,说明检索出来的上下文质量越靠谱,内容聚焦,而非东拉西扯。
2. ARES
ARES是继RAGAS之后另一个值得重点关注的框架。其目标同样是自动化评估RAG系统在上下文相关性、答案忠实度及答案相关性这三个维度的表现,但在技术方法上进行了重要升级。
ARES最显著的特点是“少样本高效性”,它巧妙结合少量的手动标注数据与大量的合成数据进行评估,并引入了预测驱动推理(PDR)技术,能够提供统计置信区间,从而使最终的评估结果更具说服力与科学性。
算法原理:
1) 生成合成数据集:在初始阶段,利用大型语言模型从目标语料库的文档中自动生成合成问题及其对应的答案。为了后续训练评估模型(LLM裁判),还需将这些合成样本人为划分为“正例”与“负例”两种类型。
2) 训练LLM裁判:接下来,利用这些合成数据对轻量级的语言模型进行微调,将其训练成能够独立判断上下文相关性、答案忠实度及答案相关性的“打分裁判”。值得一提的是,这里选用轻量级模型的目的在于有效控制计算成本。
3) 基于置信区间对RAG系统进行排名:最后,使用训练完毕的裁判模型为待评测的RAG系统进行打分。同时,结合人工标注的验证集,运用PPI方法生成置信区间,从而使得最终给出的评估结果既具科学性,又十分可信。
