稀疏交叉编码器:跨层特征与模型对比

来自 Transformer Circuits Thread · 期号 2024-10-25

摘要

神经网络在叠加态中表示的特征往往分散在多个层里,传统的稀疏自编码器只读单层激活值,抓不住这种跨层分布。 Anthropic 提出稀疏交叉编码器,同时读写多层激活值,产出跨层甚至跨模型的共享特征。它有三个用途:追踪残差流中持续存在的特征、从分析中剔除重复特征从而简化电路、以及对比不同模型(同一模型的不同训练阶段,或架构完全不同的模型)的特征差异。 本文是初步实验报告,作者称其质量与严谨度不及正式论文。

深读

导读 神经网络在叠加态中表示的特征往往分散在多个层里,传统的稀疏自编码器只读单层激活值,抓不住这种跨层分布。Anthropic 提出稀疏交叉编码器,同时读写多层激活值,产出跨层甚至跨模型的共享特征,在追踪残差流中持续存在的特征、简化电路分析、以及对比不同模型的特征差异三个方向上展示了初步效果。读完能理解为什么跨层特征分析是必要的,以及交叉编码器在计算效率和特征简洁性之间如何取舍。 关键信息 - 交叉编码器同时编码和解码多个层的激活值,而传统稀疏自编码器只处理单层,transcoder 用一层激活值预测下一层。 - 在 18 层模型的残差流上,控制总特征数时,交叉编码器的评估损失显著优于每层独立训练的 SAE,表明层间存在大量冗余的线性相关结构。 - 从训练 FLOPs 角度看,交叉编码器达到相同评估损失所需的计算量大约是每层 SAE 的 2 倍(在大计算预算下)。 - 从全局 (MSE, L0) 指标看,交叉编码器通过合并跨层共享结构,提供了比每层 SAE 更简洁的模型激活分解。 - 交叉编码器使用 L1-of-norms 正则化(而非 L2-of-norms),目的是使损失与单层 SAE 可比较,并保留层或模型特有的特征。 - 实验发现大多数交叉编码器特征在某一层达到强度峰值,然后向两侧衰减,但许多特征在大部分甚至所有层都有显著范数;特征的解码器方向在层间会漂移,并非简单被动传递。 逐节讲解 跨层叠加与持久特征 文章从叠加态假设出发:神经网络用比神经元数量更多的特征,允许特征非正交,因此大多数特征由多个神经元的线性组合表示。这种叠加可能跨层分布,在层数较多的 transformer 中,一个电路可以拆到两层并行计算。交叉编码器正是对这种跨层叠加做字典学习。 另一个动机是持久特征:一个特征在残差流中持续存在多个层。如果用每层 SAE 分析,同一特征会在每层产生一个副本,导致因果图出现大量冗余的“自身到自身”箭头。交叉编码器能把这些副本合并成一个特征,大幅简化电路图。文章指出,这种简化方法提供的因果描述可能与底层模型的实际因果结构不同,需要进一步验证。 交叉编码器基础 交叉编码器的基本结构:特征激活值由多个层的激活值加权求和后经过 ReLU 得到,解码器则从特征激活值重建每个层的激活值。损失函数包含各层重建误差的平方和,以及一个特殊的正则化项,用各层解码器权重的 L1 范数之和作为 L1 惩罚的权重。 文章详细解释了为什么选择 L1-of-norms 而非 L2-of-norms:前者使交叉编码器的损失可以直接与每层 SAE 的损失之和比较,并且在模型对比任务中能同时发现共享特征和模型特有特征;后者虽然能更高效地优化 MSE 与全局 L0 的权衡,但倾向于只产出共享特征。本报告所有实验均使用 L1-of-norms 版本。 交叉编码器有多种变体,按跨层方式、因…

读原文

本站只做摘要与索引,全部内容版权归原作者所有。