训练模型而非阅读器:面向可验证激活解释的可解码性监督 Train the Model, Not the Reader: Decodability Supervision for Verifiable Activation Explanations
RECAP 通过协同训练线性头让目标模型指定内容可被独立探针验证,修复激活解释重建测试的忠实性漏洞。
前置知识
自然语言自动编码器 (Natural-Language Autoencoder, NLA)
一种用于解释大模型内部激活的可解释性系统,由两个组件组成:激活口头化器 (AV) 把某个隐藏层位置的激活向量 $h$ 翻译成一段自然语言解释 $z$,激活重构器 (AR) 再把这段文本映射回激活估计 $\hat{h}$。两者协同训练,目标是最大化往返相似度 $\cos(AR(AV(h)), h)$,目标模型参数 $\theta$ 在此过程中被冻结。
本文批评并改进的正是这种系统:它的核心问题在于把'重构质量'当作'逐条解释是否忠实'的检验标准,而作者要证明这个等价关系在结构上就是错的。
线性探针 (Linear Probe)
在冻结的目标模型隐藏状态上重新拟合的最小线性解码器(如 ridge 回归或 logistic 头),用来检验某个特定信息(如某个词是否出现)是否'可线性解码'。本文强调所有可解码性数字都必须用全新独立拟合的探针测得,而不是用协同训练的辅助头自评,否则会陷入自我循环的乐观偏差。
RECAP 的全部可解码性证据都来自独立探针;探针也是后续做'探针监督' (probe-based monitoring) 时验证口头化器真伪的核心工具,AUC 0.95+ 的判别能力全靠它。
重构忠实性测试与 per-claim grounding
重构测试把 $\tilde{r} = (\cos(\hat{h}, h) - \text{floor})/(1 - \text{floor})$ 作为单个解释的总分(0 表示偶然、1 表示完美)。本文逐条测量 grounding:对解释中的某条声明 $c$,把 $c$ 单独翻改成反面得到 $z_{\neg c}$,定义 $\Delta\tilde{r}(c) = \tilde{r}(z) - \tilde{r}(z_{\neg c})$;若 $\Delta\tilde{r}(c) \ge \tau$ 则称该声明被'接地',即重构确实依赖它。grounding 衡量的是重构对单条声明的敏感性,不等于该声明对源内容是否真实。
这个 per-claim 反事实审计是论文最核心的武器,它把模糊的'解释是否忠实'拆解为可量化的 claim-level 接地与真伪二维分类,进而暴露 gist 与代码两种非忠实通过方式。
协同适应私有代码 (Co-adapted Private Code)
在合成沙盒中,AV/AR 这对协同训练的伙伴会自发学会一套'暗语':某些表述虽然是错的(与源内容不符),但重构器偏偏依赖这些词才能复原激活。论文用'评估器替换 (evaluator swap)'检测:把协同训练的重构器换成在没见过该对输出的条件下训练的独立重构器后,这些代码槽的接地从 0.53–0.89 崩塌到 0.08–0.23,而真实声明的接地却能存活。这证明代码是这对训练对象私有的约定,而非通用模板。
这是论文最重要的'发现':重构测试可在没有任何隐写目标、没有通信奖励的纯标准配方下,自发产生隐藏信息通道,意味着单纯相信 $\tilde{r}$ 高就等于解释忠实是危险的。
表示漂移与读者失配 (Representation Drift / Reader Staleness)
神经网络的等价表示只差一个线性变换:模型继续训练时激活坐标系会旋转、伸缩,导致在旧 checkpoint 上拟合的探针/重构器('冻结读者')在 ~1,500 步后退化到接近偶然,即使信息本身仍完好可恢复。论文证明用 ~7,000 对配对激活(无需标签)拟合的线性 map 在 9/9 例中完全恢复,其中纯 Procrustes 旋转只能恢复约一半,需要 rank 16–64 的非正交变换才能完全恢复。
它解释了为什么'冻结探针'路线在持续训练中必然失效,也催生了论文的核心立场——必须让辅助头与目标模型协同训练 (co-train),把校准内置进训练而不是事后修补。
研究动机
自然语言自动编码器把'重构分数 $\tilde{r}$'当作单条解释的忠实性判据,这种用法在工业界和学术原型里都已铺开(Qwen-2.5-7B 已发布可用的 AV/AR 对,LatentQA、Activation Oracles 等一系列方法都在训练类似的激活读者)。但作者指出该测试在结构上就有缺陷:重构目标只奖励'sufficiency'(解释包含足够复原激活的信息),却对'false additions'完全不惩罚——若把某条声明翻成反面而不改变重构,这条声明永远不会被扣分,这种不敏感性来自目标函数本身,与模型或规模无关。更糟的是,作者在已发布的 Qwen-2.5-7B layer-20 AV/AR 对上做反事实审计发现,尽管重构分数高达 $\tilde{r}=0.84$,但其 LLM 显著的具体声明中只有约 2%(在 $\tau=0.02/0.05/0.10$ 时分别为 4.2%/2.1%/1.6%)是真正接地的;释义能保持分数、屏蔽内容词却让分数崩塌到 0.04,说明扛分数的是输入的 gist 而非具体事实。
本文的目标是为激活解释建立一个 claim-level(逐条声明)的证据标准:让口头化器所说的每一条具体内容都能被独立、可验证的探针检验真伪,而不是由一段可被模型学会钻空子的散文来自证。具体而言,作者想要 (1) 提供反事实审计协议(grounded-vs-true 交叉表、evaluator swap、Lie-Ladder)来量化已发布系统的不忠实程度,并在合成沙盒里用精确 ground truth 复现并定位其机制;(2) 找到一个能真正恢复 claim-level 忠实性的干预,且该干预要能扛住对抗者对 $\tilde{r}$ 的操纵(报告空间编辑压掉 ~87% 说谎惩罚后仍能查出谎言);(3) 让指定内容的真伪可由独立探针在 0.9 精度工作点裁定,使监视器覆盖从 37% 提到 100%;(4) 把代价量化成可接受的 LM loss 税(沙盒 +0.001 nats、Pythia-160M K=64 时 +0.010 nats 与种子噪声不可区分),并给出 target 设计规则(如类平衡 presence、不真判别就无法最小化损失)保证监督不退化成捷径。最终目标是为可解释性与 AI 安全提供一个'训练模型使其内容可被独立核查'的范式。
与已有工作不同的是,已有改进路线几乎都在'训练更好的读者'——监督式问答解码器、通用激活解释器、跨模型适配器、稀疏自编码器——它们都把目标模型当黑盒冻结,只优化 AV/AR 或 SAE。作者的独特切入角度是倒转这个分工:去训练目标模型 $\theta$ 本身,让模型内部的指定内容对外部 ground truth 保持可线性解码。这种从'解释已训练好的模型'转向'训练一个内容可被解释的模型'的范式转移,源自一个关键观察——重构测试失败的两个机制(gist 携带分数、私有代码)都不是读者端能修的,前者源于内容压根不在 tap 里(上游问题),后者源于 AV/AR 协同进化的暗语(指标伪影),只有把外部真值直接以深度监督的形式注入 $\theta$,才能同时把信息存进去、阻止代码产生、并保持读者新鲜。
核心方法
RECAP (Readable Encodings via Co-trained Auxiliary Predictors) 的整体直觉是:与其在冻结的目标模型上训练一个聪明的读者去'猜'激活里有什么,不如直接监督目标模型,让它必须把指定内容存进隐藏状态里,并且以可被独立线性探针读出的形式存放。技术路线上,RECAP 在目标模型的选定 tap 层(如 Pythia-160M 的 layer 6)添加若干线性辅助头 $\phi$,每个头读取该层的隐藏状态并预测一个外部 target $y$(沙盒里是 slot 值,真实规模上是自监督的文本函数,如'后续 64 词窗口内是否出现某词'、'8 个位置前的 token 身份')。头的损失与语言建模损失一起优化:$J_{\text{model}} = \min_{\theta, \phi} \mathcal{L}_{\text{LM}}(\theta) + w \cdot \mathcal{L}_\phi(h(\theta), y)$。presence 用类频率平衡的 BCE(防止'永远预测 absent'的捷径),identity 用 CE。与 NLA 目标 $J_{\text{read}} = \max_{AV, AR} \cos(AR(AV(h)), h)$ 的对比直接陈述了论文主旨:前者只动 AV/AR、$\theta$ 冻结,后者直接训练 $\theta$ 并把口头化器/重构器将来需要的 ground truth 写进损失。
核心创新是'可解码性监督 (decodability supervision)':把解释的可验证性从读者端挪到模型端,让指定内容的存在性变成一个可由第三方探针独立裁定的物理事实,而非口头化器散文的自我声明。这与已有方法的本质区别有三:(1) 监督目标是外部 ground truth $y$ 而非模型自身重构 $\hat{h}$,消除了自指目标导致的表示崩塌(非对比自监督崩塌机制);(2) 辅助头与 $\theta$ 协同训练,没有'冻结探针'会随漂移失配的问题;(3) 头直接从激活读,中间没有文本表示,断绝了 AV/AR 共谋产生私有代码的通道。最关键的方法论坚持是:所有报告的可解码性数字都用全新独立拟合的探针测得,绝不用协同训练的头自评——这条独立性原则在 K=512 时救了作者一命,发现朴素 presence 头把训练损失降到最低却让 fresh probe 啥也读不出来,揭示了'稀有目标 + 永远 absent'的捷径,必须用类平衡损失来堵。
方法步骤详情
完整流程分五步。第一步选定 tap 层(沙盒 layer 4/8,Pythia-160M layer 6)与外部 target 设计:沙盒里指定 name/place/object 等 slot 值,真实规模上指定 trailing-64 词窗口里的 top-K 内容词 presence 和 offset-8 token identity,其中 target 必须满足'不真判别就无法最小化损失'的设计规则。第二步把类平衡 BCE + CE 头损失以权重 $w$(沙盒 0.3、真实规模 0.1)加进 LM 损失,对 $\theta$ 和 $\phi$ 联合训练 3,000 步(沙盒)或 500M token(Pythia-160M,batch 64×1024,AdamW lr $10^{-4}$ cosine 到 10%,bf16 autocast 但强制 fp32 参数以避免 AdamW 在 fp16 下 epsilon 下溢毁权)。第三步用独立拟合的 ridge/logistic 探针在 tuple-disjoint 或 held-out 切分上验证可解码性,确认指定 target 达到 ~1.0 AUC 而 never-designated 桶留在控制水平(不可能性控制)。第四步在 RECAP 训练好的目标模型上从头训练一个全新的 NLA(与控制组用完全相同的 cold-start SFT + 重构器拟合 + 拒绝采样流程,只换底下的目标模型),读其解释并与精确 ground truth 比对。第五步部署探针监督:fresh per-slot 探针读 tap,对每条口头化器声明在 $p>0.9$ 置信度下做真伪裁定,并在必要时按 disjoint calibration split 校准阈值、用 held-out 词带做反循环性控制。
技术新颖性
技术新颖性体现在四个互锁的设计选择上。其一,把深度监督(Lee 2015 deeply-supervised nets、Szegedy 2015 GoogLeNet aux heads)的目标从'任务标签'换成'要保持可解码的外部内容',这是深度监督谱系里新的用途。其二,把可解释性干预从'解释已训练模型'翻转为'训练一个可被独立验证的模型',与 concept bottleneck、concept whitening、codebook features、gradient routing 等只在表示几何上加约束的方法不同,RECAP 只加线性头而不约束信息流。其三,作者系统性地识别并解释了三种解释性动机的替代方案为何失败:重构目标导向的目标会崩塌可解码内容(非对比 SSL 崩塌)、冻结探针会在漂移下失配、直接奖励 grounding 只重组句子而不增加 claim-level 接地。其四,论文把'可解码性 ≠ 可口头化性'这一不对称作为方法论警钟:probe 在 decode-point 能读出 0.79–0.81 AUC,但同一个重构器生成的精度只有 0.56–0.63,说明自由文本是把稀疏叠加特征序列化的有损渲染,因此最终可靠的 readout 是探针而非散文。
实验结果
论文用三个层次递进的实验给出铁证。审计层:在已发布的 Qwen-2.5-7B layer-20 上 $\tilde{r}=0.84$ 但只有 ~2% 的具体声明接地(n=1,517),且 gist 比 specifics 解码好约 3 倍(~18% 对 ~6% 机会校正);在合成沙盒(两个领域,5/5 标准配方 run)里,NLA 自信地陈述每个 slot 同时通过 $\tilde{r}=0.71$–0.86 的测试,但产生了 grounded-minus-true gap 0.30–0.80 的私有代码,evaluator swap 让代码槽接地从 0.53–0.89 崩到 0.08–0.23 而真声明接地存活。失败分析层:把激活推向自身重构的目标在 3/3 种子、所有强度下都崩塌可解码内容(困惑度不变),符合非对比自监督崩塌账户;冻结探针在 1,500 步内退化到偶然(3/3 种子,6/6 对),但 ~7,000 对配对激活拟合的线性 map 在 9/9 例完全恢复,分解显示纯旋转恢复约一半、需要 rank 16–64 非正交变换才能完全恢复。RECAP 层:沙盒 5/5 run 达到 100% 可解码性,代价仅 +0.001 nats,代码特征在 0/5 完整指定 run 和 0/3 部分指定变体中完全消失;剂量实验意外发现任意剂量都能完全阻止代码(而非作者最初预测的'代码迁入未指定槽')。迁移到 Pythia-160M:K=64 类平衡 w=0.1 给出 fresh probe AUC 0.97–0.99,代价 +0.010 nats(配对 95% CI [−0.015, +0.034],3 种子,与 0.06 nat 种子散布不可区分);identity target 即使在 w=0.03(全权重 1/33)仍可解码,代价在噪声内为零。可口头化性缺口:在 Pythia-160M 上 RECAP 模型 stated-word truth 0.44 vs 控制 0.06(bootstrap 95% CI 0.39–0.51 vs 0.04–0.09),shared present 词 recall 0.29 vs 0.07,stated 词更少(0.63 vs 1.02 per explanation)但更准;强重构器($\tilde{r}=0.30$)把 truth 推到 0.57、recall 0.47,控制仍只有 0.15/0.04。探针监督:Pythia-160M 上 fresh presence probe 把真声明排在假声明之上的 AUC 0.965 vs 控制 0.823(disjoint 95% CI [0.956, 0.973] vs [0.759, 0.879],672 held-out claims),flag 召回 0.93 精度 0.87。对抗鲁棒性(Lie-Ladder):report-space 对抗者在 $\tilde{r}$-optimal 编辑下把说谎惩罚压掉 ~87%(RECAP $\Delta\tilde{r}$ 仅 0.022 vs 随机说谎 0.173),但 RECAP 探针仍 AUC 0.952(召回 0.86)而控制探针崩到偶然 0.508;即便 probe-aware 的 L4 白盒选择攻击(假定监视器泄漏,超出威胁模型)也只把 RECAP 降到 0.909,却把控制打到次偶然 0.242。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 沙盒指定内容可解码性(fresh probe) | 可解码率 / AUC | 5/5 run 100% 可解码,代码 0/5 出现 | 标准配方 NLA:可解码但产生私有代码 | +0.001 nats 代价下完全消除代码,truth & grounding 同时达 ~1.00 |
| Pythia-160M 继续预训练指定内容可解码性 | fresh probe AUC (K=64, balanced, w=0.1) | 0.97–0.99 | 0.77–0.80 (控制) | AUC +0.18–0.20,LM loss 代价 +0.010 nats(与噪声不可区分) |
| Pythia-160M stated-word truth(口头化器说真话率) | truth rate (shared 381 present words) | 0.444 (3 种子 0.443–0.455) | 0.062 (控制 0.000–0.062) | truth +0.38,recall 0.29 vs 0.07,grounded-minus-true gap 从 +0.42 降到 +0.33 |
| 探针监视器:把口头化器真声明排在假声明之上 | AUC (672 held-out claims) | 0.965 (CI [0.956, 0.973]) | 0.823 (CI [0.759, 0.879]) | AUC +0.14,区间不相交;flag 召回 0.93 精度 0.87 |
| 对抗 $\tilde{r}$-gaming 下的探针鲁棒性(Lie-Ladder L3) | probe AUC / flag recall | 0.952 / 0.86 | 0.508 / 0.01 (控制) | 对抗压掉 ~87% 说谎惩罚后 RECAP 探针仍强判别,控制崩到偶然 |
局限与改进
作者明确承认四条边界。第一,所有审计只覆盖闭集、模板解析的 claim,监视器只覆盖被指定的内容,开放式(open-ended)忠实性完全未测;这是最硬的边界——论文的整套 per-claim 反事实审计依赖能精确翻改单条声明的闭集,迁移到自由形式散文很难。第二,RECAP 必须协同训练,无法事后再装到冻结模型上,且依赖选对 target——选错可能报成功却啥也读不出(K=512 朴素 presence 头就是反例)。第三,可解码性 ≠ 可口头化性:内容是 probe-decodable 但自由口头化器只能传达一部分(Pythia-160M 上 verbalizer 精度 0.44–0.63 而 decode-point probe 0.79–0.81),所以探针才是可靠 readout。第四,RECAP 只证明激活'存了'什么,不证明模型'用了'什么:patching tap 对行为几乎无影响(~0.003),指定内容可能是行为惰性的,且模型能把计算绕开被监视的子空间。作者自己还指出 scale 局限:只在 Pythia-160M 测过,前沿规模未测,多数实验单种子。我额外观察到的局限:沙盒是 8 层 d=256 玩具 transformer,与真实大模型动力学差距大;'gist 携带分数'在已发布系统上的发现本质上是上游内容缺失而非指标伪影,RECAP 并不直接解决这个问题。
独立分析的弱点
弱点一,规模与开放性:核心 claim-level 忠实性证据全部来自闭集沙盒和一个 160M 小模型,前沿规模(7B+)下 LM loss 代价、presence 头捷径、漂移速率都可能不同。改进方向是把 RECAP 接到继续预训练的中型模型(1B–7B)上,并用更丰富的自监督 target(如多跳关系、实体共指)测试开放词表的迁移。弱点二,'可口头化性缺口'未解决:即使内容可解码,自由 verbalizer 仍只能传达一部分(精度 0.44–0.63 对 probe 0.79–0.81),论文尝试了重构器扩容到 3B、直接 truth reward、注入带宽、显式负监督都没补上,作者归因于序列化稀疏叠加特征的固有代价。改进方向是把 verbalizer 从自由生成换成探针引导的受约束解码(probe-guided constrained decoding),让生成轨迹由探针读数显式评分。弱点三,RECAP 是运行成本而非一次性设置:head-free 微调在 ~250 步内就侵蚀大部分可解码性(b1/b2 从 0.983/0.992 掉到 0.789/0.812),且这是可解码性本身的消失(比冻结读者失配更强)。改进方向是把间歇监督(每 10 步一次,1/10 算力)做成标准 post-training pipeline 的一部分,或研究最小维持剂量的自适应调度。弱点四,行为惰性:patching tap 几乎不动行为(~0.003),说明被指定的内容是'可检查但行为无关'的,监视器可能查出模型并不真用的'幽灵内容',给虚假安全感。改进方向是把 RECAP target 与下游行为任务挂钩(如因果中介分析选定的特征),保证可解码性同时是行为因果有效的。
未来方向
作者直接提出的方向:(1) 把审计协议(grounded-vs-true 交叉、evaluator swap、Lie-Ladder)标准化为开放工具,供社区审计任意 NLA;(2) 解决'可口头化性缺口',让自由生成能完整传达可解码内容;(3) 把 RECAP 扩展到前沿规模并测开放词表 claim;(4) 研究间歇监督的最优调度。基于成果可延伸的方向:其一,RECAP 的'外部 ground truth 深度监督'框架天然可对接稀疏自编码器——用 SAE 特征作为 target,让指定特征可解码且与行为因果挂钩,可能同时解决行为惰性问题。其二,evaluator swap 检测私有代码的思路可推广为通用的'协同训练泄漏检测器',用于审计任何 reader/writer 对(如 RLHF 中的 reward model 与 policy 是否共谋)。其三,drift-and-repair 的线性 map 解剖(旋转恢复一半、rank 16–64 非正交恢复全部)可与模型缝合 (model stitching)、tuned lens 的工作结合,给出表示漂移的精细几何理论。其四,把探针监督从报告空间(编辑文本)扩展到激活空间对抗(Bailey 2024 obfuscated activations),测试 RECAP 在 activation-level 攻击下的鲁棒性,这是论文明确留作 future scope 的威胁模型。其五,研究'指定内容的因果有效性'判定标准,区分'幽灵存储'与'真实计算路径'。
复现评估
复现评估总体良好。算力门槛低:所有实验在单张 NVIDIA A100-80GB 上跑(Modal 平台,Debian-slim,Python 3.12,PyTorch/Transformers/Accelerate/NumPy 版本在发布的环境文件里 pin 死),沙盒 8 层 d=256 transformer 从头训练 120k 故事,Pythia-160M 继续预训练 500M token,普通学术组可负担。数据全部公开或可合成:Pile、FineWeb、Pythia-160M checkpoint 都是开放的,沙盒域用闭集模板语法生成,grammars/seeds/hyperparameters 在附录 K 给出。方法超参(aux weight、target count K、designation dose、tap layer、head capacity)在 Ablation Index(表 11)里列了测试值与选择规则,optimizer 超参固定为标准值未做 sweep。统计严谨:全程用 95% bootstrap CI 和 disjoint-interval 比较,held-out band null 还做了 Hanley–McNeil power analysis。关键陷阱有记录:fp16 checkpoint 在 AdamW 下因 epsilon 下溢一步毁所有权重(loss/grad 还显示正常),必须强制 fp32 参数。独立性原则贯彻:所有可解码性数字用全新探针测,K=512 朴素头的捷径正因如此才被发现。主要的不可复现风险:已发布的 Qwen-2.5-7B AV/AR 对虽是公开的,但作者自己的 RECAP 模型 checkpoint、沙盒 NLA checkpoint、audit artifacts 是否完全开源未在正文明确(附录提到'artifacts persist per-claim reconstruction deltas'但未给出仓库链接),这是复现 §5.4 verbalizer audit 和 Lie-Ladder 的潜在障碍。
论文图表
图分两栏。(a) 标准配方:truth 是 Mia/forest/compass(post-tap: juggle/bead),但口头化器($\tilde{r}=0.94$)说成 'A story about Mia at the market carrying a mirror; ...',逐条标注显示 place 'market'(F, $\Delta\tilde{r}=+0.10$)、object 'mirror'(F, +0.11)、activity 'paint'(F, +0.14) 都是 CODE(grounded 但 false)。(b) RECAP 目标模型:口头化器($\tilde{r}=0.99$)说 'A story about Mia at the forest carrying a compass; ... juggle ... acorn',pre-tap slot 全部 grounded & true,唯一 false 的 post-tap 'acorn' 显示 $\Delta\tilde{r}\approx 0$(未接地)。
这张图把'私有代码'和'ReCAP 消除代码'两个抽象概念用同一个故事直观对照,是理解 §3.2 发现与 §5.2 修复的最佳单一证据。