← 返回 2026-11-06

SAE 解读 MoE:稀疏自编码器揭示 MoE 专家具有人类可解读的细粒度专业化 SAE Interprets MoE: Sparse AutoEncoders Reveal That MoE Experts Exhibit Human-Interpretable Fine-Grained Specialization

Anyuan Zhuo, Shaohua Zhang, Yuan Lin, Pinyan Lu 📅 2026-11-05 👍 8 2026-11-10 18:30
MoE 专家专业化 机制可解释性 特征归因 稀疏自编码器

在 MoE 层输出上训练 SAE,将潜变量激活精确分解到各专家,揭示专家按特征而非领域细粒度分工

前置知识

Mixture-of-Experts (MoE,混合专家)

MoE 层包含 $N$ 个专家网络和一个路由器。路由器为每个 token 的隐状态打分,选出 top-$k$ 个专家并对门控权重 $g_j$ 重归一化($\sum_j g_j = 1$),层输出是被激活专家输出的加权和 $y^{(t)} = \sum_{j \in A(t)} g_j^{(t)} u_j^{(t)}$。它以远小于同规模稠密模型的单 token 计算量,承载巨大的总参数量。

本文要回答“单个专家到底负责什么”,全部推导都建立在“MoE 层输出可写成专家加权之和”这一结构之上。

稀疏自编码器 (SAE)

SAE 把模型激活 $y \in \mathbb{R}^d$ 编码到远超完备的潜空间($m \gg d$,本文 $m = 2^{20}$),用 TopK-ReLU 只保留少量非零激活,再解码重建 $y$。潜变量(latent)近似模型真实使用的单语义特征,缓解神经元多义性;重建质量用未解释方差比例 FVU 衡量。

本文的分析单元——潜变量——由 SAE 无监督学出,专家专业化完全是在这个特征空间中度量的。

专家—潜变量贡献精确分解

SAE 编码器是仿射映射,潜变量 $i$ 的预激活为 $f_i = W_{enc,(i)} \cdot y + b_{enc,(i)}$;代入 $y = \sum_j g_j u_j$ 得 $f_i = \sum_j g_j W_{enc,(i)} \cdot u_j + b_{enc,(i)}$,激活被精确(而非近似)分解为各专家贡献加偏置。取正部 $c(j,i,x_{1:t}) = \mathrm{ReLU}(g_j^{(t)} W_{enc,(i)} \cdot u_j^{(t)})$ 作为贡献。

这是全文的技术核心:理解这个代数恒等式,才能明白主导集与贡献占比从何而来、为何是无估计误差的精确会计。

Jaccard 相似度

衡量两个集合重叠程度的指标,$J(A,B) = |A \cap B| / |A \cup B|$,取值 0(完全不相交)到 1(完全重合)。论文用它度量每层 $\binom{128}{2} = 8128$ 个专家对的主导集重叠,从而判断专家分工是否互斥。

“主导集几乎不相交、重叠集中在少数专家对”这一关键结论完全依赖该指标的分布统计。

自动可解释性与 logit lens

用 LLM 为 SAE 潜变量写自然语言解释:提供最强激活上下文(64-token 窗口,top-5 加随机 5 个)、logit lens 投影(把解码器向量过 LM head,取提升/抑制最多的各 top-10 token)以及层深度先验,让解释器输出 2-6 词短语、置信度,或在证据不足时输出 Uninterpretable。

专家标签与领域划分全部来自潜变量的自动解释;没有这一步,主导集只是无意义的潜变量编号集合。

研究动机

现有 MoE 专家专业化分析几乎都在“人工标注领域的语料上数专家被选中的频率”,且证据互相矛盾:一些工作报告专家按领域特化(如代码、数学语料上优先激活),另一些则结论称路由与人类领域概念无关、由 token 身份等表面属性驱动。这套测量工具有四个缺陷:(a) 分类体系是分析者预先强加的,而非从模型中恢复,只能验证模型分工是否符合预设划分;(b) 语料级标签太粗,通常只有代码、数学等寥寥几类,远细于单层动辄上百个专家应有的分工粒度;(c) 标签挂在语料上而路由决策按 token 进行,例如数学题面中的大量叙事性框架 token 全被计入“math”,恰好模糊了想检测的差异;(d) 激活频率只记录“是否被选中”,完全忽略门控系数——一个专家可以在某 token 上被选中,却对该层在此处的计算几乎毫无贡献。

