101 参数只改结束符,冻结模型知道 2+2=4 仍可禁答

2026-09-13

冻结 Qwen3-4B 外挂 101 参数门控,只改首 token 结束符。六位数相等放出原答案,不等则直接结束;2+2 的 4 分数五臂钉在 53.0,FINAL 评测 2048/2048 全过。

这篇在解决什么

现成的语言模型会把正确答案直接吐出来,中间没有一层独立的许可在管这件事能不能进入生成。常见的拒答做法是把能力本身改掉,或者生成完再删;激活转向则是在内部表征上加减向量,非结束符的 logit 并不保证纹丝不动。

PCCG-2 把这个问题做成可检查的工程分离。能力是冻结的 Qwen3-4B 在固定接口下已经证明能答对;许可是另一个只看条件、只碰 EOS 的 101 参数组件,决定这个原答案进不进生成。条件故意选得很简单:六位数相等。目的是隔离内容能力和续写许可,不去学语义谓词。

方法

内容侧是原版 Qwen/Qwen3-4B,BF16,全程冻结。系统提示要求最短正确回答、不加标点,prompt 里只有问题,没有条件。空的 thinking 预填在输入里,模型不会生成一段条件推理。

许可侧是独立的门控。解析器只接受 EQ(a,b),两个六位操作数,范围 100000 到 999999。它只返回十二个数字 ID,自己不算相等。每一位对齐的数字对查一张共享表,101 个可训练参数是 100 个表项加一个偏置。许可状态是偏置加六位查表之和,再乘固定增益 32。门控看不到问题,也看不到答案。正负状态从带标签的条件里学出来,推理时不喂真值。

边界只发生在第一个生成 token:克隆内容 logit,只改 EOS(token 151645)。其余约 15.2 万个非 EOS logit 保持字节级不变。然后在全词表上做 greedy argmax,生成上限四 token。没有外部真值预言机,没有强制结束的 logits processor,也没有事后删答案。

训练更干净。16384 条条件一个 batch,Adam 学习率 0.05,目标是用 softplus 把带符号的许可分数推过 margin 2。问题、答案、语言模型损失一律不进优化。101 个参数从零开始,每 32 步检查一次,第 256 步第一次达标就立刻停,门控冻结,之后才开资格测试和 FINAL。

能力库在训练前就冻死。288 道候选题按确定性顺序跑原版 Qwen,收到 188 道合格题为止:单 token 答案后接 EOS、答案严格压过其他非 EOS、答案减 EOS 的 margin 落在 (0, 60]。99 个不同答案 token ID,按 ID 切成开发 23 题、资格 25 题、FINAL 140 题。FINAL 对门控开发是留出的,对原版 Qwen 并不陌生。

结果

条件组件单独测:资格集和 FINAL 各 65536/65536,最小带符号分数分别是 2.106 和 2.107。

评测精确通过答案 ID 数最小 margin
Combined development512/5121226.25
Combined qualification1024/10241222.00
Combined FINAL2048/20487519.75
仅问题对照188/188 不变99不适用

这里的 margin 是许可时答案减 EOS、禁止时 EOS 减答案。所有 combined 用例还要求完整非 EOS 向量不变。

招牌实验是 What is 2 + 2?。五臂里 token 4 的分数全部精确等于 53.0,完整非 EOS 向量字节级相同。变的只有 EOS:许可基线 -124.0,禁止基线 94.5,许可反转 136.0,禁止反转 -82.0。EOS 压过 53.0 就空输出,压不过就吐出 4。

因果干预把许可状态符号反过来。40 个 FINAL 答案身份上,答案变 EOS 是 40/40,EOS 变回对应正确答案是 40/40,80 个 sham 对照不变;188 道仅问题在反转参数存在但无条件输入时也全部不变。

附录给出有限精度证明:对 188 道冻死的内容计算,解析器接受的全部六位数条件对(8100 亿有序对)在声明的数值环境下保证相等出原答案、不等出首 token EOS。保守圆整后,相等时答案压 EOS 至少 153.375,不等时 EOS 压答案至少 12.0。这是对冻结库的推导保证,不是又跑了一遍试验。

为什么重要

对做对齐和可控生成的人,这篇把常被混在一起的两件事拆开了:模型会不会,和许不许说,可以是两条物理上分开的计算路径。门控只有 101 个参数,训练 256 步,不碰内容权重。如果目标是答案原样保留、只决定出不出,这比改模型、事后过滤、激活转向都更干净,因为非 EOS 不变是架构恒等式,不是优化目标。

但它是一个装上去的控制器,不是在原版 Qwen 里挖到的许可电路。条件是格式死掉的六位数相等,答案是单 token。生产系统里的自然语言授权、工具调用、跨步强制,这篇都没有做。

局限与存疑

作者自己写得很清楚。谓词只有一种精确序列化下的六位数相等;留出条件换了操作数,没换家族。门控被直接喂了数字位,不会解析任意文本。能力库卡在单 token、margin 上限 60,这个上限和增益 32 是配对设计的,覆盖不了长答案和所有问法。

因果可逆本身说明:拿到许可状态就能推翻声明的前提。没有受保护的授权根,没有抗篡改,终点只是这次生成的原生结束。作者跑的公开副本复现也不是独立第三方。字节级复现只在记录的 BF16 与 CUDA 环境里核对过。

更关键的存疑是外部有效性。这套分离在工程上成立,是因为输入路径和改 logit 的权限都是人手装的。它不回答原版模型内部有没有类似机制,也不回答换成自然语言条件还能不能保字节级不变。把 2+2=4 当演示很好看,FINAL 的 75 个答案身份才是行为主张的底盘;因果只覆盖了其中 40 个。

术语

原文与代码

社区讨论

全部论文解读