RAG 评测怎么做?大多数人只测了『召回』就以为完事了

📅 2026/9/18 ✍️ 小文 📖 约 1 分钟

RAG 效果差,很多人第一反应是换向量模型。其实你该先测清楚问题出在检索还是生成。本文给出一套可落地的 RAG 评测框架与指标。

先诊断,再开药

RAG 系统效果差,最常见的错误反应是”换个更强的 embedding 模型”或”调调 chunk size”。这是在没有诊断的情况下乱开药。

RAG 是一条流水线:切分 → 嵌入 → 检索 → 重排 → 生成。任何一环出问题,最终答案都是错的。你必须先知道坏在哪一环。

拆成两个独立维度

正确的做法是把评测拆成两件事:

  • 检索质量:正确的内容有没有被找出来?
  • 生成质量:找出来的内容有没有被正确使用?

这两件事必须分开测,因为解决方案完全不同。检索不好的要动切分和检索策略;生成不好的要动提示词和模型。

检索层:三个核心指标

1. 命中率(Hit Rate / Recall@K)

在 top-K 结果里,是否包含能回答问题的文档块。

  • 测法:准备一批问题,人工标注每条问题的标准答案所在块
  • 看 top-5、top-10 的命中率,而不是只看 top-1

命中率低 → 问题在检索,先别碰生成。

2. MRR(平均倒数排名)

正确答案排得越靠前越好。排名第 1 得 1 分,第 2 得 1/2,以此类推。

MRR 低但命中率高,说明内容找得到了,但排序不对——这时该上 reranker(重排模型)。

3. 上下文精度 / 召回

  • 精度:检索到的块里,有多少是真正相关的?(太多噪声会干扰生成)
  • 召回:相关问题里,有多少被覆盖到了?

这两个是一对矛盾。加大 top-K 提高召回,但会拉低精度。找到平衡点,是工程的关键。

生成层:忠实度是生命线

生成层最重要的指标不是”像不像标准答案”,而是忠实度(Faithfulness)——答案是否完全基于检索到的上下文,而不是模型自己编的。

测法:

  • 用强模型做裁判,逐句判断答案里的每个论断能否在上下文中找到依据
  • 统计”无依据句子”的比例,就是幻觉率

忠实度低 = 幻觉,这是 RAG 最大的信任杀手。 再高的检索命中率,也救不了张嘴就编的生成。

从零搭一套评测的最小流程

  1. 造评测集:从真实用户问题里抽 50–100 条,人工标注标准答案和来源块。不要用 AI 生成的问题,那是自欺欺人。
  2. 跑检索指标:算 Hit Rate、MRR,定位检索是否达标。
  3. 跑生成指标:算忠实度、答案相关性,定位生成是否达标。
  4. 建立回归基线:把当前分数记下来,每次改动都对比。

第 4 步常被跳过,却最关键。没有基线,你永远不知道自己是不是在进步。

工具层面

不必从零造轮子。RAGAS、TruLens、DeepEval 都提供了现成的检索与生成指标,能直接接入你的流水线。但记住:工具给的是分数,判断问题在哪一环,还得靠你自己的评测集。

排查决策树

  • 检索命中率低 → 查切分粒度、embedding 模型、是否该上混合检索(BM25 + 向量)
  • 命中高但排序差 → 上 reranker
  • 检索和排序都好,答案还是错 → 问题在生成,查提示词、上下文长度、模型能力
  • 答案流畅但总编造 → 忠实度问题,收紧提示词,强制”无依据就说不确定”

一句话总结

RAG 评测的核心是把检索和生成拆开测:检索看命中率与排序,生成看忠实度。先诊断坏在哪一环,再对症下药。盲目换模型的代价,远比先做好评测高得多。

📤 分享到