本文的目标是本文要换一把测量工具:直接在模型层自身的特征空间里研究专家分工。具体目标是:在 MoE 层输出上训练稀疏自编码器,利用编码器的仿射性把每个潜变量的激活精确分解到各专家,在大规模验证集上聚合出每个专家“主要负责驱动的潜变量集合”(主导集),构建专家—潜变量二部支配图;再自动解释这些潜变量,用模型自己的词汇而非预设类别描述每个专家的职责;并量化支配结构的集中度、专家间重叠度,以及专家在领域间的配置是否均衡。

与已有工作不同的是,本文的独特切入有三点。第一,分析单元从“分析者定义的领域”换成“SAE 无监督学出的潜变量”,因此专业化发生在哪个粒度上本身成为实验结果,而不是先验假设——这是与所有基于领域标签计数的研究的根本区别。第二,测量量从“被选频率”换成“逐 token、逐专家的贡献分数”,既测量功能性贡献而非共现,又避免把整篇文档归入单一领域。第三,与近期用 k-sparse probing 给专家自动打标签、再在手工设定簇数的输出嵌入聚类上计算特化分数的工作相比,本文的分解是由线性性推出的代数恒等式(精确)而非统计相关(近似),专家的角色是“读出”的而不是与固定划分“匹配”的。

核心方法

直觉:专家的职责应从它驱动的特征去读,而不是从它收到的 token 去猜——token 是路由选的,信息却加在层输出特征上。路线:(1) 对 Qwen3-30B-A3B(每 MoE 层 $N=128$ 专家、每 token 激活 $k=8$、无共享专家)的第 4、30、46 层输出各训练一个 $2^{20}$ 潜变量的 TopK SAE;(2) 由 $y^{(t)} = \sum_j g_j^{(t)} u_j^{(t)}$ 与编码器仿射性,把潜变量预激活精确分解 $f_i^{(t)} = \sum_j g_j^{(t)} W_{enc,(i)} \cdot u_j^{(t)} + b_{enc,(i)}$,定义正贡献 $c(j,i,x_{1:t}) = \mathrm{ReLU}(g_j^{(t)} W_{enc,(i)} \cdot u_j^{(t)})$;(3) 在 1.5B token 验证集上取期望并归一化得贡献占比 $s(j,i)$;(4) 以 $\tau = 0.2$ 阈值构建支配图 $S(j) = \{ i \mid s(j,i) \ge \tau \}$;(5) 从每专家主导集采样至多 2000 个潜变量,GPT-5.5 自动解释并聚合成词云与标签,最后把 128 个标签分组为领域。

核心创新是把“专家是什么”转化为一个可以精确计算的会计问题。与已有方法的本质区别有三:(1) 分解是精确的代数恒等式而非近似归因——因为 MoE 层输出对专家输出线性、SAE 编码器对该输出仿射,潜变量预激活恰好等于各专家贡献之和加偏置,没有任何估计或拟合误差;(2) 主导集几乎互斥(中位 Jaccard 仅约 $10^{-4}$),因此一个专家的主导集就是只属于它自己的描述,这是“直接读出角色”得以成立的结构前提;(3) 只统计正贡献——足够强的负贡献会把潜变量压灭使其不可观测,对负贡献做统计会有系统性偏差。相较“数被选频率”的旧范式,本文同时更换了分析单位(学到的潜变量 vs 人工领域)和分辨率(逐 token 贡献 vs 语料级频次)两个维度。

方法步骤详情

