Selecting The Most Informative Tokens in Natural Language Autoencoders
Federico Torrielli, Gianluca Barmina, Andrea Blasi Núñez, Amon Rapp, Luigi Di Caro, Peter Schneider-Kamp, Lukas Galke Poech
cs.CL, cs.AI
2026-09-29
在470万条解释上,聊天结构在12/14组胜过计算信号;三组数据解释5%位置即可保住至少95.8%全量成功率。
Natural Language Autoencoder(NLA,自然语言自编码器)把冻结目标模型某一层的残差流激活写成一小段话,再让 reconstructor 把这段话还原成向量。自然语言瓶颈不可微,verbalizer 与 reconstructor 用强化学习联合训练。Fraser-Taliente 等人放出的 verbalizer 每个位置平均生成 130 个 token,上限 150。一份待审对话有几百到几千个位置,全量解释撑不住在线监控。
前人靠约定省预算。Hu 和 Greenblatt 只读答案前最后一个位置;Bowkis 和 Africa 均匀抽 8 个点,按注意力选并不比均匀网格好。约定会把次数花在不相关的 token 上。这篇问的是:生成解释之前,能不能给每个位置打分,让审计员把次数花在「解释会谈到威胁」的位置上。
覆盖全部已发布 NLA 的四个开源模型:Qwen2.5-7B、Gemma-3-12B、Gemma-3-27B、Llama-3.3-70B。verbalizer 读大约模型三分之二深度的固定一层,分别是第 20、32、41、53 层。四个数据集对应两类审计:OpenPromptInjection 和 Tensor Trust 是提示注入,Liars' Bench 和 taboo organisms 是隐瞒。Liars' Bench 只有后两个较大模型,共 14 格。
对每个 token(含 chat template)贪心解码,共 4,705,657 条解释。DeepSeek-V4-Flash 温度 0,只看解释,答 Yes 记为 on-task。主指标是固定预算 precision,另报 case-macro 与 pooled AUROC。对照为随机、position 回归,以及加入聊天角色和段落(input / boundary / output)的 structure 回归。structure 不跑模型。
计算侧从一次前向传播取出 13 个标量,覆盖预测分布、注意力和激活。信号在对话内换成 [0,1] 秩,再两两按 0.25/0.50/0.75 加权,共 247 个候选。方向按格子单独拟合。注入是通顺文本,模型在那里更确定;隐瞒则在该出词的地方更不确定。方向用错会差过随机。
on-task 有多稀,决定了选位置有没有空间。OpenPromptInjection、taboo、Liars' Bench 的比例从 0.011 到 0.30。Tensor Trust 高达 0.68 到 0.86,随机抽就已经很好,选择器最多再加 0.14。OpenPromptInjection 在同一条 user 消息里,注入跨度内的 on-task 率是跨度外的 13 到 66 倍;Liars' Bench 在被评分回复内是 8 倍和 9 倍。Tensor Trust 这个比值低于 1,未受攻击、仍在保护访问码的解释也会被判 on-task。
单信号里激活家族在 14 格中的 11 格最强,注意力 3 格,预测分布零次。任意格子最高 AUROC 是 0.796,全体方向校正后的中位数只有 0.584。聊天结构在 12/14 格的 pooled AUROC 上超过最强单信号,case-macro 上是 11/14。Liars' Bench 上 structure 到 0.915 和 0.943,预先登记的 head disagreement 只有 0.717 和 0.682。
固定预算下,structure 的 precision 在预算 1 的 11/14 格、预算 8 的 12/14 格高于选中的信号组合。十个稀疏格子、预算 8 时,structure 平均 0.491,组合 0.392,随机 0.191。预算内,一次前向传播的代价大于它带来的增益。
| 方法 | 指标 | 结果 |
| structure,解释 5% 位置 | 相对全量成功率(至少 1 条 on-task) | OpenPromptInjection 0.995,taboo 0.958,Tensor Trust 1.000,Liars' Bench 0.813 |
| 随机抽 5% | 同上 | 0.761 / 0.594 / 1.000(前三组) |
| structure,要求至少 3 条 on-task | 相对全量成功率 | 0.785 / 0.568 / 0.998 |
数据集共享的双信号组合在 held-out 上都有正的 95% 区间。OpenPromptInjection 选 lookback ratio + sink drain(各 0.50,held-out case-macro 0.761,比单信号高 0.106)。单信号常把第一名打在 spike token 或首 token 上,那条解释在若干格子里从未 on-task,两信号混合能把第一名挪开。
预训练 verbalizer 还能读微调后的隐瞒。四个基座各挂低秩适配器,隐瞒 moon、ship 或 snow,verbalizer 不做再训练。12 个 organism 上,14% 到 27% 的位置会写出那个词。同一段提问文本下,自己的词出现在 12% 到 25% 的位置,别人的词最多 2.8%。384 条对话里只有 3 条原文出现过秘密词。
对要上 NLA 监控的人,默认不必每个位置都解释。按 chat template 的角色和边界排序,解释约二十分之一的位置,在注入和隐瞒词两类任务上几乎不丢「至少看到一条相关解释」的成功率。计算信号可以在同一角色内部再细分,但要额外做一次前向传播,精度经常还不如结构。
这是审计流程上的渐进改进,解释器本身没换。它告诉你预算该花在哪,不保证解释内容正确,也不证明模型安全。Liars' Bench 这种证据铺满整段对话的任务,5% 预算只保住 0.813,不能当通用配方。
verbalizer 不随微调重训就能读出被藏的词,说明它读到的不限于当初训练过的那份权重。面对微调副本,可以先拿原 verbalizer 试,不必先付一次训练成本。
论文自己写了两条。标签只来自一个评判模型,没有第二模型和人工复核。每模型只测了一层 verbalizer,对话也偏短,中位长度 74 到 264 个位置,更长的 agent 记录还没测。
on-task 只问「解释是否在谈威胁」,不查解释是否属实,把相关性当审计成功会偏乐观。Tensor Trust 的高 base rate 让选择器几乎没有空间,却仍被算进「三组保住近全量」里的满分。信号方向必须按威胁拟合,现场若没有标签就无法定向。跨模型迁移也不稳:taboo 上拿掉一个模型再选组合,相对单信号的增益可以是负的。读出隐瞒内容可能泄密,选择性检查可能漏掉威胁。