第 9 章 — RAG 评测三件套

发布于: 2026-03-26 最后更新于: 2026-06-09 版本: 1

第 9 章 — RAG 评测三件套

LLM Primer III: Enhancing Enterprise AI with RAG 章节走读的第九篇。三种不同的故障塌成同一种症状 — 这个领域为此发明了一只三头的度量,终于告诉团队:那个症状对的是哪一种故障。


这一章为什么存在

一套 RAG 系统会在三处不同的地方出毛病,从外面看,三处出的毛病一模一样。检索器取错了上下文。模型忽略了对的上下文。模型尊重了上下文,但答了另一个问题。每一支生产团队,在某个时间点都做过「正在修这一处、却在量另一处」的事。这一章讲的是那一小套固执的词汇,如何阻止这件事再发生。

这也是一章关于一次转向的事。经典信息检索是对着标注的真值评测的 — 查询有已知的对的文档,精度、召回针对标签计算。RAG 处的世界里,根本没有这些标签。问题是开放式的、答案是生成的、相关上下文是模型在那一刻所需要的任何东西。三件套是为这个世界设计的。它度量阶段之间的一致性,而不是与参照的吻合。

一句话总结:健康是三个数,不是一个 — Context Relevance 看检索、Groundedness 看生成、Answer Relevance 看问题与回答之间的贴合 — 三个都由一位 LLM 法官用 reference-free 的方式打分,而团队得把这位法官的诚实保持住。

9.1 为什么是三个信号,不是一个

新团队的反射是给最终答案打分。用户敲下问题、系统给出回答、回答对或不对。这反射不灵,因为最终答案是各阶段的合成 — 它失手时,这一个合成数告诉不了团队该修哪一步。是该文档没被取出来?是取出来了但被忽略了?是用了文档但答的是另一个问题?三种 bug、三种修法、一个分不清的症状。

三件套把这条流水线分到三处「信息要么活下来要么死掉」的关口。检索、扎根、回答。各得一个度量:Context Relevance、Groundedness、Answer Relevance。这套结构有用,不在于这三个穷尽 — 它们并不穷尽 — 而在于它们互相独立。一套系统能在一个上漂亮、在另一个上很差,而当它真的这样时,团队知道往哪儿找。换新嵌入模型,Context Relevance 该动。换新 prompt,Groundedness 该动。该动的那个动了,团队知道改对了。一个端到端的单一分数,把所有这些都坍塌成一个没法 debug 的东西。

9.2 Context Relevance — 你检索到对的上下文了吗?

Context Relevance 问的是,被检索出的块是不是关于那个问题的 — 逐句来,由一位 LLM 法官打分。它度量检索精度 — 上下文窗口里花在相关材料上的比例。分数高意味着检索器没在白花 token。分数低意味着它在带噪声回来,而模型在两边付账 — 延迟和质量都在长,因为冗长不相关的上下文一再被证明会降生成。

Context Relevance 度量的,是召回 — 模型本该要的所有块,是不是真的都被检索出来了。一个把一块完美的捞回来、其余全空的检索器拿满分,即便答案需要两块、第二块漏了。召回是它自己的问题,要在「答案所在文档已知」的精选金集上度量。本章还点出两个值得知道的工件:激进切块会把 Context Relevance 灌水而不必然让答案变好;在一个固定 top-k 上不加权平均,会让一个其实第 4 到 10 位不太影响模型的检索器,看起来比实际差。

9.3 Groundedness — 模型尊重上下文了吗?

Groundedness(有时叫 Faithfulness)问的是反过来的问题:模型产出的论断里,有多大比例能被检索到的上下文撑得起来。标准算法是把答案拆成原子论断,逐条问法官能不能被上下文支撑。拆分这一步才是关键。把一段长答案当一整块来评,法官倾向于二选一打到底 — 要么完全 grounded,要么完全 ungrounded,看整体倾向偏哪边。原子论断逼着法官独立评估每一条断言 — 它能抓到一个最常见的失败:大体正确的回答里,有一句是上下文没支撑过的。

本章对 Groundedness 的偏差是诚实的:它惩罚发明,不惩罚遗漏。一个拒答的模型拿满分。一个正确扎根但漏掉关键限定的回答也拿高分。它也是最容易暴露 prompt 问题、不是模型问题的那个度量。Context Relevance 高、Groundedness 低,答案几乎总在系统 prompt 上,不在模型上 — 指令太软,留不住模型在上下文里。先把 prompt 收紧,再去怪模型。

9.4 Answer Relevance 与 reference-free 那次转向

Answer Relevance 是最容易被误读的一个。它不度量正确性,也不度量扎根。它度量回答是不是回应了被问到的问题。一段事实正确却答了另一个略微不同问题的回应,得分低。一个礼貌拒答得分低。标准算法是一次聪明的反转:给定回答,生成它合理对应的几个问题,把生成出的这些问题跟原问题对一对。它们近,回答在点上。它们漂了,模型走偏了。

Answer Relevance 也是 reference-free 这次转向咬得最深的地方。这些度量都没法靠和一个有标签的对答案比来算 — 可接受答案的空间是无穷的、不可枚举的。所以这个领域收敛在 LLM-as-a-Judge 上:用前沿模型按一份有记录的 prompt 给每个度量打分。这套能放大、便宜、与人类判断大致相关。它的失败形态也有记录 — 配对比较里的位置偏置、长度偏置、模型族偏置、模型悄悄更新带来的标定漂移,以及更深的那一条 — 法官和生成器共用训练语料,会以相关的方式一起翻车。防御不在技术上而在运维上:把法官模型和 prompt 钉死、对照一小份人标定、把一小批被法官评过的样本路由到人工复核、把任何换法官的事件当作历史可比性的重新打底。

值得记住:三件套的价值不在那三个绝对分数 — 它们有噪声。它在三者之间关系的结构。三个一起动,系统作为整体在好或在坏。三个分开走,团队知道该往哪一头找。这种诊断力,是任何单一的端到端数字给不了的。

第 9 章接下去会怎么走

三件套给了「该度量什么」的词汇。它没说怎么真把度量跑起来 — 法官的 prompt、拆分逻辑、嵌入选择、采样率、仪表盘、告警。这些没人会从零做。过去两年涌出了少数几个框架,把三件套在实操里跑得动,每一个都对「生产里的评测该是什么样」带着自己的偏见。第 10 章把它们并排走一遍。


明天 — 第 10 章:主流评测框架RAGAS、TruLens、DeepEval,以及一票观测平台 — 每一家擅长什么、指标库与生产平台的分界在哪、以及那道还没人合上的「评测鸿沟」。

想看完整的全貌?书里把每个度量的精确算法、有记录的 LLM-as-Judge 失败形态(带引文)、让法官保持诚实的标定纪律,以及前沿的 chunk 归因方法都走过一遍。在 Amazon 查看 LLM Primer III →

下田 昌平
下田 昌平
作为株式会社Receipt Roller的CEO兼CTO,目前负责开发电子收据服务以及自动将对话分类并生成行动任务的系统「ACTIONBRIDGE」。从小便接触编程,1996年参与开发测量仪器的相关程序,始终保持着对技术的深刻探索与热情。 在此前的职业生涯中,曾担任日本最大呼叫中心行业企业的子公司——一家研究开发公司的CEO/CTO,领导了多个技术开发项目。目前,我依然活跃在编程的最前沿,持续书写代码。