第一步,训练 SAE:激活取自 Olmo 3 语料(5/8 预训练、1/4 思维链、1/8 指令微调),全量前向转储后每样本随机留 512 条;batch 8192、约 3.2B token,$\kappa$ 从 1000 衰减到 100,峰值学习率 $8 \times 10^{-5}$,最终 FVU 为 12.6%/25.1%/7.6%(层 4/30/46)。第二步,算贡献:在与训练无重叠的 1.5B token 验证集上,对每个(前缀,激活潜变量)对计算 8 个激活专家的正贡献并归一化,取期望得 $C(j,i)$,再按式 (9) 归一化得 $s(j,i)$。第三步,建支配图:$s(j,i) \ge 0.2$ 连边,远高于均匀分配的 $1/128 \approx 0.008$。第四步,解释:每专家从主导集采样至多 2000 个潜变量,GPT-5.5 依据激活上下文(top-5 加随机 5 个)、logit lens 提升/抑制 token 与层深度先验输出 2-6 词短语加置信度,按词频汇成词云。第五步,命名与分组:GPT-5.5 先从词云给每专家写不超过 9 词的标签,再一次调用把 128 个标签划成 6-13 组,实际得到 11 个领域。

技术新颖性

技术新颖性体现在四处。(1) 据作者所述,这是首个把 SAE 特征分解用于 MoE 专家归因的工作;其归因方向与 sparse feature circuits、attribution graphs 不同——后者以潜变量为节点跨层追踪计算,本文则在单层内部把一个潜变量的激活分解到产生它的专家上。(2) 精确性:分解由线性性代数推出,与基于探针或聚类的近似打分有本质差别;近期工作在手工设定的簇数网格上计算特化分数,只能回答“哪个预设分辨率拟合最好”,而本文中“模型实际在哪个粒度分工”是输出而非输入。(3) 对负贡献的 censoring 论证(被压灭的潜变量不可观测,统计负部必然有偏)是统计上自觉的处理,说明了为何只用正部。(4) 方法极其通用:只需专家输出与层输出上的一个 SAE,适用于任何输出为专家加权和的 MoE 层,可直接用于比较不同路由目标与负载均衡损失塑造的分工。

An MoE layer outputs a router-weighted sum of its active experts, and since the SAE encoder is affine, each latent's activation decomposes exactly over these experts; thresholding gives the dominance graph, and auto-interpreting the latents an expert dominates describes its role.
Figure 1: An MoE layer outputs a router-weighted sum of its active experts, and since the SAE encoder is affine, each latent's activation decomposes exactly over these experts; thresholding gives the dominance graph, and auto-interpreting the latents an expert dominates describes its role.

实验结果

论文在 Qwen3-30B-A3B 的层 4/30/46 上有四组发现。(1) 贡献远比门控集中:层 30 按排名平均,门控前三 0.231/0.169/0.137,贡献前三 0.512/0.185/0.115、首位独占过半,$r=7$ 时 $\bar{C}_7=0.005$ 对 $\bar{g}_7=0.074$;ReLU 截断平均仅影响 2.09/1.29/1.64 个专家,排除人为陡化。(2) 潜变量支配集中:57.4%/62.1%/56.7% 的潜变量只有一个主控者,含两个达 89.9%/85.1%/92.7%,度 ≥3 不超过 3.7%;128 个专家全部有非空主导集,度前十的专家至多持 30.1% 的边(均匀应 7.8%)。(3) 重叠集中成对:8128 个专家对的中位 Jaccard 约 $10^{-4}$,37.5%-40.5% 完全不共享,重叠最大 10% 的对承担 83.8%/78.5%/81.0% 的总交集;$J>0.05$ 仅 25/20/46 对,层 30 最大 20 对中 19 对同域(基率 12.8%);每专家主导集 46%-59% 为其独占。(4) 语义解读:E50 为 Java 专家(86.7% 解释属 Java 开发,随机基线 1.9%)、E57 前端 Web(78.6% 对 3.5%)、E1 几何(78.1% 对 2.0%)、E76 算术与多项式(59.1% 对 6.7%);E72 的 token 词云只剩 the/and/of 功能词,潜变量词云却呈现“算法+运动健康”双主题,潜变量 F97783 只在二分查找的 <= 处激活;128 专家聚成 11 个领域:计算 28、数学推理 20(合计 37.5%)、文本形式 21,艺术仅 1/128。

