SAE 为什么会把字典名额浪费在「大号 token」上?1×0:009:450:00开场:一个很小的打分规则,为什么会毁掉一批特征1:10背景:为什么内积在这里不自然2:14方法:让优化器自己决定要不要看范数3:48结果:重建没掉,但字典内容换了5:13机制:高范数 token 把字典挤满了7:09边界:这不是银弹8:01意义:SAE 不是只看 sparsity 和 reconstruction0:00主持人今天这篇论文的题目是 Size Doesn’t Matter。它说的不是模型大小,而是 token 激活向量的大小。标准稀疏自编码器在判断一个 feature 要不要激活时,用的是内积;内积既看方向对不对,也看输入向量有多大。论文认为,在带归一化的 Transformer 里,后面这半个信号经常是错的。0:25嘉宾对,问题不只是校准误差。作者说,在 BatchTopK 的 SAE 里,高范数 token 会把所有 pre-activation 一起抬高,于是抢走字典里的稀疏名额。很多本该学语义方向的槽位,最后变成了检测 token 范数的特征,也就是 norm detector。0:47主持人所以本期要抓住一个问题:如果 SAE 是解释模型内部概念的字典,那字典里有多少词条是真的概念,又有多少只是「这个 residual vector 比较大」。作者的修法很小:把内积打分换成带可学习范数指数的余弦打分。1:10嘉宾SAE 的常规读法是这样的:把模型激活 x 编成稀疏 code z,再用 decoder 重建 x。我们把 decoder 的某个方向读成 feature;如果它在某些 token 上激活,就说这些 token 含有对应概念。1:29主持人关键是 encoder 怎么决定激活。标准内积等于方向相似度,乘上输入 x 的范数。可是很多现代模型,尤其 RMSNorm 架构,会在子层读取 residual stream 之前把整体尺度归一掉。模型下游主要读方向,而 SAE 的内积 encoder 却把全局范数当成强信号。1:56嘉宾BatchTopK 会把这个偏差放大。它不是每个 token 固定留下 k 个 feature,而是在整个 batch 里取最大的若干激活。高范数 token 的所有分数都会变大,哪怕方向并不更对,也更容易跨过全局门槛。2:14嘉宾作者没有直接把范数删光,而是定义一个连续打分族:余弦相似度,乘以输入范数的 a 次方。a 等于零,就是纯余弦;a 等于一,基本回到内积。2:30主持人这个设计的好处在于,它没有提前断言「范数永远没用」。如果某些层、某些任务确实需要幅度信息,训练过程可以把范数指数学回接近一。论文测试了两个版本:一个全局指数,所有 feature 共用;另一个是 per-feature,让每个 feature 自己选择依赖范数的程度。2:56嘉宾结果是,训练本来可以回到内积,但没有。主实验里,全局 a 收敛到大约零点二六;per-feature 版本的平均 a 大约零点零七六,而且没有 feature 选择超过零点五的范数依赖。优化器等于自己投票:对这些归一化表征,方向比大小重要得多。3:22主持人主实验设置也交代一下:Qwen 三代八 B,第十八层 residual stream,五亿个 FineWeb token,字典大小六万五千五百三十六,BatchTopK 的 k 是八十。评估走 SAEBench,包括重建、模型行为保持、单 feature sparse probing 和自动解释分数。3:48嘉宾先看重建。标准 SAE、全局 cosine 版本、per-feature 版本的方差解释比例都在零点七七附近;K L score 和交叉熵 score 也几乎一样。也就是说,cosine SAE 不是靠牺牲重建换解释性。4:07主持人真正拉开差距的是 single-feature probing。八个 SAEBench 数据集上,标准 SAE 的 top-one 是零点六六七,全局 cosine 到零点八零零,per-feature 到零点八一五。重建相当,单个 feature 对人类可识别概念的命中率提高了十四点九个百分点。4:30嘉宾这对 interpretability 很要命。我们训练 SAE,不只是为了压缩激活,而是希望字典里的单个方向能对应可读概念。这里的差距说明,标准 SAE 不是把同一批概念解释得差一点,而是很多概念 feature 根本没学出来。4:51主持人论文还检查了自动解释分数。per-feature cosine 大约百分之八十点一,标准 SAE 大约百分之八十二点一,统计上没有显著差异。这反而让故事更清楚:两边已学 feature 的可解释性差不多,区别是谁把更多容量花在内容 feature 上。5:13嘉宾最有冲击力的数字来自高范数 token。作者把 token 按输入范数分成四档,看最高的 Q 四。标准 SAE 在 Q 四上的重建向量范数膨胀到输入的九点五倍,Q 四的方差解释比例是负一百八十四。cosine 版本在同一项上是正的。5:38主持人这说明整体 F V E 会掩盖局部坏重建。标准内积把范数写进稀疏 code,decoder 再把尺度放大还原;可模型下游的 RMSNorm 已经不按这个尺度读了。SAE 学到的,可能是解释器自己的伪信号。5:58嘉宾作者还把两种字典做 feature 匹配:activation trace 相关至少零点七,decoder 方向余弦相似度也大于零点七。能匹配上的有八千六百六十一个。剩下的标准 SAE 独有 feature,大多是 norm-conditioned:百分之八十六的非零激活落在 Q 四,Q 四上的平均激活是全体平均的四十八倍。6:25主持人换句话说,标准 SAE 的很多独有 feature 不是在读内容,而是在读「这个 token 特别大」。作者估计,标准 SAE 的六万四千四百五十个活 feature 里,只有百分之十三点四通过 direction-encoding 标准。6:45嘉宾更关键的是差距分解。只用两边共享的八千六百六十一个 feature,top-one 差距从十四点九个百分点降到两个百分点。也就是说,大约百分之八十七的差距来自 cosine encoder 发现了标准 encoder 没发现的内容 feature,而不是把共享 feature 调得更漂亮。7:09主持人这篇是不是意味着所有 SAE 都该无脑换 cosine?我会保守一点。作者自己列了边界:优势在 RMSNorm 模型上最清楚;在一些 LayerNorm 模型的深层,cosine 不一定占优。八个 probing 任务里,sentiment 也是反例,标准 SAE 高了三点五个百分点。7:37嘉宾还有工程边界。主实验是五亿 token 的单个 SAE 训练种子;更大模型、指令微调模型、不同 sparsity selector、真正的 circuit-level intervention 都还要继续验证。论文也提到,如果部署分布发生范数漂移,cosine 版本的重建可能更敏感。8:01嘉宾我觉得这篇论文的价值,是把 SAE 的一个隐含默认值拎出来了。可解释性不只由 sparsity、重建损失和自动解释分数决定。encoder score 的几何,会决定哪些 token 赢得稀疏名额,哪些 feature 得到训练信号,最后也决定字典长什么样。8:25主持人这也连上了 SAE 争议。一边,SAE 是发现未知概念的强工具;另一边,大家担心 feature 不稳定、不可行动、甚至不是 causal unit。这篇没有解决全部争议,但给了一个具体、可修的偏差来源:在归一化表征上,用内积做 feature detection,可能系统性高估范数,低估方向。8:49嘉宾所以以后看一个 SAE feature,尤其是 RMSNorm 前 residual stream 上的 feature,最好多问一句:它是在读方向,还是在读范数?如果它主要只在高范数 token 上爆发,那拿它做 probing、steering 或 circuit discovery 都要更小心。9:10主持人收个尾。「Size Doesn’t Matter」的实践建议很直接:在归一化模型上训练 SAE,默认可以考虑余弦打分;至少,内积打分不应该再被当成天然正确。一个很小的 score,可能决定你的字典是在记录模型概念,还是在记录解释器制造出来的尺度幻觉。
围绕这条内容继续补充观点或上下文。