如何设计 RAG 评估方案和指标?
未标记
考查重点:检索、生成与端到端评估。带答案与证据的问题集分别测检索召回/排序、生成忠实与正确,再看端到端成功、延迟和成本
本题目录
参考答案
核心回答
RAG 评估应覆盖检索质量、生成质量和端到端效果。先建立有代表性的评估集,明确每题的答案要点和原文依据,并固定知识库、配置和评分规则,再分三层评价:
- 检索层:评估证据的相关性、覆盖度和排序,分别保存候选结果和最终上下文。
- 生成层:对照答案要点评估正确性与完整性,检查结论是否得到上下文支持(忠实性),以及引用是否准确。
- 端到端:评估任务完成情况、延迟与成本,固定样本和评分规则比较优化前后。
例如问“出差住宿能报多少、需要什么凭证”,只找到限额而没找到凭证要求,属于证据覆盖不足;两项规定都进入上下文,答案却漏掉一项,则属于生成遗漏。分层评估有助于定位具体问题,并判断改动改善了哪个环节。
先把问题变成可判断的样本
一条样本至少包括:用户问题、适用的知识库版本和权限范围、答案要点、支持这些要点的原文位置,以及是否允许回答。标准答案不必只有一种固定句式,但关键事实、条件和必要覆盖点要明确;标签来自经核验的原文或业务判断,不能直接拿某次模型输出当真值。
下面用“00000 和 A0001 分别是什么意思”这个错误码问答展开,可以覆盖四类题:只问单个编码,一次问多个编码,容易混淆的近似编号,以及文档没有收录的编号。多编码题检查是否漏答;近似编号检查是否串义;无资料题检查能否说明缺少依据,而不是用相似编码硬凑答案。真实高频问题和低频高风险问题也要单独覆盖,平均分不能替代这些子集结果。
对这道双编码题,可分别标出“00000 的含义”和“A0001 的含义”两个必要要点,再关联支持各要点的原文。两段分别支持两个编码时,需要两项都覆盖;多处原文表达同一含义时,则可以互为替代。证据集合召回率与必要要点覆盖率分开看,不能把找回同一文档中的任意一段当成资料齐全,也不能把每个重复副本都当成一个必须找全的新要点。
把用于反复调参的问题与最终测试问题分开,近乎相同的改写题不要分到两边。每轮比较固定问题集、知识库快照、模型/检索配置和评分规则,记录变更。资料会更新,评估集也要更新,但不能拿不同版本的数据直接声称一次优化有效。
分开保存召回、最终上下文和答案
检索器取回的候选,不一定全部交给模型:中间还可能经过重排、去重、过滤、压缩和截断。应分别保存候选列表与顺序、最后发给模型的片段与顺序,以及最终答案和引用。
下图要看的是两个不同的检查位置:候选中有证据,却没有进入最终输入,与证据已经齐全但模型答错,是两种问题。实线表示被测问答链路,虚线表示评价关系;经核验的证据标签用于评分,不交给检索器作为输入。
flowchart TD
Q["用户问题"] --> R["检索候选<br/>与排序"]
R --> C["最终上下文<br/>过滤、重排后"]
C --> A["答案与引用"]
R -. "命中、覆盖、排序" .-> E["分层评估"]
C -. "必要证据<br/>是否仍在" .-> E
A -. "正确、完整、有据" .-> E
G["经核验的<br/>证据标签"] -. "评价依据" .-> E因此同一个召回指标可以在不同阶段计算,但要写清测的是“检索候选”还是“最终上下文”。否则裁剪掉必要证据,也可能被错算成检索器没找到,或被误归因成模型不会回答。若最终上下文经过摘要或改写,应映射回原文证据,或按答案要点判断覆盖,不能直接把新旧片段 ID 当成同一套标签。
检索评估:命中一条,不代表资料找全
先规定相关性的单位:文档、片段,还是答案要点。错误码问题可能一个片段就包含两种编码,不能机械地要求必须找回两个片段;反过来,找回两片也不代表覆盖了两个编码。
下面采用已标注相关证据的集合口径:相关集合记为 R,去重后的前 K 条结果记为 S_K。以下三个检索指标在**按当前版本和权限存在可用证据的问题子集(R 非空)**上逐题计算,再取平均,并报告该子集的题数。
- Hit@K:
R与S_K有交集记 1,没有记 0。它只回答“至少找到一条了吗”。 - Recall@K:
|R ∩ S_K| / |R|,回答“已标注的相关证据找回了多少”。 - Precision@K:返回足 K 条时为
|R ∩ S_K| / K,回答“取回的候选里有多少是相关的”。
假设一题有 4 条相关证据,前 5 条结果只命中其中 1 条:Hit@5 = 1,Recall@5 = 1/4 = 0.25,Precision@5 = 1/5 = 0.2。所以一次命中可以得到 Hit 满分,但仍缺少大部分已标注证据;多事实问题尤其不能只看 Hit。
排序质量可以在同一有证据子集上再看 MRR:对每题取第一条相关结果排名的倒数,再求平均,未命中记 0。它强调首条相关结果靠不靠前,不能反映后续证据是否找全。有不同相关等级时,可以用 nDCG 比较排序,把更有用的证据排到前面。
没有可用证据的负例单独评估:是否检回了无关内容、是否正确说明缺少依据。这些题不混入上述有证据子集的检索均值;尤其不能为 R 为空的 Recall 人为补一个正例分母,否则无资料题占比变化就可能被误当成检索效果变化。
计算前还要约定边界:返回不足 K 条时,精确率分母用 K 还是实际返回数;采用实际返回数时,空返回怎样处理也要事先规定。标签不完整时,Recall 只表示相对已知标签的覆盖。更换切片方式后,要重新映射原文证据,不能直接沿用旧片段 ID。相关性最好同时考虑版本、权限和问题条件,“主题相似”不足以算可用证据。
生成评估:答得有依据,也可能答错
仍以两个错误码为例,分别检查:
- 正确性与完整性:对照经核验的答案要点,两个编码都解释了吗,是否写反含义、漏掉必要条件。
- 忠实度(
Faithfulness):把回答拆成可判断的说法,检查每条是否得到本次上下文支持。若回答额外写“A0001 重试就能解决”,原文没有这个结论,就存在无依据内容。 - 回答相关性:是否在解释用户问的两个编码,而不是展开一篇错误码设计常识。
- 引用质量:引用片段是否真的支持旁边的结论,重要结论是否都有依据。附一个可打开的链接,只能证明链接存在,不能证明引用正确或覆盖充分。
正确性与忠实度的比较对象不同。模型照着过时文档回答,可以忠实却不正确;也可能碰巧答对,但当前上下文根本没有支持它,这次回答仍缺少可核验依据。因此既要与业务事实或参考答案比较,也要与本次上下文比较,不能让答案和自己的检索结果相互证明。
Ragas 等框架可以辅助评估,但要看具体指标的输入和含义。LLM 版 Context Recall 检查参考答案的断言有多少得到上下文支持;Faithfulness 检查生成答案的断言有多少得到支持。两者的分母不同,也不同于上面按证据 ID 计算的集合召回率。常见 LLM 版 Context Precision 还考虑相关片段排序,不能直接当作普通 Precision@K;Ragas 也有按 ID 集合计算的实现。是否需要参考答案、分母如何计算,都要看选用的实现。
例如当前文档的 collections API 中,ContextPrecision 使用 reference,ContextUtilization 则与生成的 response 比较;后一种方式可能受生成答案自身遗漏影响,不能据此证明必要信息已找全。评测记录应保存框架版本、指标类名、输入字段和裁判配置,不能只留下一个同名分数。
怎样判断一次优化值得保留?
假设想把检索 K 调大,应在同一评估集和知识库快照上对照:多编码题的证据覆盖有没有增加,最终答案是否更完整,新增噪声是否导致引用错配或答错,同时检查输入 token、检索/重排/生成耗时与总成本。记录端到端延迟的中位数和高分位值,避免少量特别慢的请求被平均值掩盖;评估裁判本身的费用也应与应用运行成本分开。
还可以为双编码题做一个诊断对照:固定生成模型和提示词,直接提供经核验、覆盖两项含义的完整必要证据,检查模型能否答全。若该条件下仍漏答,再排查上下文使用和生成;若能答全,只说明补足证据可能改善结果,仍需检查原链路是缺少证据、噪声干扰,还是上下文组织不当。人工提供证据的结果不能算作生产检索已改善。
按单编码、多编码、近似编号、无答案等子集看结果,同时报告样本量和波动。模型生成或评分存在随机性时,可重复运行;差异很小时,需要更多样本或进一步验证,不能凭一次小幅涨分就下结论。
如果用模型当裁判,要写清评分量表和输入,固定裁判版本,在人工核验的样本上检查误判,并保留可审阅的判断依据。特别是无答案、资料冲突和部分正确的题,不能只让裁判输出一个总分。裁判超时、输出截断或解析失败,应记为“未成功评分”,单独报告数量和评分覆盖率;不能默认算成回答错误,也不能无说明地从分母里删掉。检索或重排发生降级时,同样记录实际运行模式,避免拿不同链路的结果直接比较。
上线后再看问题解决情况、错误回答、用户反馈和转人工,并回流新的失败样本。追问可能是正常深入交流,转人工也可能是合理处理高风险问题,不能单独当成失败。
上线标准由业务风险与已有基线确定,没有统一的“超过 0.8 就合格”。评估的作用是让质量变化可比较,并帮助缩小排查范围;单个指标低不能直接证明某个组件就是根因。
追问:没有标准答案,还能评估吗?
可以先检查答案相关性、忠实度、引用和运行代价,一些上下文精确率实现也不依赖参考答案。但这些只能说明答案是否切题、是否得到给定材料支持,不能充分证明业务正确或证据找全。可以从真实问题中逐步补充一批经核验的代表性样本,先建立可靠基线。
如果召回率上升、答案反而变差,先比较最终上下文:必要证据是否被后续裁剪删掉,新增片段是否引入冲突或噪声,再检查模型如何使用材料。相关题目:Agent 效果不达预期时,如何分析 Bad Case 并确定优化方向?。
对应教程
配套教程介绍分开观察检索与生成,并建立“问题—期望片段或标准答案”回归集;本文进一步展开指标计算、样本划分和模型裁判校准。
- 第 19 章:RAG 检索增强生成:§1.3.4、§2.4 的分层观测和回归集,以及 §3 的双错误码问答案例。
- 错误码问答源码:
k=2与context + question的实际输入;固定取两条不保证覆盖两个编码。
参考资料
- 国内:小林面试笔记:怎么量化你的 RAG 效果?:借鉴检索、生成与线上反馈分层观察的思路,组织各层评价;具体分母、阈值和失败原因仍按本文的样本口径与实际证据判断。
- 国内:JavaGuide:AI 应用评测:参考经核验的评估集、参考答案与材料支持度分别比较,以及局部对照和人工校准,说明标签、裁判和被测应用需要分别检查。
- 国内:王二讲 Agent:派聪明的 RAG 测评集:借鉴文件级命中掩盖具体证据缺失、实际检索降级和裁判失败的案例,补充为什么标注要对应答案要点、运行模式和未评分样本也应留在报告中。
- 国内:阿里云:RAG 效果优化:参考固定基线与逐题召回记录,以及阈值、重排和召回数量的取舍,说明增大 K 后仍要检查最终上下文、截断、答案质量和代价。
- 国外:LangSmith:Evaluate a RAG application:参考正确性、回答相关性、有据性和检索相关性的不同比较对象,解释为什么答对、切题和受到当前材料支持不能相互替代。
- 国外:Anthropic:Demystifying evals for AI agents:参考评分器校准、环境隔离与重复运行的要求,说明小幅涨分或一次成功不足以证明优化有效,评分故障也需要与应用失败分开。
- 地区未明确:Ragas:Context Recall、Context Precision、Faithfulness:核对参考答案断言、生成答案断言、排序加权和 ID 集合等不同口径,并根据当前
collectionsAPI 的输入区分有参考与无参考的上下文评分。
相关面经
31 篇公司未注明
RAG 效果怎么评估,检索指标与最终答案指标如何区分?(18篇)
京东
后端开发工程师从 RAG 知识库整体评测的角度,该看什么指标才算做得好?
字节跳动
后端开发工程师如何评估 RAG 或重排的效果?自己出的几个问题能否代表真实用户的各种提问?
客诺信息技术
后端开发工程师项目中RAG的评测是怎么做的
经纬恒润
AI 应用开发评测用了哪些指标?怎么用这些指标指导调优
展开剩余 26 篇面经
字节跳动
全栈有做过RAG效果的评估吗?测试集是自动化执行还是人工测试呢?
字节跳动
Agent 开发后端实习生评测体系里有很多指标,哪个指标最能衡量系统是否达成目标?
药明康德
AI 数据79%‑95%的评测指标是如何构建的?
蚂蚁集团
怎么评估检索效果
去哪儿
测试开发工程师RAG分层检索(标签 + 语义匹配)的效果如何评估?
广电数科
Java 开发工程师你们如何得到召回率指标的
字节跳动
后端开发工程师如何评测问答agent的效果,评测集有构建吗,效果怎么样
阿里巴巴
AI 应用开发工程师你对 RAG 做过哪些评测?如何分别评估召回质量和最终回答质量?
阿里巴巴
AI 全栈开发工程师你做完这些以后是怎么去评测的呢?怎么认为这个 RAG 效果一定是好的?评测方式是什么?(追问)你对比的方式是什么?怎么证明它是提升的?系统中是如何对比的?(追问)你后来还是通过工程这种规则的方式去评估是吧?
作业帮
Agent 应用开发工程师RAG 的准确率、召回率有没有做过评测。
阿里巴巴
全栈开发工程师当时你们怎么去评测这个问答效果的好与坏?(追问)怎么去做的评估?
滴滴
数据开发工程师召回率如何评估
去哪儿
AI 测试开发工程师RAG准确率判断、优化及不用其他方法的原因
阿里巴巴
AI 应用开发工程师这个 RAG 的质量是有评估吗?
快手
AI Agent 开发阿里巴巴(淘天)
大模型 Agent什么是RAG,它是怎么提升生成质量的?与传统检索+模型生成的流程有何不同?如何评估一个RAG系统是否work的?
阿里巴巴
大模型算法工程师一套完整RAG系统,该从哪些维度设计量化评估指标,衡量整体效果好坏?
MiniMax
大模型算法工程师如何评估一个RAG系统是否真正 work?有哪些具体的指标或框架?
阿里巴巴
AI 应用开发工程师评测机制是怎么构建的,评测集是怎么构建的
滴滴
AgentRAG评估的指标
淘天
大模型 Agent现在给你一个RAG系统,你会怎么设计一套评估方案来判断它‘好用’?
字节跳动
AI AgentRAG评估方案
顺丰
大模型RAG怎么评估,用了哪些指标;
公司未注明
4️⃣RAG 效果怎么评估?召回率、准确率、线上怎么验证?
京东
大模型算法工程师如何评测RAG系统的准确率?
顺丰
大模型收录题集
展开剩余 20 份题集
RAG 面试题
评估与全局观:怎么量化 Agent 好坏、落地最大挑战
Evaluation Harness 面试问答
公司案例问答汇编
展开其余 1 条原题
数据与评测面试指南
RAG与知识库
RAG定义、与传统流程区别、评估与生成质量提升
RAG实现、召回评估与改进
展开其余 7 条原题
「京东、美团、腾讯、阿里巴巴、阿里通义」
RAG评估








