一个线性探针从某一层激活里读“这句话是真是假”,准确率 95%,能不能说模型在这一层“表示了真假”?另一个现象:同一个神经元,既在学术引用上激活,又在韩文上激活。这两件事背后是同一组概念。“概念对应激活空间里的一个方向”是一个好用、但不总成立的工作假设;探针准确率只说明信息读得出来,要配上控制任务和干预才谈得上模型在用;当特征比维度多而且稀疏时,网络会把它们叠加在同一组神经元上,所以逐个看神经元不够,要去找方向。
待审核草稿。 这一篇还没有经过站主审阅,事实、取舍和措辞都可能修改;引用前请回到文中链接的一手资料核对。
特征就是方向吗:线性表示假说
在某一层、某个 token 位置,模型的状态是残差流里的一个向量 $h$(残差流见残差连接)。线性表示假说说的是:
$$ h(x)\approx b+\sum_i a_i(x)\,d_i $$
$d_i$ 是第 $i$ 个特征的方向(单位向量),$a_i(x)\ge 0$ 是输入 $x$ 上这个特征的强度,$b$ 是偏置。概念对应方向,强度对应沿这个方向走多远。
支持它的证据由来已久。词向量里 “king − man + woman” 落在 “queen” 附近(Mikolov 等,2013)。Park 等(2023-11)把“线性表示”拆成两种含义:在输出空间里能用一个方向读出(对应探针),在输入空间里加一个方向能改变概念(对应引导),并证明在一种特定内积下两者可以统一。Anthropic 在 2024 年的 SAE 工作里也把它当作出发点(Templeton 等)。
但它是工作假设,不是定理。Engels 等(2024-05)在 GPT-2 和 Mistral 7B 里找到排成一个圆的星期几和月份,这是不可再拆的二维特征;他们又在 Mistral 7B 和 Llama 3 8B 上用干预实验说明,模型做“星期几加几天”这类模运算时用的正是这个圆。Toy Models 一文也列了好几种互相竞争的“特征”定义,作者明说不想过早定死。

