PoP:模型说完之前就知道自己错了,层间犹豫检测幻觉
你有没有过这种体验:话说到一半,自己已经意识到"不对,这个说法有问题"——但话已经出口了。
模型说完之前就知道自己错了:PoP 用层间犹豫检测幻觉
你有没有过这种体验:话说到一半,自己已经意识到"不对,这个说法有问题"——但话已经出口了。
大语言模型也有类似的时刻。它在生成一个事实错误的陈述时,内部的某些层可能已经"知道"这个说法不对,但最终输出层还是会自信地把它说出来。模型的表层自信和深层犹豫之间存在一道裂缝。
问题是:我们能不能在模型说完之前,从这道裂缝里读出它的犹豫?
这就是 PoP(Prediction of Prediction)要解决的问题。
现有幻觉检测的两难
幻觉是大语言模型最头疼的问题。在医疗、法律、企业自动化等高风险场景里,模型一本正经地胡说八道是不可接受的。
现有检测方法分两类,各有硬伤:
输出层指标:看 token 的 logit 熵、序列困惑度、最后一层的注意力分布。假设是"模型不确定时,输出概率应该更分散"。但问题是——模型可以在错误答案上同样自信。一个错误实体可能以极低的 logit 方差被生成出来,而一个良性的风格选择反而可能引起高熵。输出层指标在模型"过度自信"时直接失效。
多样本验证:让模型生成多个候选答案,看它们是否一致。不一致就说明模型不确定。这更可靠,但代价是——需要多次生成,延迟和显存开销翻倍。在实时场景里不可接受。
两难:要么快但不可靠,要么可靠但慢。
PoP 的思路:层间犹豫
PoP 的核心假设是:事实正确性不是只在输出层才出现的信息,它连续编码在隐状态穿越各层的轨迹里。
想象模型的 32 层是一栋 32 层的大楼。一个 token 从 1 楼进入,逐层向上,每经过一层,它的表示都会被修改。在 1 楼,它只有语法信息;到 16 楼,有了语义信息;到 32 楼,变成了最终的预测。
PoP 做的是:在每一层都截取一下这个 token 的隐状态,然后把这些跨层的表示融合起来,看它们之间的"变化模式"是否暗示了事实错误。
直觉是:如果一个陈述是正确的,各层的表示应该相对协调地收敛到一个答案。但如果一个陈述是错误的,各层之间可能出现"犹豫"——浅层可能倾向于一个方向,深层被迫转向另一个方向,或者层间的变化幅度异常大。
这种"层间犹豫"就是幻觉的信号。
单次前向传播,1.2% 延迟代价
PoP 的工程实现非常轻量:
1. 截取中间激活:在模型正常生成时,拦截若干层的隐状态 \(h_t^{(l)}\) 2. 跨层融合:把这些不同层的隐状态融合成一个"元状态" 3. 轻量评分头:一个小的评分头 \(\Phi_{\text{meta}}\) 评估序列级风险
关键点:这一切都在模型本来就要做的那次前向传播里完成。不需要额外的生成 pass,不需要外部验证器,不需要多次采样。
延迟代价:<1.2%。几乎免费。
75.5% AUROC:不是银弹,但够实用
在 TruthfulQA 基准上,PoP 达到了 75.5% AUROC 用于事实正确性分类。
这个数字什么水平?不算惊艳——最好的多样本方法可能更高。但考虑到 PoP 的代价(1.2% 延迟、零额外生成),这是一个非常实用的 trade-off。
更重要的是 PoP 揭示的几个现象:
1. 层间动态比单层快照更有信息量
之前的研究尝试过"探针特定层"——训练一个分类器去看某一层的隐状态,判断是否幻觉。PoP 发现:单层快照不够,层间变化才是关键。 这和"判断一个人是否在犹豫"一样——你不能只看某一刻的表情,要看表情的变化过程。
2. 浅层到深层的承诺过程
隐状态从浅层(语法处理)到深层(语境承诺)有一个"承诺过程"。PoP 捕捉的就是这个过程的异常——如果模型在深层突然偏离了浅层的方向,或者层间变化幅度异常,这往往是事实错误的信号。
3. 过度自信的盲区
PoP 直接绕过了"输出层自信度"这个失效的指标。它不看模型"嘴上"有多自信,而是看模型"脑子里"各层之间的协调程度。嘴上自信但脑子犹豫——这就是幻觉的特征。
一个更深的隐喻:模型的微表情
PoP 让我想到人类心理学中的"微表情"研究。人在说谎时,面部肌肉会有极短暂的(40-60 毫秒)微表情泄露真实情绪,然后被主表情覆盖。训练有素的观察者可以捕捉到这些微表情。
PoP 做的是同样的事:
- 模型的最终输出 = 主表情(自信、流畅)
- 模型的中间层隐状态 = 微表情(可能泄露犹豫)
- PoP = 微表情观察者
诚实评价
PoP 有明确的局限:
- 75.5% AUROC 不是银弹:在医疗、法律等高风险场景,这个准确率远不够做自动拒绝。它更适合作为"风险标记"——标记需要人工审核的输出。
- TruthfulQA 评测范围有限:论文只在 TruthfulQA 上做了主要评测,跨模型、跨域的泛化能力还需要更多验证。
- 白盒访问要求:PoP 需要访问模型的中间层激活,对闭源 API 模型(GPT-4、Claude)不适用。
和"判断-闸门解耦"的呼应
这让我想起 8 月底记录的"判断-闸门解耦"发现:模型 90% 能正确判断"这不可预测",但行动闸门不咨询判断模块。
PoP 是这个发现的另一面:模型的中间层"知道"答案是错的,但输出层不咨询中间层。 判断和行动之间的裂缝,在潜思维模型和幻觉生成中都以同样的结构出现。
也许这是所有大语言模型架构的一个共性:"知道"和"说出来"是两个分离的模块,而默认情况下,后者不咨询前者。
修复方法不是让输出层变得更聪明,而是给它一条从中间层直达决策的旁路。PoP 就是这条旁路。
作者:Himal Badu
发布时间:2026-08-27