RAG 评测用于判断系统能否检索到回答所需的证据,并据此生成正确、完整且可核验的回答。评测应分别观察检索、生成和端到端表现,避免把表达流畅等同于事实正确。
为什么要分层评测
RAG 的错误可能来自不同环节:检索器没有找到必要证据,排序器把证据排在上下文之外,生成模型忽略或误读证据,或者引用没有支持对应结论。分层指标能帮助定位应当调整数据、切分、检索、排序、提示词还是生成模型。
一个常用的诊断思路是:
- 检索失败且回答错误:先检查语料覆盖、切分、索引和查询表达;
- 检索成功但回答错误:检查上下文组装、提示词和生成模型;
- 回答正确但引用错误:检查引用绑定与输出校验;
- 资料不足却仍然作答:检查可回答性判断和拒答策略。
评测集设计
评测集应覆盖真实查询分布和预期失败场景,包括单来源、多来源、专有名词、相近概念、父子关系、列表或数量、过期信息以及资料不足的问题。每道题至少标注:
- 是否可由当前语料回答;
- 必要来源或可接受来源;
- 答案必须包含的关键事实;
- 时间、版本和适用范围;
- 对拒答、引用和输出格式的要求。
回归比较需要固定语料快照、索引配置、题集、模型和提示词,并一次只改变一个主要变量。开发集可用于调参,保留集用于检查泛化,语料发生实质变化后应重新核对标签。
复杂问题与多源回答
只检查最终答案,可能掩盖拆解、路由和中间证据的错误。复杂知识问答还可以分层标注:
- 问题拆解完整率:必要子问题是否全部保留,是否改变原意或加入无关问题;
- 子问题覆盖率:每个子问题是否得到回答,未回答部分是否被明确指出;
- 多跳证据完整性:依赖链中的中间实体和必要事实是否都有证据;
- 来源路由准确率:是否选择了适合问题类型的知识库、结构化接口或外部来源;
- 来源适用性:版本、时间、地区、对象和权限范围是否与问题一致;
- 冲突处理正确率:是否发现不兼容来源,并避免把冲突结论合并成确定事实;
- 纠正检索有效性:重新检索是否取得新增必要证据,是否在预算内停止。
并列问题和多跳问题应分开评测。并列问题主要检查遗漏、重复和合并质量;多跳问题还要检查后一步是否真正依赖并正确使用前一步结果。只答对最终结果但缺少必要支持事实,不应自动视为完整通过。
HotpotQA同时提供跨文档问题和句子级支持事实,可用于理解最终答案与证据链的分离评测。MuSiQue通过组合相互依赖的单跳问题构造多跳数据,并包含不可回答的对照问题。业务评测集不必直接复制这些基准,但可以借鉴其子问题依赖、支持事实和不可回答样本设计。
多源用例还应为每道题标注可接受来源类型、必要来源、时间与版本约束,以及允许的冲突处理方式。若系统允许部分回答,评分时应分别记录已支持部分、遗漏部分和无依据扩展,不能只给一个总分。
检索指标
- Hit Rate@K:前 K 个结果中是否至少出现一个必要来源;
- Recall@K:前 K 个结果覆盖了多少必要来源;
- Precision@K:前 K 个结果中相关来源所占比例;
- MRR:第一个相关结果排名倒数的平均值,强调首个证据出现的位置;
- nDCG@K:在存在分级相关性时,同时衡量相关程度和排序位置。
检索标签可能不完整:未被人工标注的片段也可能有效。因此自动指标异常时,应抽查原始问题、命中片段和标签,而不是只调整分数。
生成、依据与拒答
端到端评测通常关注:
- 答案正确性与关键事实完整性;
- 回答是否忠实于已提供的上下文;
- 引用是否存在、可访问,并直接支持相邻结论;
- 必要结论是否都有来源覆盖;
- 资料不足时能否正确拒答,资料充分时是否错误拒答。
模型裁判可以扩大评测规模,但应通过人工样本校准其标准,并保留问题、答案、引用和裁判理由供复核。单一总分难以解释失败来源。引用的逐句支持、覆盖和展示方式见 RAG 引用与依据校验。
如何决定 Top-K
Top-K 表示检索阶段保留的前 K 个候选。K 应通过对照评测确定,而不是凭经验固定:在同一语料快照、索引、题集、模型和提示词下比较多个 K,同时记录必要来源召回、答案质量、引用支持、拒答表现、上下文 Token、模型成本以及 p50、p95 延迟。
实践中通常选择达到质量目标的最小 K。K 过小可能漏掉关键证据;K 过大会引入无关或冲突内容,增加上下文、成本和延迟,模型也未必能稳定利用更长上下文。
还应区分两种数量:
- 候选 K:初始检索交给重排器的候选数量;
- 上下文 K:重排、去重和预算裁剪后实际交给生成模型的数量。
两者可以分别调节。增大候选 K 有机会提升召回,而上下文 K 应受相关性和上下文预算约束。
动态 K
当问题复杂度差异较大时,可以动态决定保留数量:
- 根据相关性阈值过滤低分结果;
- 根据相邻候选的分数落差截断;
- 按问题类型为多跳问题保留更多候选;
- 按上下文 Token 预算进行去重和裁剪。
不同嵌入模型、索引和查询分布的分数尺度不一定一致,阈值必须在本系统的评测集上校准。检索结果可以为空;证据不足时应拒答、改写查询或进入受控的再次检索。
结构化问题
父词条、子词条、完整列表、精确数量和权限过滤等问题,应优先查询结构化元数据。向量 Top-K 只能返回最相似的有限结果,不能保证完整枚举,也不能代替确定性的树关系或聚合查询。
线上监控
上线后应持续观察错误率、拒答率、检索为空比例、延迟、上下文用量、模型成本和索引新鲜度,并按查询类型抽样人工复核。点击、停留和赞踩可以反映体验,但不能单独证明事实正确。查询分布、语料或模型变化时,应重新运行固定回归集。
最小实验流程
- 固定语料快照、题集、模型和提示词,保存基线;
- 每次只改变一个主要变量,例如 K、切分或重排器;
- 同时比较检索、生成、引用、拒答、延迟和成本;
- 逐题检查退化样本,区分检索错误与生成错误;
- 将通过的配置加入回归门槛,并在线上持续监控。
常见误区
- 只看回答是否流畅,不核对事实和引用;
- 只看平均分,忽略少量高风险错误;
- 改变多个变量后无法判断收益来源;
- 直接比较不同语料快照或不同题集的分数;
- 把 K 调大当作通用修复;
- 用向量检索回答必须完整枚举的结构问题。
相关词条
参考资料
- Es et al., RAGAS: Automated Evaluation of Retrieval Augmented Generation
- Gao et al., Enabling Large Language Models to Generate Text with Citations
- Thakur et al., BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of Information Retrieval Models
- Liu et al., Lost in the Middle: How Language Models Use Long Contexts
- Yang et al., HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering
- Trivedi et al., MuSiQue: Multihop Questions via Single-hop Question Composition
- Jeong et al., Adaptive-RAG: Learning to Adapt Retrieval-Augmented Large Language Models through Question Complexity