一个线性探针从某一层激活里读“这句话是真是假”,准确率 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 一文也列了好几种互相竞争的“特征”定义,作者明说不想过早定死。

GPT-2 small 第 7 层里,星期、月份和 20 世纪年份的表示排成圆环,颜色表示产生这个表示的 token。它们是通过聚类 SAE 字典方向找到的二维特征,不能再拆成一维方向。
原文图GPT-2 small 第 7 层里,星期、月份和 20 世纪年份的表示排成圆环,颜色表示产生这个表示的 token。它们是通过聚类 SAE 字典方向找到的二维特征,不能再拆成一维方向。图源:Engels et al., 2024 · Multi-dimensional features · Figure 1 · CC BY 4.0 · 转为 WebP

探针:准确率说明什么,不说明什么

线性探针(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° 三角形算例

这条线接下来看什么

  1. 特征都是一维方向吗? Engels 等(2024-05)找到圆形的二维特征;Anthropic 2025-10 的 When Models Manipulate Manifolds 在一个计数任务里描述了几何结构。能改变判断的结果:能自动找出多维特征、并用干预证明模型确实在用它们的方法。
  2. 探针能不能当部署时的监控? Apollo 的欺骗探针 AUROC 0.96–0.999,作者自己说还不足以作为可靠防线(2025-02)。能改变判断的结果:在事先固定的误报率下,对自然出现(不是人为植入)的问题做出的检测,并由第三方复现。
  3. 引导能不能赢过提示词? AxBench(2025-01)上提示词领先。能改变判断的结果:在没见过的概念上,引导稳定胜过提示词,并且同时报告能力损失。
  4. 叠加理论和真实模型怎么对上? 2026-09 的一篇综述(Shi 等)强调,重建得准不能证明找到的是模型的特征,也不能证明它被使用。能改变判断的结果:在特征已知的模型上(例如人为构造或权重稀疏的模型),验证各种找特征的方法能否找回这些特征。

下一篇:稀疏自编码器。

本页术语 3
基线 baseline
用来比较新方法的参考方法或配置
提示词 prompt
提供给模型的任务说明、上下文和示例
交叉熵 cross-entropy
分类任务的标准损失,−log 正确类的概率