RAG 系统化评测
本文从 RAG 的检索与增强生成两个阶段和 RAG TRIAD 出发,介绍了一套完整 RAG 系统评测的指标体系。通过熟悉这些指标概念,借助合适的评估框架和工具,可以快速进行 RAG 系统监控和定量评估,从而显著提升 RAG 系统的性能,为用户提供更准确、更可靠的服务。
RAG 评估分析
RAG 从模型外部获取知识来增强 LLM 生成内容的准确性和可靠性。那么应该如何对 RAG 系统带来的增强效果与影响程 度呢?
RAG 系统的核心就是检索(Retrieval)与增强生产(Augmentation & Generation)。在检索阶段,RAG 找到一组与用户查询或任务(Query)最相关的知识;在增强生成阶段,RAG 将检索到的知识作为上下文(Context)与 Query 结合输入到 LLM,最终生成响应结果(Answer)。总的来说,谈论对 RAG 系统性能的评估,就是对这两个阶段的 Query、Context、Answer 这三个对象(TruLens 将之归纳为 RAG 三元组,简称 RAG TRIAD
)的质量评估。
RAG TRIAD 准确描述了 RAG 系统中三个核心维度及三者之间的关系,同时也提供了一个全面的评估视角。RAG TRAID 将 Query 到 Context 的转换性能归为上下文相关性(Context Relevance),将 Context 到 Response 的转换性能归为事实一致性(Faithfulness),将 Response 到 Query 的相关性能归为答案相关性(Answer Relevance)。
上下文相关性
(Context Relevance
):评估的是检索的质量,通过检索到的内容是否与用户查询或任务足够相关来衡量。事实一致性
(Faithfulness
):评估的是增强生成的质量,通过生成内容是否准确无误,是否真实地基于检索到的内容来衡量。答案相关性
(Answer Relevance
):评估的是增强生成的质量,通过生成内容是否对用户查询提供了有用的信息来衡量。
上下文相关性
上下文相关性描述的是检索的性能,主 要关注于检索到的知识片段与用户查询的相关性。上下文相关性的评估指标有精确度、召回率、平均倒数排名(MRR)、平均准确率(MAP)等。
精确度(Accuracy)
精确度衡量的是检索到的相关的知识片段数量与检索到的总知识片段数量之比。例如检索到了 10 个知识片段,其中 7 个是相关的,则精确度为 0.7。高精确度意味着系统返回的知识大多数是用户所需的。
当无关知识可能带来负面影响,比如在医学信息检索系统中,无关信息可能导致错误的输出,这时的精确度尤为重要。
召回率(Recall)
召回率衡量的是检索到的相关的知识片段数量与知识库中相关知识片段总数量之比。高召回率意味着知识库中相关的知识片段大多数都被检索到了。
当不完整的知识可能带来负面影响,比如在法律信息检索系统中,未能检索到完整信息可能导致输掉一场官司,这时的召回率至关重要。
精确度 vs. 召回率
所上所说,在无关知识可能引入负面影响时,保持系统的精确度很重要,在知识不完整可能导致负面影响时,召回率很重要。精确度和召回率可能是无法两者同时达到最优的,因此需要根据实际应用场景来决定应该优先考虑哪个指标。也可以通过二者的调和平均数(F1 分数
)来把握其中的平衡。
平均倒数排名(MRR)
MRR 考虑的是第一个相关文档的排名位置,它衡量的是系统多快能够检索到第一个相关文档。
其中 Q 是检索的次数, 是每次检索中第一相关知识所处的排名。
当只有最相关的知识片段是主要关注对象,比如客服支持问答系统,客户需要第一时间得到最正确的答案,此时的 MRR 是很重要的。
平均准确率(MAP)
MAP 综合考虑了检索的精确度和检索内容的顺序,通过检索到的相关知识的加权得分(排名的倒数)的平均值来衡量。