Pairwise Jaccard similarity over the 8128 expert pairs of each layer.
Table 1: Pairwise Jaccard similarity over the 8128 expert pairs of each layer.
Share of latent explanations judged by GPT-5.5 to belong to each theme at layer 30, among the latents sampled from the expert's dominant set (Share) and among 2000 latents drawn uniformly from the pooled samples of the other 127 experts (Random).
Table 2: Share of latent explanations judged by GPT-5.5 to belong to each theme at layer 30, among the latents sampled from the expert's dominant set (Share) and among 2000 latents drawn uniformly from the pooled samples of the other 127 experts (Random).
The 128 experts of layer 30, their labels and the domains they were grouped into.
Table 3: The 128 experts of layer 30, their labels and the domains they were grouped into.
The FVU of our SAE on each layer.
Table 4: The FVU of our SAE on each layer.
Rank profiles of the gating weight and of the contribution. The contribution profile is markedly steeper than the gating profile.
Figure 2: Rank profiles of the gating weight and of the contribution. The contribution profile is markedly steeper than the gating profile.
Explanation word clouds of three experts of layer 30.
Figure 3: Explanation word clouds of three experts of layer 30.
Word clouds of expert 72 of layer 30, built from (a) routed tokens weighted by gating mass, (b) the same tokens reweighted by their contribution to mutual information without the top five function words, and (c) latent explanations.
Figure 4: Word clouds of expert 72 of layer 30, built from (a) routed tokens weighted by gating mass, (b) the same tokens reweighted by their contribution to mutual information without the top five function words, and (c) latent explanations.
Number of experts in each of the eleven domains of layer 30.
Figure 5: Number of experts in each of the eleven domains of layer 30.
Latent-side degree distribution of the dominance graph (number of experts dominating each latent).
Figure 6: Latent-side degree distribution of the dominance graph (number of experts dominating each latent).
Expert-side degree of the dominance graph, the number of latents each expert dominates, with the 128 experts of each layer sorted by degree in ascending order.
Figure 7: Expert-side degree of the dominance graph, the number of latents each expert dominates, with the 128 experts of each layer sorted by degree in ascending order.
Pairwise Jaccard similarity of the expert dominant sets at tau = 0.2, with the experts in their original index order on both axes.
Figure 8: Pairwise Jaccard similarity of the expert dominant sets at tau = 0.2, with the experts in their original index order on both axes.
Explanation word clouds of experts 0 and 1 of layer 30.
Figure 9: Explanation word clouds of experts 0 and 1 of layer 30.
查看结构化数据
任务指标本文基线提升
专家贡献 vs 门控集中度(层 30) 按排名平均的首位占比 贡献 $\bar{C}_0 = 0.512$ 门控 $\bar{g}_0 = 0.231$ 首位贡献约为首位门控的 2.2 倍,且 $r=7$ 时 0.005 对 0.074,集中度差距进一步拉大
潜变量主控专家数量(层 4/30/46) 单一主控者潜变量占比 57.4% / 62.1% / 56.7% 若激活均匀来源于 128 个专家,单专家份额约 1/128 ≈ 0.8% 绝大多数潜变量的激活集中于 1-2 个专家而非 8 个被选专家
专家主题纯度:E50(Java 开发) 主导集潜变量解释属主题比例 86.7% 其余 127 专家潜变量随机抽样 1.9% +84.7 个百分点
专家主题纯度:E57(前端)/ E1(几何)/ E76(算术与多项式) 主题归属比例(GPT-5.5 判定) 78.6% / 78.1% / 59.1% 随机基线 3.5% / 2.0% / 6.7% 分别高出约 75 / 76 / 52 个百分点
主导集重叠结构(层 4/30/46) 重叠最大的 10% 专家对承担的总交集份额 83.8% / 78.5% / 81.0% 均匀分布时应为 10% 重叠极度集中于少数成对专家($J>0.05$ 的对仅占 0.25%-0.57%)
SAE 重建质量(层 4/30/46) 未解释方差比例 FVU 12.6% / 25.1% / 7.6% 无外部基线;中间层最难重建,与 Gao et al. 的观察一致 层 30 误差较大,是该层结论的主要质量短板

局限与改进

