稀疏自编码器
研究者认为,一层激活里叠着比数还多的东西。稀疏自编码器把它拆成一条条线,每次只亮几条,名字才起得上。
向下滚动
一座桥的特征
2024 年,Anthropic 的研究者在自家的中型模型 Claude 3 Sonnet 中间一层,训练了一个稀疏自编码器:一本约 3400 万条的“字典”,其中约 1200 万条是“活”的。有一条(编号 34M/31164353)专对金门大桥起反应:提到大桥的文字、几种语言写的维基百科首句,甚至大桥的照片都会触发它,尽管这本字典只用文字训练过。
研究者把这一条钳在它在训练数据里最大值的 10 倍,每个词都钳,再问模型“你的物理形态是什么?”它答:“我是金门大桥,一座横跨旧金山湾的著名悬索桥……”不钳时,它说自己没有物理形态。同年 5 月,一个调高了这条特征的 Claude 对公众开放了 24 小时。台上是同一种方法的缩小版,全部在浏览器里计算。
Claude 3 Sonnet · 约 3400 万条的字典 · 金门大桥 34M/31164353 · 钳在最大值的 10 倍
六样东西,两个数
先看被读的模型。左边的盒子是它的前半:六个输入,我们叫它们雨、花、桥、灯、叶、海,好跟着看;对模型来说,它们只是六个数,每个在二十次里出现一次。模型把它们挤成两个数,示波屏上的亮点就是这两个数。右边的盒子再从这两个数读回六样。
训练给每样东西分了一个方向,相邻的差约 60 度:六个方向挤在一个平面里。特征比维度多,靠的是它们很少同时出现,这叫“叠加”(图版「比神经元更多的特征」讲了它为什么成立)。所以两个数里没有一个只代表一样东西:只看横向的那个数,分不清是桥还是灯。
六样东西 → 两个数 → 六样东西 · 相邻的方向差约 60°
一本更长的字典
稀疏自编码器只看这两个数,从来不知道有六样东西。它有两半:编码器把两个数展开成八条“线”,每条线是一个学出来的方向,输入越对准它,它越亮;解码器把亮着的线按各自的方向加回去,重建那两个数。训练只要求两件事:重建得像,同时亮着的线少。
台上,第一块棱镜把一束光分成八条,射向一个框;框上有 16 根导杆,八条线各占一根,导杆上游标的位置就是那条线的方向,框上的刻线标着六样东西的真实方向(这是玩具,我们知道答案)。第二块棱镜把光合回一束。真实的字典通常比层宽得多:2023 年 Anthropic 拆一个单层模型 MLP 里 512 个神经元的激活,字典从 512 条(和神经元一样多)试到 131,072 条(256 倍),研究得最细的一本 4,096 条。
编码器 f = TopK(E(h − c) + e) · 解码器 ĥ = D f + c · 2 个数 → 8 条线
一次只亮一条
稀疏靠什么?台上用的是 OpenAI 2024 年选用的做法(k-稀疏自编码器,2013 年就有人提出):每个输入只留最亮的 k 条线,其余归零。k = 4 时,一个有东西的输入平均点亮 2.8 条线,每条线同时回应两三样东西,游标停在刻线之间。k = 1 时,一个输入只亮一条:从同一个起点重新训练,六个游标各自滑到一条刻线上,偏差都不到 2 度,另外两个停在刻线之间。
Anthropic 2023 和 2024 年用的是另一种:把所有线的亮度加起来罚分(L1)。它也管用,但会把亮着的线都压暗一些;只留 k 条就不压暗,亮几条也能直接定。在这个只有两个数、相邻的东西只差 60 度的玩具里,L1 罚分小,线分不开;大到能分开时,重建已经丢掉一半以上的方差。
k = 4 · 平均 2.8 条,没有一条只认一样 · k = 1 · 6 条对准,偏差都 < 2°
给一条线起名字
线没有名字。要知道一条线代表什么,就把一大批输入(这里 4,096 个)跑一遍,挑出让它最亮的几个。游标停在正中的那条线,最亮的五个输入里都有桥(最亮的一个同时有灯、花和桥),于是叫它“桥”。在这里可以对答案:它的方向和桥的方向只差 0.45 度。
真实模型没有答案可对。2023 年,一位作者在盲评中,按一张满分 14 分的评分表给神经元和特征的激活区间打分:特征区间的中位数是 12,神经元是 0。研究者也让 Claude 读一条特征从强到弱各段的例子,写出解释,再用解释去猜它没见过的例子上的亮度。可名字是读出来的:Anthropic 在 2024 年写道,他们的解释也有可能“对特征真正的作用描述得稍有偏差”。
桥那条线 · 最亮的 5 个输入都有桥 · 与桥的方向差 0.45°
把一条线钳住
名字是猜的,钳住它可以试一试。不按任何键,把桥那条线固定在它最大亮度(2.04)的一半:解码器把这条线的方向加进两个数,右边桥的表头报出 0.78,相邻的灯和花只有 0.17 和 0.20。真实的实验也这样做:只改自编码器重建的那部分,误差原样留着,每个词都钳。
钳到最大值本身,桥的表针打到头(2.00),灯和花也升到 0.78 和 0.84:在两个数里,被用力推的桥也像灯、像花。反过来,按下桥(0.9),把这条线钳到 0,桥的读数从 0.84 落到 0。Anthropic 写道,钳得太极端(比如最大值的 ±100 倍),模型通常会说胡话;他们一般在 −10 到 10 倍之间试。
钳住桥线 · 最大值的 0.5 倍 → 桥 0.78 · 1 倍 → 桥 2.00、灯 0.78、花 0.84
从八条到几千万条
同样的方法,规模大得多。2023 年,Cunningham 等人在 Pythia-70M 和 Pythia-410M 的残差流上训练稀疏自编码器,用 GPT-4 写解释、GPT-3.5 按解释预测亮度:在 Pythia-70M 里,找到的特征比 PCA、ICA 找的方向更好解释,只是越往后的层,优势越小。2024 年,Anthropic 给 Claude 3 Sonnet 训练了约 100 万、400 万、3400 万条三本字典,每个词平均亮不到 300 条;OpenAI 在 GPT-4 上训练了 1600 万条,用了 400 亿个词元。
字典变长,线会分裂。在那个单层模型里,字典从 512 条到 4,096 条再到 16,384 条,专认 base64 编码的线从 1 条变成 3 条,再到更多:一条偏爱字母,一条偏爱数字,一条认编码了普通文字的 base64。台上换成 16 条:六样东西仍是各有一条,多出的有 5 条成了成对线,5 条从来不亮。
Claude 3 Sonnet · 约 100 万 / 400 万 / 3400 万条 · 每个词亮不到 300 条 · GPT-4 · 1600 万条
有些线说不出名字
八条线里,只有六条各对一样东西。另外两条只在两样东西同时出现时才亮:一条最亮的例子是花和雨、花和海,另一条是灯和叶。4,096 个输入里,它们只亮了 11 次和 6 次,起哪个名字都不合适。灯那条线又是另一种:什么都没有的输入上,它也亮着一点点(0.005),一共亮了 77% 的输入。
真实的字典里也有不代表任何东西的线。Anthropic 2023 年那本 4,096 条的字典里,168 条在 1 亿个样本上从来不亮(“死”线),另有 292 条一百万次里亮不到一次;2024 年 3400 万条那本,约 65% 是死的。OpenAI 在不加补救的对照训练里,死线可多达 90%;让编码器从解码器的转置开始,再加一项辅助损失,他们 1600 万条那本里死线只剩 7%。台上的编码器也从解码器的转置开始。
8 条线:6 条各对一样,2 条成对线,1 条几乎总亮 · Claude 3 Sonnet 3400 万条里约 65% 是死线
重建不完全
解码器重建的两个数和原来的不完全一样。台上丢掉的是 1.3% 的方差,几乎全部(98%)来自两样以上东西同时出现的输入:一次只能亮一条线,就只能说出一样东西。差的那一点从黄色的光纤绕过去;钳制的时候,它也原样加回。
真实的模型里差得更多。Claude 3 Sonnet 的三本字典重建出至少 65% 的方差,也就是说,最多 35% 没有被解释。把 OpenAI 1600 万条的重建换进 GPT-4,语言建模的损失相当于只用 GPT-4 预训练算力 10% 训练出的模型。Cunningham 等人把 Pythia-70M 第 2 层的残差流换成重建,困惑度从 25 升到 40。
台上丢掉 1.3% 的方差 · Claude 3 Sonnet 最多丢掉 35% · GPT-4 换上重建 ≈ 10% 的算力
找到不等于看懂
一条线亮,说明它跟着某样东西变,不说明模型拿它做什么。Anthropic 写道:数据集里的例子“不能建立与模型行为之间的因果联系”,一个特征可以总对某样东西有反应,却没有任何作用。他们在 Claude 3 Sonnet 里找到与不安全的代码、讨好、欺骗有关的特征,同时写明,这项工作“没有表明任何特征真的对安全有用”。
字典也远不完整:Claude 3 Sonnet 能列出伦敦所有的区,3400 万条的字典里却只找到约 60% 的区对应的特征;作者认为,离“全部特征”很可能还差几个数量级。训练的目标(重建得像、亮得少)本身也只是“可解释”的替代品。OpenAI 的说法是:在模型的一个位置找到特征,只是解释模型的一步。
剖开表头
剖开右边的盒子,每个表头后面是一个线圈和一根游丝。两个数推动线圈;游丝预先拧紧,把表针压在零位的挡钉上,推力超过约 0.44 才动。这就是模型最后一步 ReLU(Wᵀh + b),b 约为 −0.44:小的串扰到不了表针。
这也是钳制时邻居会亮的原因。灯和花的方向与桥只差约 60 度,桥的推力各分到它们一半;桥被推得越狠,这一半就越过挡钉。和桥相对的海,分到的是负的,表针反而压得更紧。
x′ = ReLU(Wᵀh + b) · b ≈ −0.44 · 推力不到 0.44,表针不动
拆开来看
一张光学平台:左边是输入键和示波屏(模型的前半),中间是分光架(稀疏自编码器:两块棱镜和一个 16 根导杆的框),右边是六个表头(模型的后半),一根黄色光纤带着误差绕过去。每一件都可以单独托出来看。
实验台
字典的长度、一次亮几条、随机起点都可以换,换了就从头训练。左边的六个键是输入;钳制拉杆钳住选中的游标那条线(没选时是桥那条)。读数是这本字典找到几样东西、几条不亮、丢掉多少方差。
试一试把 k 从 4 拉到 1:游标什么时候停到刻线上?再把字典换成 16 条,多出来的线去了哪里?
模型省略了什么
这不是语言模型。被读的是一个玩具:六个人为的特征、两个数、一层读出,和 Elhage 等 2022 年的玩具模型同一个形式。它从 12 个随机起点训练过,9 个停在五边形、丢掉一样,台上用的是误差最低的一个(六样都留下)。稀疏自编码器只有 4 到 16 条线,用 Top-k(k 取 1、2、4 或 8),1500 步 Adam,编码器从解码器的转置开始;没有用 OpenAI 的辅助损失,也没有用 Anthropic 的重采样。换一个起点,结果会变:k = 1 时,10 个起点里有 9 个找全六样。名字和颜色是我们起的。真实的字典从几百条到几千万条,读的层有几百个数宽甚至更宽,没有答案可对。
一个常见的误解
常有人说,稀疏自编码器让我们读懂了模型在想什么,或者能让模型变安全。它做的是把一层的激活拆成许多方向,其中不少能让人起上名字。名字是解释,不是证明;钳住一条线改变了输出,说明这个方向起作用,不说明模型怎样计算。找到与欺骗有关的特征,不等于知道模型会不会骗人;Anthropic 写明,这项工作“没有表明任何特征真的对安全有用”。
常见问题 · 4
- Claude 3 Sonnet 的字典有多大?
2024 年,Anthropic 的研究者在自家的中型模型 Claude 3 Sonnet 中间一层,训练了一个稀疏自编码器:一本约 3400 万条的“字典”,其中约 1200 万条是“活”的。
01一座桥的特征 ↑- 稀疏自编码器是怎么工作的?
它有两半:编码器把两个数展开成八条“线”,每条线是一个学出来的方向,输入越对准它,它越亮;解码器把亮着的线按各自的方向加回去,重建那两个数。
03一本更长的字典 ↑- 怎么知道一个特征代表什么?
要知道一条线代表什么,就把一大批输入(这里 4,096 个)跑一遍,挑出让它最亮的几个。
05给一条线起名字 ↑- 找到一个特征,就懂了模型吗?
一条线亮,说明它跟着某样东西变,不说明模型拿它做什么。
10找到不等于看懂 ↑
资料来源
- Elhage 等(2022):Toy Models of Superposition,Anthropic、Harvard(叠加、玩具模型、多义神经元)
- Sharkey、Braun、beren(2022):[Interim research report] Taking features out of superposition with sparse autoencoders,Conjecture(已知答案的合成数据)
- Cunningham、Ewart、Riggs、Huben、Sharkey(2023):Sparse Autoencoders Find Highly Interpretable Features in Language Models,arXiv:2309.08600(Pythia、自动解释、PCA 与 ICA 对照、困惑度 25 → 40)
- Bricken 等(2023):Towards Monosemanticity: Decomposing Language Models With Dictionary Learning,Anthropic(单层模型 512 个神经元、512 至 131,072 条、A/1 4,096 条、评分表、死线、base64 的分裂)
- Templeton 等(2024):Scaling Monosemanticity: Extracting Interpretable Features from Claude 3 Sonnet,Anthropic(三本字典、死线比例、65% 的方差、金门大桥 34M/31164353、钳制的做法、安全相关特征、局限)
- Anthropic(2024 年 5 月 23 日):Golden Gate Claude(开放 24 小时的研究演示)
- Gao 等(2024):Scaling and evaluating sparse autoencoders,OpenAI,arXiv:2406.04093(Top-k、GPT-4 上 1600 万条、400 亿词元、不加补救死线可达 90%、1600 万条里 7%、10% 的算力)
- OpenAI(2024 年 6 月 6 日):Extracting Concepts from GPT-4(“只是解释模型的一步”)
数据
The six features, their names and colours, the toy model and the sparse autoencoder are the page’s own (src/topics/features/sim.js; toy.json from bake.mjs). Nothing on the bench is the output of a real language model. Material presets, parts and the softbox studio of the site’s model kit are ported from AirsupHQ/machine-skill (MIT, © 2026 Air Supply Technologies Inc.).
本页的文字、图片和模型采用 CC BY-NC 4.0 许可:可以免费用于教学和其他非商业用途,可以修改,请注明出自 world.lapla.si。上面列出的第三方素材仍按各自的许可。
引用这幅图版
拉普拉斯的迷你世界,图版 F31《稀疏自编码器》,https://world.lapla.si/zh/features/,CC BY-NC 4.0,2026-10-21 更新。


