RAG 评估笔记:把召回质量与回答质量分开检查
936 字
5 分钟
RAG 评估笔记:把召回质量与回答质量分开检查
RAG 系统的回答出现错误时,最常见的处理方式是继续改 Prompt 或更换模型。但如果正确证据根本没有进入上下文,生成模型再强也只能在缺失信息上进行猜测。
因此,评估 RAG 的第一原则是:把检索阶段和生成阶段分开测,再检查它们之间的上下文组装。
1. 先建立可以解释的评测集
评测问题不应该只有问题和标准答案,还应保留:
- 问题依赖的原始文档;
- 能支持答案的证据片段;
- 容易被误召回的相似片段;
- 问题类型,例如事实查询、跨段归纳、表格读取或多跳推理;
- 无法从知识库回答的拒答样例。
只有知道“证据应该在哪里”,召回率和引用正确性才有可解释的依据。否则评估很容易退化成用另一个模型判断回答“看起来像不像对”。
2. 检索阶段关注证据是否到场
对每个问题,我会记录 BM25、向量检索、融合排序和重排后的候选列表,并检查:
- 正确证据是否进入候选集合;
- 它在哪个阶段被提升或过滤;
- 专有名词、数字和原句是否更依赖关键词检索;
- 语义改写是否更依赖向量检索;
- top-k 增大后,噪声是否淹没有效片段。
如果候选阶段没有正确证据,应优先检查解析、切块、索引和查询改写;如果候选中有、重排后消失,则问题更可能出在融合策略、阈值或重排模型。
3. 上下文组装也需要单独检查
检索结果正确,不代表最终 Prompt 中仍然正确。常见问题包括:
- 片段被截断,关键限定条件丢失;
- 多个来源合并时顺序混乱;
- 表格行列关系被转成无法理解的纯文本;
- 引用编号与实际片段错位;
- 总 token 超限后,最重要的证据被后加入的内容挤出。
我会保存最终送入模型的上下文快照,并让引用编号与文档、页码或块 ID 建立稳定映射。
4. 生成阶段不只看答案相似度
回答评估至少可以拆成:
- 正确性:结论是否与证据一致;
- 完整性:问题要求的要点是否覆盖;
- 忠实度:是否加入证据中不存在的断言;
- 引用正确性:引用是否真正支持对应句子;
- 拒答能力:证据不足时是否明确说明边界。
开放式问题不适合只使用字符串匹配。可以结合规则、人工抽查和模型评审,但模型评审也应看到问题、证据、回答和清晰的评分标准。
5. 用失败类型推动迭代
我更关心错误分布,而不是孤立的总分:
解析缺失 → 切块断裂 → 未召回 → 重排丢失 → 上下文截断 → 生成偏离 → 引用错位每一类错误对应不同的修复位置。把所有问题都交给 Prompt,会让短期样例看起来改善,却难以形成稳定、可重复的工程进步。
6. 迭代时的最小记录
- 评测集版本和知识库版本;
- embedding、切块和索引配置;
- 各阶段候选与最终上下文;
- 模型、Prompt 和采样参数;
- 失败分类与人工复核记录。
RAG 评估的目的不是得到一个好看的数字,而是让每次改动都能回答:它改善了哪类问题,又可能牺牲了什么。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
RAG 评估笔记:把召回质量与回答质量分开检查
https://blog.miansu.eu.cc/posts/rag-evaluation-checklist/相关文章智能推荐
1
从“答错了”到“错在哪”:RAG 检索诊断接口设计
项目复盘面向考试题库场景,记录如何让缺失材料、召回过程、重排结果和关键短语覆盖变得可检查。
2
WeKnora 二次开发笔记:把 RAG 拆成可观察的工程链路
项目复盘从文档解析、索引、召回、重排到引用与生成,记录我在 WeKnora 二次开发中形成的 RAG 排障方法。
3
从 Prompt 到 Context Compiler:智能编码 Harness 的上下文工程笔记
AI 工程笔记记录我在个人 Harness 实践中对上下文分层、证据检索、状态压缩和工具反馈闭环的理解。
4
Agent 上线前的安全边界:权限、确认与可追溯执行
AI 工程笔记整理生产级 Agent 在工具权限、提示注入、人工确认、审计日志和失败恢复方面需要建立的基础边界。
5
MCP 工具设计笔记:从“能调用”到“可安全执行”
AI 工程笔记总结 MCP 工具的输入契约、读写边界、幂等性、错误返回和权限设计,避免把普通接口直接包装成工具。
随机文章随机推荐












