原文: https://mp.weixin.qq.com/s/VV29xpdOMEkbz4iXmD_szg
在上一篇 RAG评测完整指南:指标、测试和最佳实践 中,我们对RAG系统中各个模块的评估方法进行系统的阐述,并没有详细介绍每个模块设计的具体指标、指标的计算方法。从本篇开始,将深入RAG系统的各个模块(如检索、排序、生成),探讨各个模块有哪些评估指标,及这些指标的计算方法。
1. 核心要点
- RAG系统的检索环节本质是排序任务,目标是返回与用户查询高度相关的上下文片段列表,为生成环节提供精准支撑。
- 评估RAG排序质量时,需具备对形式的预测结果,作为真实标签的二元或分级相关性得分,并确定Top-K参数,即衡量前K个检索结果中,有多少是相关的。
- 预测指标:准确率(Precision at K)、召回率(Recall at K)评估
- 排序指标:NDCG、MRR、MAP等评估检索准确性与排序合理性
2. 什么是RAG系统的检索核心?
RAG系统的核心流程包含检索-生成两大环节,其中,检索环节本质是排序任务:系统根据用户的查询意图,从海量知识库中筛选、排序相关上下文片段,最终返回相关度Top-K的结果作为模型生成答案的依据。
想象这样的场景,当用户向RAG系统提问Transformer模型的核心创新点是什么?
RAG系统的执行流程大致如下:a) 首先,从知识库中检索相关文档片段,包括注意力机制原理、编码器-解码器结构说明、与传统模型的差异对比等内容;b) 通过排序算法进一步筛选最贴合查询的片段优先呈现给生成模块;c)最终输出准确、有依据的答案。这一过程中,检索排序质量直接决定了生成答案的准确性与可靠性,若检索排序失误导致无关上下文被优先选用,可能引发生成内容偏离主题或出现事实错误。
下面,我们聊聊RAG系统、推荐系统和检索系统的共同点、差异点。
三者的相同点
核心目标从大规模数据集中,根据特定需求,筛选出符合条件的信息,避免对全量数据进行遍历计算,本质是信息过滤与精准触达的工具。底层技术都需要构建数据索引(如倒排索引、向量索引),依赖相似度计算算法(如余弦相似度、BM25),且都需要处理海量非结构化 / 结构化数据的存储与快速查询,提升信息获取效率三者的差异点
维度RAG 系统推荐系统检索系统用户需求类型隐性 / 显性需求,需要 「理解 + 生成的深度加工」隐性需求为主,用户无明确查询显性需求为主,用户输入明确关键词 / 条件数据流向用户查询 → 检索知识 → 大模型生成回答用户行为 → 分析偏好 → 推送内容用户查询 → 匹配索引 → 返回结果输出形式自然语言文本(回答、摘要等)内容列表(商品、视频、文章)结果列表(文档、链接、数据条目)典型应用场景智能问答、知识库助手、企业客服机器人电商商品推荐、短视频推荐、新闻推荐搜索引擎(百度 / 谷歌)、文件检索、数据库查询本篇将涵盖RAG系统检索排序的核心指标,从基础的Precision、Recall到复杂的NDCG、MAP等。
3. 评估原则
在深入探讨具体指标前,需要定义好检索排序评估的基本原则,主要围绕输入数据、相关性定义、Top-K参数三大核心要素。
3.1 输入数据
这里介绍的都是需要真值的指标,因此,评估RAG检索/排序质量时,数据需要满足数据对的模式,具体定义如下:
- 预测结果:RAG检索/排序模块针对每个查询生成的上下文排序列表(含查询-上下文对及相关性得分/排名)。
- 真实标签:反映上下文与查询实际相关性的标注(二元标签或分级得分),用于验证排序结果的准确性。
RAG系统的排序评估数据集通常结构如下:
查询ID上下文ID预测值(相关性得分)查询1片段A0.92查询1片段B0.78查询1片段C0.15其中,上下文可为知识库中的文档片段、句子或段落,是RAG系统生成答案的直接依据。为判断检索排序优劣,需将预测结果与真实标签对比,示例如下:
查询ID上下文ID预测值(相关性得分)目标值(实际相关性)查询1片段A0.921(高度相关)查询1片段B0.780(无关)查询1片段C0.151(中等相关)3.2 什么是相关性?
相关性是RAG排序评估的核心,指上下文片段对回答用户查询的有用性,直接决定该片段是否能为生成模块提供有效支撑。相关性可分为两类:
- 二元相关性:仅判断相关或无关(如1=对用户查询有用,0=对用户查询没用),如上面表格中目标值(实际相关性)字段所示,基于简单的人工标注或规则判断(如上下文是否包含查询核心关键词)。
- 分级相关性:按有用程度划分等级(如1-5星),例如:5星=完全覆盖查询答案,4星=大部分支撑答案,3星=部分辅助信息,2星=微弱相关,1星=无关。
在RAG场景中,相关性标注需重点关注上下文是否能直接用于生成准确答案,即使某片段与查询主题相关,但缺乏关键信息(如仅提及概念名称却未解释核心),仍可能被标注为低相关性。
多数检索排序指标要求输入二元相关性数据,因此需对分级得分进行后处理,如将4-5星视为相关,1-3星视为无关;若存在标注偏差(如不同标注者标准不一致),可通过加权或归一化调整阈值。
3.3 Top-K参数
Top-K参数是RAG检索排序评估的关键截断点,在RAG系统实际应用中,选取前K个片段作为模型上下文生成内容。
- 选择依据:K值需匹配RAG系统的实际配置,如生成答案时最多使用5个上下文片段,则K=5;也可测试多个K值(如K=3、K=5、K=10),分析不同检索深度对排序质量的影响。
- 核心意义:用户(或生成模块)仅关注Top-K结果,对于低排名的上下文几乎无实际作用。例如,若RAG系统配置K=5,那么评估需重点关注前5个检索结果的相关性与排序合理性,无需过度关注第6名之后的片段。
你可能会有疑问,一定要设置这个K值?答案是未必。当知识库规模极小(如仅数十个片段),且需全量评估时可省略。但,RAG应用场景中的知识库数据一般都比较大,尤其是在企业级应用中,全量评估既无必要也无效率,因此Top-K截断是评估的必备环节。
RAG系统的排序指标可分为预测、排序两大类,分别对应准确性、合理性两大评估维度:
- 预测指标:评估准确性,是否能精准筛选出与查询相关的上下文。
- 排序指标:评估合理性,是否能将更相关的上下文排在更靠前的位置。
4. 检索排序指标详解
4.1 预测指标
4.1.1 精确率 (Precision@K)
定义:衡量前K个检索结果中,有多少是相关的。
核心逻辑:衡量RAG系统精准筛选的能力,Top-K结果中相关片段越多,生成答案的依据越可靠。示例,若K=5,Top-5检索结果中有3个相关片段,则Precision@5=3/5=60%。
局限性:受查询相关上下文总数影响,若某查询仅存在2个相关片段,即使K=10,最高准确率也仅20%,难以跨查询平均比较。
怎么理解这个问题,我们以推荐场景为例来解释。推荐系统给用户 A 推荐了 10 个项目,而用户 A 实际的相关项目(也就是用户真正感兴趣、符合需求的项目)只有 3 个,不管推荐算法如何迭代优化,精确率的上限就是30%。
为什么难以平均和比较?假设另一个用户 B,相关项目有 8 个。同样给他推荐 10 个项目,精确率上限能达到80%。对比用户 A 30%的精确率上限,两者的上限差异,不全是推荐算法或机制的好坏导致的,更多是因为两人本身的相关项目数量不同。
如果直接把这两个用户的精确率平均,结果并不能真实反映推荐系统的整体性能,因为这个平均值被用户的相关项目基数干扰了。
4.1.2 召回率(Recall@K)
定义:在前K个检索结果中,检索到的相关文档的数量占总相关文档数量的比例。
核心逻辑:衡量RAG系统全面覆盖的能力,即能否将所有相关上下文尽可能纳入Top-K结果。示例:某查询共有8个相关上下文,Top-10检索结果中包含5个,则Recall@10=5/8=62.5%。
局限性:与K值正相关,K值越大,召回率越高,需结合实际系统配置的K值进行评估,而非单纯追求高召回。
4.1.3 F分数(F-score)
定义:平衡Precision与Recall的综合指标,通过Beta参数调整二者权重。
当 \(\beta=1\)时,则会得到标准的 F1 分数,即精确率和召回率的调和平均值。
核心逻辑:Precision关注精准度,Recall关注覆盖度,F值可根据RAG场景需求调整优先级, \(\beta=1\)时为F1分数(二者同等重要), \(\beta>1\)时侧重Recall, \(\beta |
|
|
|
|
|
相关推荐
|
|
|