前一阵有篇论文,Shi Zhou 的,做的是 RAG 里“证据效用”的受控实验。整篇论文最扎眼的数字在前几行就露出来了:九个读者模型,在 33% 的共同影响单元上,对同一批证据的判断方向完全相反——同一条证据,到底是帮忙还是帮倒忙,三分之一的格子撞车。
“共同影响单元”这个拗口的词,说人话就是:这次实验里所有模型都要过一遍的那些“查询-证据-任务”测试格子。为什么强调这一点?因为这篇论文把变量控到了一个相当极致的地步:查询固定、证据固定、任务固定、评分固定、干预条件固定,唯一在变的只有“读者”是谁。你把这层控死了,剩下来的分歧就只能来自读者模型本身。
这里的“读者”指的是 RAG 流水线里读检索结果的那个语言模型——它读完证据,生成答案。论文问的是:读者对证据“好还是坏”的判断稳不稳,以及这个判断能不能原样迁移到别的读者身上。
答案是不稳,而且不稳定的部分来源相当反直觉。论文把方差拆开看:读者×查询的交互作用,解释了证据效用方差的 29.8%,而置换检验的基线只有 8.4%。翻译一下就是:证据效用不是一个能贴在证据脑门上的属性。同一个证据,撞上不同的读者、不同的查询,效用的方向可以完全不一样——它是“谁在读”和“在读什么”共同长出来的关系量。
这里最容易被搞混的是“读者主效应”和“读者×查询交互”。如果不同读者只是有人手松有人手紧,方差会落在主效应上,分歧顶多算个人风格不同。但交互项占了近三成,说明分歧不是“有人一律觉得好、有人一律觉得孬”,而是“张三在这个查询上觉得这条证据有用,换个查询立刻觉得没用”。效用的方向高度依赖配对关系,这是跟“个人风格”完全不同的一件事。
真正让我停下来想了一会儿的,是论文后面对“偏好”和“干预”的区分。论文把读者对证据的反应拆成三个可测的东西:活动性、序数偏好、条件符号方向。第一个是“这条证据在实际生成中被用到了多少”,第二个是“读者怎么给证据排序——我更喜欢哪条”,第三个是“在特定条件下,这条证据把答案往哪个方向推——帮我还是害我”。
接下来数字开始打架了。
序数偏好稳定得出奇。跨四个独立设置——留一干预、PRISM偏好、RAMDocs、RAGuard——分裂半信度在 0.60 到 0.83 之间。插一句,分裂半信度这名字吓人,做法其实很朴素:把数据随机劈成两半,看两半给出的排序一致到什么程度。知道这点之后,0.60-0.83 的体感就不一样了——它说的是:一个模型对证据的偏好排序,你几乎可以提前把它猜个七八成。而且不光单个模型自洽,九个模型之间对“哪些证据该排前面”也有相当高的共识。好证据的排序,是一件挺公共的事。
符号方向就是另一副脸了。在开放域问答里,读者们对“这条证据是帮忙还是伤害”的判断一致性跌到 0.14 和 0.35,尤其在误导性证据和无关证据上,几乎稀碎。0.14 是什么水平?基本等同于“不存在共识”。但在二元事实核查任务里,同一个量弹回 0.75,跟序数的一致性几乎持平。任务形状把符号方向钉死了:事实核查把答案收敛成“真或假”两个格子,“有用”的定义被迫精确;开放域问答留了太多出口,“有用”本来就因人而异。
这里有个可以品一品的细节:符号方向不是“一直不稳”,是“换了个任务就从一致变成分裂,或者从分裂变成一致”。所以问题不在于读者模型没有判断力,而是它的判断力悬空挂着,只有在任务把出口堵死的时候才借得到力。我原本以为这种分歧应该跟模型能力差异挂钩,越强的模型越会判断——论文这组数字告诉你,任务形状比模型强弱更能决定判断的收敛程度。
打个比方,这有点像你问九个常去同一家馆子的人“哪道菜你爱点”——排序几乎一样,高度一致。但改问“哪道菜你吃了会不舒服”,答案立刻四分五裂:有人乳糖不耐,有人过敏,有人正在控糖。菜还是那道菜,差异不在菜里,在吃的人跟它的关系里。类比到这儿就该收了——模型对证据的“耐受机制”跟人当然完全不是一回事,但“排序的公共性可以跟‘这条证据对你是好是坏’的私有性完全脱钩”这个结构,放在数据和人的经验上都站得住。
然后论文扔出了最拧巴的一组数。跟稳定的序数偏好相比,实际干预的收益小得不成比例:采用模型自我选择的证据,F1 平均只涨了 0.031,t 值是 3.39。说句题外话,统计显著在论文里是个低门槛——它只负责回答“这个提升是不是零”,不负责回答“这个提升有多大”。0.031 才是回答“有多大”的那个数。你拿模型自己偏好的证据,确实比拿随机证据强一点,方向没错;但 0.031 这个量级,跟 0.60-0.83 那串稳定得吓人的排序相关系数摆在一起,就实在对不上了。它把你的口味摸得透透的,你从这份了解里换到的实际收益却只是一个零头。这两样东西之间,存在一条宽度惊人的缝。
这还不是最难受的。论文里有两个最戳人的相关系数:神谕距离 -0.27,遗憾可靠性 -0.28。神谕距离的定义比较绕,大意是拿你的预测跟上帝视角下的最优干预比一比,看差多远。重点在两个数都是负的。负号不是“预测不准”的意思——如果只是不准确,数值会摊在零附近;负的是系统性反转:两个模型的偏好越相似,把一个模型身上有效的证据套到另一个模型身上,干预效果不是趋近,而是偏离。这是所有“模型A用了好,换到模型B也一定行”类做法最怕撞上的结果。
论文自己把三个最像假象的来源也堵了一轮:稀疏性、解码噪声、度量伪影。这三个名目可能让人困惑,说直白点:稀疏性解决的是“会不会样本太稀、个别极端格子带偏了结论”;解码噪声解决的是“会不会只是生成时的随机性在捣乱”;度量伪影解决的是“会不会是评分指标本身对某些答案形态有偏心”。这三样都解释不了序数和符号之间那道差距。换句话说,不是测量误差,不是样本没抽够,是机制层面的真问题。
我当时试图用一个听上去很顺的解释给自己交差:序数偏好是在“全部证据都在场”的条件下做的评估,本质上是个相对比较——哪怕模型对某条证据的利用方式一无所知,也能靠表面语义接近程度排出个高下。干预是另一回事:往上下文里塞进一条证据,不是简单加一条,它会让其它证据上的注意力重新分配。你觉得最顺眼的那条,放进来之后可能恰好挤掉了一条原本在悄悄支撑答案的段落。偏好排序是在复杂系统内部做评估,它天生看不见“少了这条会怎样”——因为评估的时候这条就在场。反事实推理,本来就不是自回归模型的核心能力。
这个解释听着像那么回事,但我必须加一句:论文没有直接验证它。论文报告的是现象——偏好稳定、符号受任务约束、偏好无法预测干预——以及这三个现象在受控条件下同时为真的事实。底下那条具体的因果链,坑还开着,没人填。
但已经足够让人不自在了。现在很多 RAG 调优工作,本质优化的都是“排序”这个序数偏好:重排模型、证据筛选、按相关性截断检索结果。你问这些系统的问题是“排在前面的证据是不是更像答案”,但论文告诉我们,这跟“把这条证据喂进上下文、模型答对的概率变不变”是两码事。前者的一致性再高,也给不了后者任何担保——它甚至可能给你一种虚假的安全感,让你觉得已经摸清证据的底了,其实摸到的只是读者模型的偏好。
以后你看到“按模型偏好定制证据获取”这类方案,可以多问一句:你优化的是喜好,还是结果?两个东西偶尔重合,但论文给的数字说,它们之间没有汇率。至于为什么模型的偏好那么牢固、用起来却那么不牢靠——这条留到下次展开。
