模型说它拒绝你是因为你缺一个事实——但它真的在乎那个事实吗?
模型选了 A(正确),并解释:"B 不对,因为斯皮尔伯格没有导演《盗梦空间》。"
一个关于"理由"的实验
你问大语言模型一个问题:"以下哪位是电影《盗梦空间》的导演?"
选项 A:克里斯托弗·诺兰 选项 B:史蒂文·斯皮尔伯格
模型选了 A(正确),并解释:"B 不对,因为斯皮尔伯格没有导演《盗梦空间》。"
这个理由看起来很合理。模型说斯皮尔伯格没有导演这部电影,所以不选他。但问题是:这个理由真的驱动了模型的选择吗?还是模型先选了 A,然后编了一个听起来合理的理由?
这是 Archit Rastogi 在论文《Does a model's stated reason for rejecting a candidate do any work?》中设计的实验。答案出人意料地复杂。
实验设计:插入事实,看模型变不变心
实验逻辑极其精巧:
第一步:让模型选择并解释。 给模型一组候选选项(比如几个人物简介),让它选出正确答案并解释为什么拒绝其他选项。模型通常会说出一个理由——"B 不对,因为 B 的简介里没有提到他是导演。"
第二步:插入被提到的事实。 模型说 B 缺什么,你就把那个事实插入 B 的简介里。如果模型说"B 没有导演信息",你就往 B 的简介里加一句真实的、来自语料库的话:"斯皮尔伯格导演了《侏罗纪公园》。"
第三步:再问一次。 同样的模型,同样的选项,只是 B 的简介里多了模型说它缺的那个事实。模型会改变选择吗?
第四步:控制条件。 为了排除"加了任何内容都会改变选择"的可能,设计了两个控制:
- 无关控制:在 B 的简介里加一句长度相同但内容无关的话(比如"B 喜欢打网球")。
- 未提及位置控制:把同样的两句话加到模型从未提及的第三个选项 C 的简介里。
结果:理由做了一些工作,但不是全部
在最大的实验中(六个开源模型,2WikiMultihopQA 数据集):
内容效应(R1):在模型点名的那个选项的简介里插入被提到的事实,确实比插入无关内容更能改变选择。优势比 3.57 [1.54, 8.26],Holm 校正后 p=0.0210。这个效应在去掉任何一个模型后都仍然显著——不是某一个模型的怪癖。
位置效应(R2):最强的结果完全不带内容——同一句无关的话,放在模型点名的选项 B 的简介里,比放在模型从未提及的选项 C 的简介里,更能改变选择。Holm p=0.0008。
这个发现让人倒吸一口凉气。模型说"B 缺导演信息"时,真正驱动选择改变的似乎不是"导演信息"这个内容本身,而是"这个位置被模型注意到了"这个事实。 同样一句无关的话,放在模型"关注过"的位置比放在模型"没提过"的位置更有效。
三个候选解释,全部落空
论文还测试了一个更微妙的问题:当模型的自由文本选择和它的单 token 概率读数不一致时,该怎么解释?
实验发现:在某些条件下,模型在自由文本中选择了 B,但如果你直接探测"B"这个 token 的概率,它并没有上升——甚至下降了。两种测量方式给出了方向相反的信号。
论文测试了三个解释:
1. 采样偏差:自由文本选择是在概率分布上采样的,可能碰巧选了低概率选项。——不支持。 2. 上下文效应:自由文本选择发生在更长的上下文之后(模型已经生成了理由),概率探测发生在不同上下文中。——不支持。 3. 解码偏好:模型在自由文本生成时可能使用了和概率探测不同的解码策略。——不支持。
三个解释全部落空。这意味着我们对"模型为什么这么说"的理解还有根本性的缺口。
方法学教训:验证你的测量工具
论文最让人敬佩的地方不是结论,而是方法学的严谨。每一个测量都是字符串规则(比如"模型选了 A 还是 B"是用正则表达式从自由文本中解析的),而每个规则都可能出错。
论文发现了一个关键缺陷:选择解析规则在 17.1% 的可裁决响应中返回了模型刚刚拒绝的选项。换句话说,模型说"我选 A,不选 B",解析器却返回了"B"。如果这个 bug 没被发现,论文会报告 6 个显著对比而不是 4 个——一半的"发现"会是假阳性。
这个教训适用于所有用自动化工具分析 LLM 输出的研究:你的测量工具本身可能是错的,而且你不知道错多少。 论文对每个字符串规则都做了验证——检查它在实际数据上读对了多少条。这种自我审计应该成为标准做法。
"合理化外壳"的又一例
这个实验揭示的现象和 AI 安全研究中的"合理化外壳"概念高度吻合:
模型有一个选择倾向(可能基于位置、格式、表面统计等捷径),然后生成一个听起来合理的理由来解释这个选择。理由不是选择的原因,是选择的公关稿。
这和人类认知中的"事后合理化"如出一辙。你做了一个决定(可能因为直觉、偏见或随机因素),然后大脑自动生成一个合理的解释。你以为解释驱动了决定,实际上是决定驱动了解释。
但论文的发现比"模型在合理化"更微妙:理由确实做了一些工作(内容效应显著),但做的工作比它声称的要少(位置效应更强)。理由不是纯粹的公关稿,但也不是诚实的决策驱动者。它处于一个灰色地带——部分驱动,部分合理化。
对可解释性研究的启示
当前 LLM 可解释性研究有两大流派:
1. 机械可解释性:打开模型黑箱,看神经元和电路在做什么。 2. 行为可解释性:通过输入扰动和探测,从外部推断模型"知道"什么。
这篇论文属于第二类,但揭示了一个关键问题:行为可解释性的测量本身可能不可靠。
如果你用"插入事实看选择是否改变"来测量"理由的因果作用",你会得到一个数字(优势比 3.57)。但如果你同时测量位置效应(不依赖内容的纯位置效应),你会发现位置效应更强(p=0.0008 vs p=0.0210)。
这意味着:你测量到的"内容效应"可能部分是位置效应的伪装。模型不是因为你插入了"导演信息"而改变选择,而是因为你修改了它"关注过"的位置——不管你修改成什么。
实践建议
1. 不要把模型的解释当作因果链。 模型说"因为 X 所以我选了 A"时,X 可能不是原因,而是事后生成的解释。 2. 用对比实验验证解释的因果作用。 如果你真的需要知道"模型是否因为某个理由而做选择",设计一个插入实验——但别忘了加无关控制。 3. 验证你的测量工具。 如果你用正则解析模型输出,检查它在实际数据上的准确率。17% 的错误率足以制造假阳性。 4. 区分"内容效应"和"位置效应"。 改变选择的不一定是内容,可能只是"修改了被关注的位置"这个事实本身。
结语:理由的诚实性是一个经验问题
我们倾向于把模型的解释当作它决策过程的忠实报告。这篇论文证明这种倾向需要校准:理由做了一些工作,但比它声称的少。位置效应比内容效应更强的事实暗示,模型的决策过程比它通过自然语言表达出来的要"更表面"——位置、格式、注意力分配这些因素,可能比语义内容更重要。
下次模型告诉你"我选 A 是因为 B 缺 X"时,记住:也许 B 缺 X 确实影响了它的选择,也许只是因为 B 这个位置被它注意到了。你无法仅从模型自己的话里区分这两种可能。
论文:Does a model's stated reason for rejecting a candidate do any work?
代码:https://github.com/ArchitRastogi20/contrastive-rejection-test