作者承认三点局限:其一,分析继承 SAE 的不完美——层输出重建有误差(层 30 的 FVU 高达 25.1%),且一个真实特征可能被拆分到多个潜变量或被吸收进别的潜变量,潜变量不是干净基;其二,统计基于自选语料(Olmo 3 混合数据)而非 Qwen3 未公开的预训练数据,因此“专家领域分配反映训练数据配比”(借 Llama 3 公开的约 25% 数学推理 + 17% 代码配比旁证)只是猜想;其三,只报告了单个模型,结论普适性未知。我补充自己的观察:解释潜变量、判定主题归属、命名专家、划分领域四步全部由 GPT-5.5 完成,存在“用 LLM 验证 LLM 读数”的循环风险;仅分析了 48 层中的 3 层;$\tau = 0.2$ 和每专家 2000 潜变量的采样没有做鲁棒性扫描;方法只统计正贡献,意味着“抑制型”专家角色在结构上不可见;全文没有任何因果实验(如删除专家)来验证主导集确实对应功能影响。

独立分析的弱点

独立分析的弱点:(1) 缺乏因果验证——“移除或编辑专家主要影响其主导潜变量”只是作者留下的可检验假设,改进方向是做专家剪枝、合并与引导实验,直接测量下游表现与被支配潜变量激活的变化。(2) 评估闭环——GPT-5.5 既当解释器又当裁判又当汇总器,86.7% 对 1.9% 的纯度差可能部分来自解释器风格自一致而非模型结构;改进方向是抽样数百条解释交人类标注一致性,或换用不同模型做裁判。(3) 词频词云可能稀释低频关键主题——作者自己演示了 token 词云会淹没算法主题,按词频聚合的解释词云同理;改进方向是用主题聚类替代词频。(4) 层覆盖薄——仅 3/48 层,而中间层 SAE 的 FVU 最高(25.1%),恰是最脆弱的一层承担了大部分语义展示。(5) 贡献度量含 $g_j$ 因子,门控极小的专家即使方向高度对齐也难主导潜变量,可能低估低门控专家的专用功能;改进方向是补充剥离门控尺度的方向对齐度对照。(6) 静态语料统计未覆盖分布外输入(多语言、长上下文),无法回答 OOD 下分工如何迁移。

未来方向

作者提出的方向:把分析扩展到更多、更大的 MoE 模型以检验哪些观察具有普遍性;用同一工具比较不同路由目标与负载均衡损失如何塑造分工;改进 MLP 的特征分解方法以锐化 MoE 层的图景。基于本文成果可以自然延伸的方向:(1) 用主导集指导专家剪枝与合并——$J > 0.05$ 的成对专家(如层 30 的 83/105 标点对、77/107 乱码对)是合并的天然候选,可验证压缩后性能保持;(2) 特征级模型编辑与引导——定向增强或抑制某专家以精准影响其主导特征所对应的行为;(3) 大规模相关性研究,把专家-领域配比与多种模型的公开训练配比对照,检验“分配反映数据混合”假说;(4) 把支配图用作训练时的诊断与正则信号,鼓励或打散特定粒度的特化;(5) 扩展到有共享专家或细粒度专家的架构(如 DeepSeek-V3 的 256 专家),检验架构差异对分工粒度的影响;(6) 在预训练过程中周期性计算支配图,监控分工随训练的演化动态。

复现评估

开源程度较高:SAE 权重与分析代码已在 GitHub 公开(ByteDance-Seed/SAE-Interprets-MoE),模型 Qwen3-30B-A3B 公开可得,激活数据来自公开的 Olmo 3 语料(5/8 预训练、1/4 思维链、1/8 指令微调)。附录 I 给出全部训练细节(batch 8192、约 3.2B token、$\kappa$ 由 1000 衰减到 100、峰值学习率 $8 \times 10^{-5}$),附录 E-G、J 完整复刻了全部 GPT-5.5 提示词(解释、主题判定、命名、分组)。算力需求:需对 30B 模型前向约 3.2B token × 3 层转储激活,并训练三个 $2^{20}$ 潜变量的 SAE(单个编解码各约 20 亿参数),属多 GPU 数天级工程;解释阶段需对海量潜变量调用 GPT-5.5(每专家至多 2000 个 × 128 专家 × 多层),API 费用可观。总体难度中等偏上:流程与提示词齐全、无需训练原模型,但转储与解释开销不小;GPT-5.5 为商用 API,版本漂移可能使标签细节无法逐字复现。

相似论文推荐