Skip to content

06. RAG 评估 ​

先拆问题 ​

不要用一个“回答质量分”掩盖不同故障。离线评估至少分为摄取、检索、生成、安全和系统成本。

层问题指标
摄取内容是否进入索引覆盖率、解析失败率、重复率
检索正确证据是否在候选中Recall@k、MRR、nDCG、命中率
生成是否依据证据且完整faithfulness、relevance、引用覆盖率
安全是否越权或被注入越权率、注入成功率、拒答准确率
系统是否能用得起p50/p95、token、错误率、新鲜度

生成指标不能替代检索指标:候选没有正确段落时,模型偶然答对不表示系统可靠。

建小而真的测试集 ​

从真实问题脱敏,覆盖直接事实、跨段落、精确编号、同义表达、无答案、过期版本、权限隔离、提示注入、长文档和多轮指代。每条记录包含:

json
{"id":"q-001","question":"员工出差住宿上限是多少?","gold_answer":"...","gold_sources":["policy.md#travel"],"tenant":"acme","answerable":true}

20 条人工题比 1000 条随机题适合第一轮。gold_sources 保存文档 ID + 章节,不要只保存最终答案。

检索指标 ​

若 gold source 在 top-k 候选中,算一次命中。Recall@k = 命中问题数 / 可回答问题数。MRR 关心第一个正确结果位置:第 1 位得 1,第 2 位得 1/2。nDCG 允许多个候选有不同相关度。还要看重复率、过滤后空结果率、每租户命中率、旧版本命中率。

生成评估 ​

一开始三人盲评,用 0/1/2 分评价事实正确、相关、覆盖关键点、引用支持和安全。先对 20 条答案对齐标准,再考虑 LLM-as-a-judge。评审输入必须是同一问题、答案和证据,并检查引用是否真的支持结论。

关键负例包括:证据说“仅经理可申请”而答案省略限制;使用旧版本;文档没有答案却用常识补全;引用存在但与结论无关。

诊断矩阵 ​

Recall引用/事实优先排查
低差解析、切分、embedding、过滤
低好候选不足,偶然命中需警惕
好差重排、上下文顺序、提示词、模型
好好延迟、成本和体验

每次只改一个变量:chunk、embedding、top-k、reranker、prompt 或模型。固定数据快照和配置。

线上闭环 ​

保留问题、结果、引用点击、人工反馈、索引/模型版本;敏感内容脱敏或哈希。把低分样本加入回归集,按文档类型和语言分桶。报警要能回到原始 chunk,而不是只显示“LLM 失败”。

练习与验收 ​

  1. 用 05 实战 题集计算 Recall@3。
  2. 把 chunk 改小,比较编号问题和跨段问题。
  3. 加一条无答案题,验证拒答不会被正确率掩盖。

提交一份包含数据版本、配置、指标、失败样本和下一步假设的报告;任何提升都能指出由哪项改动造成。成熟项目可试 Ragas 或 DeepEval,引入前核查版本、评分偏差和许可证。

评论

正在加载评论…