探针:准确率说明什么,不说明什么
线性探针(Alain & Bengio,2016)冻结模型,只在激活上训练一个逻辑回归:
$$ p(y=1\mid h)=\sigma(w^\top h+c) $$
$w,c$ 是探针参数,$\sigma$ 是 sigmoid。准确率高,说明标签 $y$ 的信息可以从 $h$ 里线性读出。它没说明两件事:模型的输出用没用到这个信息(它真的懂世界吗里的推杯子算例就是读得出、却没在用);以及读出靠的是表示本身,还是探针自己的拟合能力。
第二件事,Hewitt & Liang(2019)用控制任务来测:给每个词型随机指定一个固定标签,这种标签和语言结构无关,探针只能靠记住“哪个词对应哪个标签”来学会。然后定义选择性(selectivity)= 真实任务准确率 − 控制任务准确率。
算一次选择性
下面是论文表 1 里 ELMo 第一层、词性标注(开发集)的三组数字:
| 探针 | 词性准确率 | 控制任务准确率 | 选择性 |
|---|---|---|---|
| 线性,默认超参 | 97.2 | 71.2 | 97.2 − 71.2 = 26.0 |
| 单隐层 MLP,默认超参 | 97.3 | 92.8 | 97.3 − 92.8 = 4.5 |
| 单隐层 MLP,按控制任务调过正则 | 97.2 | 80.6 | 97.2 − 80.6 = 16.6 |
MLP 探针只比线性探针高 0.1 个点,可它在随机标签上也能拿到 92.8,说明它大半靠自己记。作者还发现:dropout 提高不了 MLP 的选择性,其他正则可以;第一层的探针准确率略高于第二层,但第二层的选择性高得多。“哪一层更好地表示了词性”,取决于你量的是哪一个。
| 先试什么 | 应该观察什么 | 不能据此推出什么 |
|---|---|---|
| 加一个控制任务 | 选择性,而不只是准确率 | 模型的输出用到了这个信息 |
| 线性探针和 MLP 探针对比 | 准确率差多少,选择性差多少 | 线性读不出就说明信息不存在 |
| 在随机初始化的模型、或随机方向上做同样的事 | 结果比基线(baseline)高出多少 | 高出基线就说明这是模型的“真”特征 |
| 沿探针方向干预 | 输出是否按预期变化 | 这个方向就是模型唯一的机制 |
叠加:神经元为什么一词多义
如果每个概念对应一个神经元,读模型会很省事。实际上很多神经元是多义的(polysemantic):Anthropic 研究的一个单层模型里,有一个神经元同时对学术引用、英文对话、HTTP 请求和韩文起反应(Bricken 等,2023-10)。Elhage 等(2022-09)给出的解释是叠加:网络想表示的特征比它的维度多,就让特征方向彼此不完全正交,容忍一点干扰。
他们的玩具模型:输入 $x\in\mathbb R^n$ 的每一维是一个特征,以概率 $S$ 取 0,否则在 $[0,1]$ 上均匀分布;把它压到 $m<n$ 维再还原:
$$ h=Wx,\qquad x'=\mathrm{ReLU}(W^\top W x+b),\qquad L=\sum_i I_i\,(x_i-x'_i)^2 $$
$W\in\mathbb R^{m\times n}$ 的第 $i$ 列 $W_i$ 是特征 $i$ 在隐藏空间里的方向,$I_i$ 是它的重要性。论文报告:特征稠密时,模型只学最重要的 $m$ 个,类似 PCA;特征变稀疏后,叠加出现,而且是一个相变;特征排成二边形、三角形、五边形等几何结构。作者也提醒,这是小 ReLU 网络,能多大程度推广到真实网络并不清楚。
手算:3 个稀疏特征挤进 2 维(教学例子)
取 $n=3$、$m=2$,三个特征方向两两相隔 120°:$W_1=(1,0)$,$W_2=(-\tfrac12,\tfrac{\sqrt3}{2})$,$W_3=(-\tfrac12,-\tfrac{\sqrt3}{2})$,偏置 $b=0$。为了好算,特征激活时取值 1(原文是均匀分布),三个特征同样重要。任意两个方向的内积都是 $\cos120^\circ=-0.5$,这就是干扰。
| 哪些特征激活 | $h=Wx$ | $W^\top Wx$(ReLU 前) | ReLU 后的还原 | 平方误差 |
|---|---|---|---|---|
| 只有 1 | (1, 0) | (1, −0.5, −0.5) | (1, 0, 0) | 0 |
| 1 和 2 | (0.5, 0.866) | (0.5, 0.5, −1) | (0.5, 0.5, 0) | 0.25 + 0.25 = 0.5 |
| 1、2、3 | (0, 0) | (0, 0, 0) | (0, 0, 0) | 3 |
只有一个特征激活时,干扰全是负的,被 ReLU 截掉,还原完全正确。两个同时激活,各丢一半。三个同时激活,三个方向相加正好抵消。
设每个特征独立地以概率 $p$ 激活。叠加方案的期望损失,和“前两个特征各占一维、第三个直接放弃”的方案比较:
$$ \mathbb E[L_{\text{叠加}}]=3p^2(1-p)\times0.5+p^3\times3=1.5p^2+1.5p^3,\qquad \mathbb E[L_{\text{放弃}}]=p $$
- $p=0.1$:叠加 $0.015+0.0015=0.0165$,放弃 0.1,叠加好约 6 倍。
- $p=0.5$:叠加 $0.375+0.1875=0.5625$,放弃 0.5,放弃更好。
- 两者相等的点:$1.5p^2+1.5p-1=0$,$p\approx0.457$。
去掉 ReLU 再算一次:只有一个特征激活时,还原是 $(1,-0.5,-0.5)$,误差 0.5;$p=0.1$ 时期望损失 0.165,比放弃还差。负干扰只能靠非线性滤掉,这和论文“线性模型只学前 $m$ 个特征”的结论一致。论文给每个特征定义了一个“占用维度”,这里是 $1/(1+0.25+0.25)=2/3$,正是论文里三角形那条线的取值。
这个例子把几何结构固定了,没有训练,也假设特征互相独立;论文还发现,负相关的特征更愿意放在相反方向上。它想说明的只有一点:特征越稀疏,叠加越划算。对读模型的人来说,这意味着逐个神经元看会看到混杂的意思,要找的是方向,下一篇的稀疏自编码器就是干这个的。
激活引导:沿一个方向推一下
如果概念对应方向,沿这个方向加减激活就应该改变行为。最常用的取方向办法是均值差(difference-in-means):在两组对比输入上取激活均值再相减,然后可以加上,也可以整个抹掉:
$$ r=\mu_{+}-\mu_{-},\qquad h'=h+\alpha r,\qquad h'=h-\hat r\hat r^\top h $$
$\mu_{+},\mu_{-}$ 是两组输入的平均激活,$\alpha$ 是强度,$\hat r=r/\|r\|$。第二个式子叫激活加法,第三个叫方向消除(directional ablation),它把 $h$ 在 $\hat r$ 上的分量清零。
算例:从均值差到消除一个方向(教学例子)
设有害指令的平均激活 $\mu_{+}=(4,5)$,无害指令 $\mu_{-}=(1,1)$,于是 $r=(3,4)$,$\|r\|=5$,$\hat r=(0.6,0.8)$。来了一个新输入 $h=(2,1)$:投影 $\hat r^\top h=1.2+0.8=2.0$,消除后 $h'=(2,1)-2.0\times(0.6,0.8)=(0.8,-0.6)$,检查 $\hat r^\top h'=0.48-0.48=0$。反过来,给无害输入 $(1,1)$ 加上 $r$,正好落到有害均值 $(4,5)$ 上。
Arditi 等(2024-06,NeurIPS 2024)在真实模型上做的就是这件事:在 13 个开源对话模型(最大 72B,含 Qwen、Yi、Gemma、Llama-2、Llama-3)里,用有害和无害指令的均值差找到一个“拒答方向”。在每一层、每个位置把它抹掉,模型面对 JailbreakBench 的 100 条有害指令时拒答率明显下降,并开始给出不安全的回答;在提取它的那一层把它加到 100 条无害指令上,模型连无害请求也拒绝。他们还把它做成一次秩 1 的权重修改,作为白盒越狱方法,并指出这对开放权重模型的发布是个安全问题。
其他公开例子:ActAdd 只用一对提示词(例如 “Love” 和 “Hate”)的激活差做引导向量,在 LLaMA-3、OPT 等模型上做情感转向和去毒(Turner 等,2023-08);ITI 在 TruthfulQA 上把 Alpaca 的“真实且有信息量”比例从 32.5% 提到 65.1%,代价是交叉熵(cross-entropy)从 2.56 升到 2.92(Li 等,2023-06);Anthropic 把“金门大桥”SAE 特征钳到最大激活的 10 倍,Claude 3 Sonnet 开始自称是那座桥(Templeton 等,2024-05)。
需要注意三点。强度要手调,太大会伤能力,ITI 的交叉熵上升就是代价。“推得动”不等于“这就是模型用的那个概念”:Makelov 等(2023-11)构造并在 IOI 和事实回忆上观察到,修补一个子空间可以通过激活一条平时不用的平行通路,造成“特征被改了”的假象。最后要和提示词比:AxBench(2025-01)在 Gemma 2 上发现,引导任务里直接写提示词胜过所有基于表示的方法。
每种证据能说明什么
| 证据 | 能说明 | 不能说明 | 例子 |
|---|---|---|---|
| 探针准确率 | 信息可以从这一层线性读出 | 模型在用;读出是否靠探针自己的拟合能力 | ELMo 词性探针 97.2% |
| 带控制任务的选择性 | 读出主要来自表示,而不是探针记忆 | 模型在用 | 线性 26.0 对 MLP 4.5 |
| 随机方向、随机模型基线 | 结果不只是“任何方向都行” | 找到的方向是唯一的 | Anthropic 的 sleeper agent 探针 AUROC 99.3%,1000 个随机方向里最好的也有 95.3%(2024-04) |
| 沿方向加减或消除 | 这个方向能改变某个行为 | 它是模型天然的、唯一的机制 | 拒答方向;子空间修补的假象 |
| 玩具模型里的叠加 | 在给定条件下这种机制会出现 | 大模型里特征的数量和几何形状 | 120° 三角形算例 |
这条线接下来看什么
- 特征都是一维方向吗? Engels 等(2024-05)找到圆形的二维特征;Anthropic 2025-10 的 When Models Manipulate Manifolds 在一个计数任务里描述了几何结构。能改变判断的结果:能自动找出多维特征、并用干预证明模型确实在用它们的方法。
- 探针能不能当部署时的监控? Apollo 的欺骗探针 AUROC 0.96–0.999,作者自己说还不足以作为可靠防线(2025-02)。能改变判断的结果:在事先固定的误报率下,对自然出现(不是人为植入)的问题做出的检测,并由第三方复现。
- 引导能不能赢过提示词? AxBench(2025-01)上提示词领先。能改变判断的结果:在没见过的概念上,引导稳定胜过提示词,并且同时报告能力损失。
- 叠加理论和真实模型怎么对上? 2026-09 的一篇综述(Shi 等)强调,重建得准不能证明找到的是模型的特征,也不能证明它被使用。能改变判断的结果:在特征已知的模型上(例如人为构造或权重稀疏的模型),验证各种找特征的方法能否找回这些特征。
下一篇:稀疏自编码器。
本页术语 3
- 基线 baseline
- 用来比较新方法的参考方法或配置
- 提示词 prompt
- 提供给模型的任务说明、上下文和示例
- 交叉熵 cross-entropy
- 分类任务的标准损失,−log 正确类的概率