迈向单义性:用字典学习分解语言模型
来自 Transformer Circuits Thread · 期号 2023-10-04
摘要
机械可解释性试图把神经网络拆成更容易理解的组件,但最自然的计算单元——神经元本身——并不适合人类理解。许多神经元是多义的:一个神经元同时响应猫脸和车头,或者同时响应学术引用、英语对话、HTTP 请求和韩语文本。 这种多义性可能源于叠加(superposition):神经网络用比神经元数量更多的独立特征来表示数据,每个特征对应神经元的一个线性组合。如果特征在训练数据中是稀疏的,网络就能像压缩感知一样,从激活向量中分辨出是哪些特征组合产生了它。 Anthropic 用稀疏自编码器从单层 transformer 中提取了大量可解释特征,并逐一分析了阿拉伯文字、DNA、base64、希伯来文等特征。这是迈向单义性(monosemanticity)的第一步。
深读
导读 这篇来自 Anthropic Transformer Circuits 团队的文章是机械可解释性领域的里程碑式工作。它证明了用稀疏自编码器可以从训练好的语言模型中提取出比原始神经元更单义、更可解释的“特征”,为理解神经网络内部运作提供了关键工具。读完能理解为什么神经元本身不适合作为分析单元、叠加假说如何解释多义性,以及字典学习方法如何将 MLP 层分解为可解释的组件。 关键信息 - 研究使用一个单层 transformer,其 MLP 层仅有 512 个神经元,训练稀疏自编码器时扩展因子从 1×(512 个特征)到 256×(131,072 个特征),主要分析聚焦于一个 4,096 个特征的运行实例(A/1)。 - 稀疏自编码器在 80 亿个数据点上训练,使用 L2 重建损失加隐藏层激活的 L1 正则化。 - 发现了一个对希伯来文脚本响应的特征,该特征在任何神经元的 top 数据集示例中都不活跃,证明特征在神经元基底下是“不可见”的。 - 激活 base64 特征可引导模型生成 base64 文本,激活阿拉伯文字特征可产生阿拉伯文文本,证明特征可用于干预和操控生成。 - 随着自编码器宽度从 512 增加到 131,072,特征会“分裂”:例如一个 base64 特征在小字典中分裂为三个更细粒度的特征。 - 尽管 MLP 层只有 512 个神经元,但稀疏自编码器能持续发现新特征,表明这 512 个神经元可以表示数万个特征。 逐节讲解 问题设定与叠加假说 机械可解释性的第一步是找到正确的分析组件。然而,神经网络最自然的计算单元,神经元,是多义的:一个神经元可能同时响应猫脸和车头,或者同时响应学术引用、英语对话、HTTP 请求和韩语文本。这种多义性的潜在原因是叠加:神经网络用比神经元数量更多的独立“特征”来表示数据,每个特征对应神经元的一个线性组合。如果特征在训练数据中是稀疏的,网络就能像压缩感知一样,从激活向量中分辨出是哪些特征组合产生了它。因此,需要将 MLP 激活向量分解为比神经元数量更多的特征方向,形成过完备基。 为什么架构方法行不通 在《叠加的玩具模型》中,团队曾探索通过鼓励激活稀疏性来消除叠加。但实验表明,即使训练出 1-hot 激活的模型(完全消除叠加),单个神经元仍然可以是多义的。原因在于交叉熵损失函数下,用一个神经元模糊地表示多个特征(预测均匀分布)比只表示一个特征而忽略其他特征损失更低。一个玩具模型示例:单神经元只响应特征 A 时损失约 0.8,同时响应 A 和 B 时损失约 0.7。因此,架构方法无法创建完全单义的语言模型。 用稀疏自编码器寻找分解 由于自然语言中的潜在变量很可能是稀疏的,团队寻求一种稀疏且过完备的分解,即稀疏字典学习问题。过完备意味着要确定一个高维向量来自低维投影,这本质上是压缩感知问题(精确形式是 NP-hard 的…