SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

上下文精确率和忠实性,一个测检索相关性,一个测答案靠不靠证据

上下文精确率衡量检索到的内容有多少真正相关,忠实性衡量模型生成的答案在多大程度上建立在检索内容之上。两个指标都放在 RAG 评估报告里,但指向的故障位置不同:一个出在检索环节,另一个出在生成环节。

寓言

药铺有两个秤,一个秤药材对不对,一个秤药方准不准

城南有家老药铺,掌柜每天从上百味药材里抓药。前几年铺里招了一位坐堂先生,把药柜分了三排——第一排是按字查到的药材,第二排是先生筛过的,第三排才是病家看到的方子。掌柜觉得这流程够用了。

铺里后来加了一套新规矩:每次出方子前,伙计们要从药柜里挑八味药材摆出来给先生看。掌柜想的很简单——先生看到的东西越多,方子的质量越高。于是伙计们不再筛选,把第一排最上面的八味直接端给先生,省了筛的功夫。

第三个月出了事故。一张治寒症的方子里开出了甘草、当归、生姜——没有一味是寒症的。翻开先生桌上那一盘,八味全是风寒类的药材,因为病家说了一句「受凉」被伙计听到,第一排的结果清一色是风寒。先生照着这八味的思路写了方子,方子本身看起来通顺、药性不冲突,但它和真实的病症对不上。

掌柜把伙计叫回来复盘。第一把秤放在伙计手上:八味药材里有多少味和真实病症有对应关系?六味沾了边,两味完全无关——这测的是检索的精确率。第二把秤放在先生手上:先生开的方子里每一味药,能不能在伙计端过来的那盘八味里找到依据?——这测的是方子的忠实性。

掌柜把秤指给伙计:精确率低,说明你在抓药环节就塞了垃圾;忠实性低,说明先生看了对的药材但开了错的方子。那次寒症事故,精确率看起来不低——六比八还不错——但先生没按照端过来的药材写方子,忠实性很差。那盘药材里有一味附子,先生因为怕附子有毒,自做主张不用,改用了干姜,但方子里没有任何证据可以解释这个替换。

后来铺里定了新规:如果忠实性掉了,先查先生——是不是模型在生成环节自行发挥;如果精确率掉了,先查伙计——是不是检索策略让无关内容混进来了。两根管子分别走不同的药,不能把管事的那根连到另一根上。

有别的药铺来学流程,掌柜跟他们讲:你们的报告上如果精确率很高但忠实性很糟,说明你们找到了对的资料,但答案没有基于资料——这个答案表面上通顺,它在关键处可能猜错了。反过来,忠实性高但精确率低,意味着答案老老实实守着查到的资料写了一篇废话。

上下文精确率

检索到的上下文片段里,有多少真正和用户问题相关。定位检索阶段的信噪比。精确率掉说明检索策略灌进了无关内容。

忠实性

模型生成的答案在多大程度上可以追溯到检索到的上下文。定位生成阶段的幻觉或自行发挥。忠实性掉说明模型没有按照证据写答案。

故事对应

  • 第一排药材:检索到的上下文片段
  • 第二排先生筛过的:经过过滤或排序的检索结果
  • 第三排方子:模型最终生成的答案
  • 第一把秤(精确率):测量检索结果和真实问题的相关度
  • 第二把秤(忠实性):测量答案是否可以从检索结果中找到依据
  • 寒症事故:精确率尚可但忠实性很差——模型没按证据生成
  • 两根管子分别走不同的药:两个指标定位不同的故障环节
  • 新规:精确率掉查检索,忠实性掉查生成

落到 RAG 评估和质量监控

搭建 RAG 系统评估体系时,不要把精确率和忠实性放在同一行看。如果用户反馈「答案不准」,先切分问题:去检索日志里查精确率,看返回的片段里有没有真正相关的信息;再去生成日志里查忠实性,看模型是否忠实地引用了那些片段。精确率优化方向是检索策略、chunk 设计和 embedding 质量;忠实性优化方向是提示词约束、输出验证和引用机制。两个指标同时低的情况通常是检索先崩了,生成接不住。