Skip to main content
AI10 min read

无需基准测试的RAG评估

一种务实的检索增强生成评估方法:源覆盖度、引用忠实性、拒绝行为及任务级实用性。

Part ofAI Engineering->
By Jason TeixeiraJune 16, 2026
RAGAI EvaluationSearchLLMsKnowledge Systems
Share:
On this page

第一个 RAG 演示总是能成功。

你上传一份干净的 PDF,问一个显而易见的问题,模型找到对应的段落,然后用资金充裕的顾问那种口吻给出回答。

然后,用户用了一个错误的缩写来提问,政策在三周前刚更新过,答案分散在两份文档里,系统引用了一段听起来相关、但实际上并不支持结论的段落。

这时,产品才真正开始。

检索是第一个产品决策

RAG 的质量在模型看到任何内容之前就已经决定了。

检索层决定了模型被允许知道什么。如果返回的片段不对,答案就已经被破坏了。更好的提示词或许能掩盖问题,但无法修复它。

我用几个平淡无奇的问题来评估检索:

  • 正确的文档出现在靠前的结果里了吗?
  • 正确的章节出现了吗,而不仅仅是正确的文件?
  • 更新的材料排名比旧材料高吗?
  • 用真实用户会用的措辞来提问,查询能正常工作吗?
  • 当诚实的答案是什么都没有时,系统返回空结果了吗?

最后一点很重要。一个总是返回结果的搜索系统,会教会模型总是说点什么。

引用的忠实度比答案的置信度更重要

答案本身是不够的。

对于任何知识系统,我都想知道被引用的来源是否真的支持了所声称的句子。

这意味着要在声明层面进行评估,而不仅仅是响应层面。如果答案有四个声明,但只有两个有来源支持,那么这个答案就不是“大致正确”。它是一种看起来很精致、但实际上很危险的东西。

一个简单的评估标准就够了:

  • 支持:引用直接证明了声明。
  • 部分支持:引用与声明相关,但未完全证明。
  • 不支持:引用无法证明声明。
  • 矛盾:引用表达了相反的意思。

你不需要一个复杂的基准测试来开始。你需要 30 个真实的问题,以及诚实标记错误的纪律。

拒绝回答是一项功能

RAG 系统需要知道什么时候不该回答。

这意味着要测试那些语料库中没有答案的问题。也意味着要测试那些答案敏感、过时,或者依赖于用户未提供的上下文的问题。

好的拒绝回答听起来像这样:

“我在现有资料中没有找到相关内容。最接近的文档是 X,但它并没有直接回答这个问题。”

糟糕的拒绝回答听起来像这样:

“根据现有信息,似乎……”

这个短语就是幻觉穿上西装的样子。

有用的评分卡

对于一个内部 RAG 系统,我更愿意追踪五个接地气的指标,而不是一个令人印象深刻的基准测试分数:

  1. 检索命中率:正确的来源出现了吗?
  2. 引用忠实度:来源支持答案吗?
  3. 拒绝准确率:它拒绝了没有依据的问题吗?
  4. 答案有用性:用户能据此采取下一步行动吗?
  5. 编辑距离:人类需要修改多少内容?

最后一个指标是最诚实的。如果用户一直在重写答案,那么这个系统并没有为他们节省时间。它只是在制造一个需要他们监督的、礼貌的初稿。

从小处着手,以便能够衡量

正确的第一个 RAG 系统通常不是“公司大脑”。

它是一个语料库、一个工作流、一种用户类型,以及答案之后的一个清晰行动。支持宏、销售赋能、政策查询、内部工程文档、合同条款搜索。

狭窄的范围让评估成为可能。

评估让信任成为可能。

信任让扩展成为可能。

这个顺序很重要。

Reader route

article -> proof -> offer

ReadClusterProofScope

cluster

AI Engineering

intent

AI

route

next step

What to do with this

Turn the note into a build path.

If this topic maps to a real business problem, keep reading the cluster, study the academy path, or route the work into a scoped engagement.

Jason Teixeira
Written by
Jason Teixeira
Founder, Sage Ideas Studio · Principal Engineer
livebuild 5d6c8652026-08-05 06:00Z
// solo studio// no analytics resold// every commit human-reviewed