训练后 MoE 可通过自蒸馏跳过一半专家
Post-Trained MoE Can Skip Half Experts via Self-Distillation
本文提出零专家自蒸馏适应框架,将训练完成的静态混合专家模型转换为高效动态模型。该方法通过在每个混合专家层注入零输出专家,并利用原始模型作为冻结教师进行两阶段自蒸馏适应,以实现稳定的架构转换。在两个大型开源模型及11个基准测试上的实验表明,该方法能消除超过50%的专家计算量,同时仅带来极小的准确率损失,并显著提升端到端推理速度。
把训练好的MoE直接改成动态的,推理时跳过一半专家,速度提升20%而精度几乎没掉,做模型部署的值得认真看一下这个一行代码不改的蒸馏方案。
摘要
混合专家模型(MoE)通过稀疏专家激活高效地扩展语言模型,其动态变体进一步根据输入调整激活的专家数量,从而减少计算量。现有的动态 MoE 方法通常依赖于从头开始的预训练或针对特定任务的适配,而将完全训练好的 MoE 模型进行实际转换这一方向尚未得到充分探索。实现这种适配可以直接缓解推理成本,因为简单的 token 可以在服务过程中绕过不必要的专家。本文介绍了零专家自蒸馏适配(ZEDA),这是一个低成本的框架,能够将训练后的静态 MoE 模型转化为高效的动态模型。为了稳定这种架构转换,ZEDA 在每个 MoE 层中注入无参数的零输出专家,并通过两阶段自蒸馏来适配增强后的模型,同时利用原始 MoE 作为冻结的教师模型,并应用分组级平衡损失。在 Qwen3-30B-A3B 和 GLM-4.7-Flash 上,跨越数学、代码和指令遵循等 11 个基准测试中,ZEDA 在精度损失极小的情况下消除了超过 50% 的专家 FLOPs。它在两个模型上分别比最强的动态 MoE 基线高出 6.1 分和 4.0 分,并实现了约 1.20 倍的端到端推理加速。
1 引言
混合专家(MoE)架构通过在保持每个 token 计算量受限的同时增加模型容量,显著推动了大语言模型(LLM)的规模化发展 [lepikhin2020gshard, fedus2022switch, du2022glam, dai2024deepseekmoe, jiang2024mixtral]。在此基础上,一种我们称之为动态 MoE 的变体进一步引入了 token 级别的动态性,能够调整激活的专家数量,从而实现基于输入的计算预算分配 [jin2024moe++, team2025longcat, wu2025grove, guo2024dynamic, chaudhari2026moe, zeng2024adamoe]。多项研究表明,简单的 token 可以用更少的专家来处理,且不影响输出质量,这使得动态 MoE 成为实现推理效率提升的一条原则性路径 [lu2024not, jin2024moe++, team2025longcat, zeng2024adamoe, huang2024harder]。
现有的大多数动态 MoE 方法要么专注于从头开始预训练动态 MoE 模型 [jin2024moe++, team2025longcat, chaudhari2026moe],要么将预训练的基础模型适配为特定任务的动态 MoE [zeng2024adamoe],而将已完全训练的 MoE 模型进行迁移这一方向则基本未被探索。然而,在实际部署中,MoE 模型通常已经历了包含预训练和后期训练(如监督微调(SFT)、强化学习(RL)和在线策略蒸馏(OPD))的广泛训练流程 [qwen35blog, zeng2026glm5, deepseekai2026deepseekv4]。在本文中,我们将此类模型统称为后期训练 MoE。如果能够将这样一个已完成后期训练的静态 MoE 模型,在架构和主要训练均已确定的情况下,转化为更高效的动态版本,那么考虑到日益增长的推理服务成本和需求,由此带来的推理节省将具有巨大的实际价值。
然而,直接将现有的动态 MoE 方法应用于此类模型,可能会破坏在整个训练流程中精心校准的路由和能力分布。本文聚焦于探索:一个训练后的 MoE 模型,能否在不牺牲其已具备能力的前提下,以经济高效的方式迁移为更高效的动态 MoE。
我们提出了零专家自蒸馏适配(ZEDA),该方法能将训练后的 MoE 模型转化为动态 MoE,以极低的适配成本实现更快的推理速度。ZEDA 将无参数的零专家(zero experts)[jin2024moe++, team2025longcat]——其输出恒为零——注入到训练后 MoE 模型的现有专家池中。这在不改变激活数量的前提下,以零计算量的专家扩展了路由器的候选池,从而自然减少了活跃的正常专家数量。随后,通过一个包含 SFT [ouyang2022training] 和 OPD [gu2023minillm, agarwal2024policy, lu2025onpolicydistillation] 的两阶段自蒸馏过程,以原始 MoE 作为固定教师模型,对增强后的模型进行适配,以在新的动态路由机制下恢复性能。为使这一架构转换保持稳定,ZEDA 进一步引入了分组辅助损失(Group Auxiliary Loss),该损失在保留正常专家间已学得的路由结构的同时,调节正常专家与零专家之间的相对激活频率。
在 Qwen3-30B-A3B [yang2025qwen3] 和 GLM-4.7-Flash [zeng2025glm] 上,跨越数学、代码和指令遵循等 11 个基准的实验证明了 ZEDA 的有效性。我们的方法成功地将后训练的 MoE 模型转化为动态模型,在 8 块 NVIDIA H200 GPU 上,Qwen 耗时不到 31 小时,GLM 耗时不到 62 小时。这种适配消除了超过一半的专家计算,实现了约 20% 的推理加速,同时与原始模型相比仅带来微小的精度损失。ZEDA 在 Qwen 上平均比最强基线高出 6.1 分,在 GLM 上平均高出 4.0 分,并且在我们提出的变体中也取得了最佳的整体性能。通过详细的说明性可视化和分析,零专家激活的动态特性以及 ZEDA 的运行机制被清晰地揭示出来。以下是几个关键要点:
2 方法
我们提出了零专家自蒸馏适配(ZEDA),这是一种通过为每个 MoE 模块增加零专家,并通过自蒸馏对扩展后的模型进行适配,从而将后训练的 MoE 模型转化为推理速度更快、适配成本极低的动态模型的方法。接下来,我们在第 2.1 节介绍整体适配框架,然后在第 2.2 节介绍用于调节零专家利用率的组辅助损失函数。
2.1 适配框架
ZEDA 首先将输出恒为零的零专家 [jin2024moe++] 注入到后训练的 MoE 中,从架构上将其转化为一个动态模型,该模型每个 token 激活的正常专家数量各不相同。然后,以原始后训练 MoE 作为固定教师模型,通过两阶段自蒸馏对增强后的模型进行适配,从而得到一个性能损失可忽略不计、效率更高的动态 MoE。
零专家注入。
考虑一个后训练的 MoE 模型,其中每个 MoE 模块包含 个正常专家,并且每个 token 激活其中的 个。对于输入隐藏状态 ,路由器选择一个 top- 子集并生成 ,其中 是专家 的归一化路由权重。
ZEDA 引入了对所有情况都满足的额外专家,称为零专家。扩充后的专家池将路由器的候选范围从原来的数量扩展到新的数量,而 top-k 预算保持不变。动态 MoE 的输出变为:
| (1) |
其中 表示从 中选出的 top-k 集合, 是对应的路由权重。由于零专家不贡献任何计算量,选择它们会减少活跃的正常专家数量,从而在不修改正常专家参数的情况下实现依赖于 token 的计算。我们还在附录 B 中将零专家与另一种零计算量的替代方案——复制专家(即输出其输入)进行了比较,结果表明复制专家会导致尺度和方向上的不匹配。
在路由器初始化方面,正常专家的原始路由器参数保持不变。零专家的新参数从高斯分布中采样,该分布的均值和方差与同一模块中原始路由器参数的均值和方差相匹配,从而在插入新路由选项的同时,保留了训练后路由器 logits 的尺度。
两阶段自蒸馏。
随后,ZEDA 通过自蒸馏来适配增强后的模型,将原始 MoE 作为固定的教师模型。适配过程分为两个阶段:监督微调(SFT)和在线策略蒸馏(OPD)。设 为教师模型(原始 MoE)的分布, 为学生模型(增强后模型)的分布, 为用于适配的提示词集合。
- •
SFT 阶段在从教师模型 采样的回答上进行训练。训练损失为:
(2) 其中 是来自 的一条提示词, 是教师模型采样的回答, 是第 2.2 节中介绍的组辅助损失。
- •
随后的 OPD 阶段 [gu2023minillm, agarwal2024policy] 转向在线策略学习,即回答从当前学生模型中采样,而教师模型评估相同的轨迹以提供 token 级别的目标。遵循 Thinking Machines [lu2025onpolicydistillation] 的方法,我们将采样 token 的反向 KL 散度目标作为奖励信号,并在策略优化框架内对其进行优化,从而得到训练损失:
(3)
SFT 阶段稳定了从静态 MoE 到动态 MoE 的初始过渡,而 OPD 阶段则进一步在学生模型自身的 rollout 分布下,将学生模型与教师模型对齐。
2.2 分组辅助损失
ZEDA 引入了分组辅助损失,用于调节普通专家和零专家之间的相对激活频率,从而控制零专家激活比率。
辅助损失。
源自于原始的辅助负载均衡损失 [lepikhin2020gshard, fedus2022switch],该损失鼓励在所有专家之间进行均匀路由。通过批次定义如下:
| (4) |
这里, 表示批次中路由到专家 的 token 比例, 是分配给专家 在 上的平均路由概率, 是一个标量损失系数。然而,直接将 应用于 ZEDA 会带来问题。一个后训练的 MoE 模型在普通专家上表现出非均匀的、与输入相关的路由模式,强制实现专家级别的均匀性会破坏这些已习得的分布,从而降低模型性能。附录 C 展示了一个专门比较 和 的实验。
组负载均衡损失。
ZEDA 的目标是在保持普通专家之间相对路由结构的同时,调节零专家的利用率。这促使采用一种组级平衡策略,其中普通专家组成一个组 ,零专家组成一个组 ,平衡仅在这两个组之间进行。分组辅助损失定义为
| (5) |
| (6) |
是零专家组的相对权重, 越大, 越高。
类似于 ,最小化 会驱使两个组达到一个平衡状态,在该状态下,激活的普通专家和零专家的期望数量满足 ,从而得到一个目标值 。由于约束仅在组级别施加,它不会显式地扁平化普通专家组内的路由分布,这使得它更适合后训练 MoE 的适配。 驱使 趋向目标值,而另一个损失分量( 或 )则优化性能。在共同作用下,模型达到一个权衡点,导致 收敛到一个合适的值。
3 实验
3.1 实验设置
模型。
为了评估 ZEDA 在不同主干架构上的泛化能力,我们选取了两个经过后训练的 MoE 模型:Qwen3-30B-A3B [yang2025qwen3] 和 GLM-4.7-Flash [zeng2025glm]。在所有实验中,Qwen3-30B-A3B 始终使用思考模式。这两个模型在规模和专业专家配置上有所不同。Qwen3-30B-A3B 包含每个 token 激活的普通专家,而 GLM-4.7-Flash 则具有不同的配置。参照 LongCat [team2025longcat] 的做法,对于 Qwen3-30B-A3B 和 GLM-4.7-Flash,注入的零专家数量分别设置为 64 和 32。
评估设置。
为了全面评估后适应性能,我们在涵盖 3 个类别的 11 个基准上对 ZEDA 进行了评估。在数学推理方面,基准包括 AIME 24、AIME 25、AIME 26 [li2024numinamath]、GSM8K [cobbe2021training] 和 MATH-500 [lightman2023let]。在代码生成方面,基准包括 LiveCodeBench v5 (LCB v5)、LiveCodeBench v6 (LCB v6) [jain2024livecodebench]、HumanEval+ [liu2023your] 和 MBPP+ [liu2023your]。HumanEval+ 和 MBPP+ 是 EvalPlus [liu2023your] 引入的两个代码生成基准。在指令遵循方面,基准包括 IFEval [zhou2023instruction] 和 IFBench [pyatkin2025generalizing]。所有评估均采用温度为 0.6、top-p 值为 0.95、top-k 值为 20 的设置,最大生成长度遵循 Qwen3 设置 [yang2025qwen3] 为 38k tokens。对于 AIME24、AIME25 和 AIME26,我们报告 avg@32 以减少这些小型竞赛基准的方差;对于 4 个编码基准,报告 avg@8;对于所有其余基准,报告 avg@1。遵循 Qwen3 [yang2025qwen3] 和 IFBench [pyatkin2025generalizing] 的惯例,IFEval 和 IFBench 的结果分别报告为严格提示词准确率和宽松提示词准确率。
实现细节。
对于适配后的动态 MoE 的推理效率,(公式 5)中的相对权重设置为 2,这会将目标推向 50%,损失系数设置为 0.1。关于 和 的消融研究分别在第 4.3.1 节和第 4.3.2 节中呈现。自蒸馏数据总共包含 6 万条提示词。其中包括从 NVIDIA AceReason-1.1-SFT [liu2025acereason] 中随机采样的 1.7 万条数学提示词和 1.5 万条编码提示词,以及从 NVIDIA Llama-Nemotron-Post-Training-Dataset [bercovich2025llama] 中随机采样的 2.8 万条聊天提示词。在 SFT 阶段,学习率设置为 。后续阶段对 Qwen3-30B-A3B 采用学习率为 的采样 token OPD,对 GLM-4.7-Flash 采用学习率为 的采样 token OPD,批次大小为 16 条提示词 × 2 个采样响应,采样温度为 1.0,最大生成长度为 3.2 万个模型 token,并运行 320 个训练步骤。所有实验均在 slime [slime_github]、SGLang [zheng2024sglang] 和 Megatron [shoeybi2019megatron] 代码库以及 NVIDIA H200 和 H20 GPU 上进行。
基线方法。
AdaMoE [zeng2024adamoe] 和 [lu2024not] 中的动态跳过方法作为动态路由基线。我们进一步提出了三种变体来评估 ZEDA 各组件的有效性。ZEDASFT 仅应用 ZEDA 的 SFT 阶段,用于隔离 OPD 的贡献。为了验证动态专家选择机制,我们提出了朴素专家截断(NET),这是 ZEDA 的一个直接变体,直接将原始 MoE 模型中激活的专家数量减半。NET 与单独的 SFT 结合,或与 SFT 后接 OPD 结合,分别得到 NETSFT 和 NETSFT→OPD。
3.2 主要结果
性能。
表1总结了所有方法在涵盖数学推理、代码生成和指令遵循的11个基准测试上的表现。与原始的后训练MoE相比,ZEDA仅带来微小的平均准确率损失,同时消除了超过一半的专家计算量,甚至在IFBench等几个单独的基准测试上超越了原始模型,这证明了ZEDA生成的动态MoE模型的实际效用。在所有基线方法中,ZEDA在Qwen3-30B-A3B和GLM-4.7-Flash上都取得了最高的平均评估分数,表明其在不同架构上的有效性和鲁棒性。此外,ZEDA在所有三个变体(ZEDASFT、NETSFT和NETSFT→OPD)上均取得了更优的整体性能,证明了OPD和动态专家选择机制的贡献。此外,动态路由基线方法表现出严重的能力不平衡,其中AdaMoE在AIME 24等困难推理任务上崩溃,而Dynamic Skipping在代码生成上失败。ZEDA是唯一在所有领域都保持有竞争力性能的方法。最后,ZEDA在Qwen上取得了51.2%的平均值,在GLM上取得了53.0%的平均值,超过或持平于基线方法,表明ZEDA在计算量相当或更低的情况下实现了更好的性能。
| 方法 | 平均准确率 | 平均 | 数学 | 代码 | 指令遵循 | ||||||||
| AIME 24 | AIME 25 | AIME 26 | GSM8k | MATH-500 | LCB v5 | LCB v6 | HumanEval+ | MBPP+ | IFBench | IFEval | |||
| Qwen3-30B-A3B | |||||||||||||
| AdaMoE | |||||||||||||
| Dynamic Skipping | 72.5 | ||||||||||||
| NET | |||||||||||||
| NET | 79.5 | ||||||||||||
| ZEDA | 58.2 | 78.6 | 85.2 | ||||||||||
| ZEDA | 74.2 | 69.1 | 72.5 | 95.5 | 95.2 | 58.2 | 53.2 | 88.5 | 42.3 | ||||
| GLM-4.7-Flash | |||||||||||||
| AdaMoE | |||||||||||||
| Dynamic Skipping | 79.9 | 74.8 | 96.0 | ||||||||||
| NET | |||||||||||||
| NET | 74.3 | ||||||||||||
| ZEDA | 95.2 | 88.1 | |||||||||||
| ZEDA | 71.8 | 73.1 | 51.6 | 45.6 | 47.3 | 68.2 | |||||||
适配时间。
表2报告了ZEDA流程的训练时间。在8块H200 GPU上,ZEDA对Qwen3-30B-A3B的训练时间少于31小时,对GLM-4.7-Flash的训练时间少于62小时,这与先前的MoE预训练和后训练成本相比微不足道,证明了其成本效益。
| Qwen3-30B-A3B | 总计 | SFT数据生成 | SFT | OPD | GLM-4.7-Flash | 总计 | SFT数据生成 | SFT | OPD |
|---|---|---|---|---|---|---|---|---|---|
| 30.12 | 8.16 | 1.97 | 19.99 | 61.37 | 14.56 | 4.51 | 42.30 |
3.3 推理效率
ZEDA 在 Qwen 和 GLM 上分别实现了平均零专家激活率 51.2% 和 53.0%,有效将专家级计算量减半。我们进一步展示了由此产生的动态 MoE 所带来的实际推理加速效果。
推理效率评估通过将原始模型与其 ZEDA 适配版本在相同序列长度下进行比较,使用 SGLang [zheng2024sglang] 作为推理框架,最大并发数设置为 32。我们从训练数据中随机抽取 256 个样本构建测试集。为确保跨模型公平比较,对于每个目标序列长度,我们控制比较模型之间的输入和输出 token 总数完全相同,并与预期的测试序列长度匹配。此外,各模型的输入序列内容保持完全一致。我们在 1 块 H200 GPU 上报告吞吐量结果。我们同时测量了预填充和解码阶段的效率,并在附录 D 中提供了推理效率的理论分析。
如图 2 所示,ZEDA 在两个骨干模型上均带来了一致的推理增益,在预填充和解码阶段实现了约 20% 的加速,证明了其在提升模型推理效率方面的有效性。
4 分析
我们提供了关于零专家激活动态特性(4.1)、不同适配时长的影响(4.2)、零专家组权重消融实验(4.3.1)、系数消融实验(4.3.2)、训练阶段消融实验(4.3.3)、路由器概率重归一化消融实验(4.3.4),以及 ZEDA 在 OOD 任务上的表现(4.4)的详细分析。
4.1 零专家激活动态
ZEDA 将静态 MoE 模型转变为动态模型,其中不同的 token 展现出不同的值,对应不同的计算量。本节利用 Qwen3-30B-A3B 对这一 token 级别的动态特性进行更深入的探究。分析考察了该特性与蒸馏信号、响应模式、任务难度以及逐层行为之间的关系,旨在建立动态 MoE 中计算分配与其他可解释指标之间的联系。
教师-学生对数概率差与熵。
为了分析影响 token 级别 的因素,我们采样了 110 个提示词(每个基准测试 10 个),并使用经过 ZEDA 适配的动态 MoE 模型进行解码。对于每个生成的 token,我们记录学生模型的对数概率和熵,并计算同一 token 上教师模型的对数概率,从而得到教师-学生对数概率差。图 3 可视化了来自这 110 个提示词的所有 token。具有较大 或较高熵的 token 往往具有较低的 ,聚集在左上角。当教师-学生分布差距或模型不确定性较大时,动态 MoE 会内在地分配更多计算量,即激活更少的零专家。
响应模式。
将 110 个采样响应的逐 token 与解码文本对齐,揭示了 与响应模式之间的明确关系。图 4 展示了三个代表性示例。与自然文本相比,代码片段和数学表达式表现出明显更高的 ,表明模型内在地为这些结构化片段分配了更少的计算量。由于数学和代码 rollout 在思考过程之后通常包含许多此类片段,它们的平均 在响应末尾趋于增加,而指令遵循响应则表现出更均匀的分布,如图 5 所示。
任务难度。
进一步研究了 与任务难度之间的关系。表 3 报告了 ZEDA 在 MATH-500(提供人工标注的难度等级)和 AIME24(通常被认为更具挑战性的任务)上的 和性能。ZEDA 在 MATH-500 的所有五个难度等级上均实现了可比的性能和 ,且相应的 值仍与在 AIME24 上观察到的值接近。这表明 在很大程度上与任务难度无关。模型根据单个回复内的 token 级别特征来调整计算分配,而非根据任务本身的整体难度。
| MATH-500 | AIME 24 | |||||
| 等级 1 | 等级 2 | 等级 3 | 等级 4 | 等级 5 | ||
| 性能() | () | () | () | () | () | () |
层。
对于 110 个回复中的每一个,计算了动态模型中 48 个 MoE 层上的 。图 5 展示了 3 个代表性案例的逐层分布。尽管各层之间存在微小差异,但这些差异相对较小,且未表现出系统性模式。
连接各项观察结果。
上述分析表明,与任务难度无关,但与师生对数概率差(teacher-student logp-diff)密切相关。这可以通过自蒸馏训练数据的性质来解释。训练数据来源的多样性使得基于样本准确率的难度信号通常不可用。相比之下,更大的直接意味着更大的(公式 2)和(公式 3)。当这些任务损失占主导地位时,鼓励更高值的相对影响会减弱,从而导致此类 token 的降低。此外,与熵和响应模式的相关性与先前的研究结果一致。学生模型熵较高的 token 往往表现出更大的 [ko2026scaling],而低熵 token 通常是代码或数学表达式 [wang2025beyond]。
4.2 适应成本的影响
为了研究零专家适配(zero expert adaptation)的扩展趋势,我们在 SFT 阶段跟踪了平均基准分数和。如图 6(左)所示,随着 SFT 数据量和 GPU 时长的增加,这两个指标呈现出相似的变化趋势:先是快速上升,随后在大约 6 万条提示词处趋于收敛。这一趋势表明,大多数有用的适配发生在相对较早的阶段,此时路由器正在学习如何在保持主干网络原有能力的同时,整合注入的零专家(zero experts)。在此之后,额外的监督适配主要提供增量式的改进。
这些实证结果验证了我们采用 6 万条自蒸馏提示词的设置,因为这一规模达到了性能平台期和稳定的路由模式。观察到的“双重饱和”现象凸显了 ZEDA 的样本效率,表明修改后的架构能够以可承受的后训练成本达到稳定且高性能的状态。
4.3 ZEDA 设计的消融研究
4.3.1 和的影响
为了探究群体级平衡强度与零专家激活比例的影响,我们改变了零专家群体权重,并分析了其对模型性能和路由的影响。如图 6(右)所示,单调递增会提升该指标,但会导致基准分数逐渐下降。这证实了该参数是 ZEDA 中质量-效率权衡的有效控制旋钮。实验结果表明,该参数值能实现最佳平衡,在保持竞争性性能的同时,零专家利用率显著高于其他设置。相比之下,将该参数进一步推高至 3 或 4 会导致更明显的准确率下降。因此,我们选择该值作为首选工作点。
4.3.2 系数消融实验
| 平均 | 平均 | 数学 | 代码 | IF | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 准确率 | AIME 24 | AIME 25 | AIME 26 | GSM8k | MATH-500 | LCB v5 | LCB v6 | HumanEval+ | MBPP+ | IFBench | IFEval | ||
公式 5 中的损失系数控制着群体辅助损失对整体训练目标的影响程度。为了探究其效果,我们在 Qwen3-30B-A3B 上进行了 ZEDA 的 SFT 阶段实验,将 在 {0.001, 0.01, 0.1, 1.0} 范围内变化,同时将相对权重固定为 2,对应 50% 的目标值。如表 4 所示,当 取值为 0.1 时,观测到的 最接近由 设定的 50% 目标值,同时平均准确率与原始模型相当。这表明该设置能最有效地实现预期的零专家利用率。基于这些发现,在后续所有实验中, 均设为 0.1。
4.3.3 训练阶段的影响
完整的 ZEDA 流程采用了两阶段自蒸馏策略。为了评估两个阶段是否都必要,我们比较了三种变体:(1) 仅 SFT,(2) 仅 OPD,以及 (3) 完整的 SFT-OPD 流程。为确保公平比较,仅 SFT 和仅 OPD 的变体通过增加训练步数来训练,使其总计算成本达到或超过完整流程。如表 5 所示,完整的 SFT-OPD 流程始终优于两种单阶段方案,其中仅 OPD 表现最差。这可能是因为 SFT 首先建立了稳定的零专家路由模式,否则 OPD 必须同时学习路由决策并生成连贯的回复,从而加剧了适应难度。一旦 SFT 稳定了路由器,OPD 就可以专注于在策略内 rollout 下缩小剩余的分布差距,从而获得任一阶段单独都无法实现的进一步收益。
| 平均准确率 | 平均 | 数学 | 代码 | IF | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AIME 24 | AIME 25 | AIME 26 | GSM8k | MATH-500 | LCB v5 | LCB v6 | HumanEval+ | MBPP+ | IFBench | IFEval | |||
| SFT | |||||||||||||
| OPD | |||||||||||||
| SFT OPD | |||||||||||||
4.3.4 路由器概率重归一化的影响
| 平均准确率 | 平均 | 数学 | 代码 | IF | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AIME 24 | AIME 25 | AIME 26 | GSM8k | MATH-500 | LCB v5 | LCB v6 | HumanEval+ | MBPP+ | IFBench | IFEval | |||
| 带重归一化 | |||||||||||||
| 不带重归一化 | |||||||||||||
如公式 1 所定义,零专家注入后的动态 MoE 输出为 。在此公式中,剩余正常专家的路由权重在零专家从 top- 选择中被移除后并未进行重归一化。另一种方案是通过重归一化将路由器概率重新分配给活跃的正常专家。具体来说,重归一化后的输出变为
| (7) |
其中路由权重被重新缩放,使其在活跃的正常专家上总和为 1。
为了评估这一设计选择,我们在相同超参数下,对 Qwen3-30B-A3B 分别进行了带重归一化与不带重归一化的 SFT 训练。如表 6 所示,与默认公式相比,重归一化导致了一致的准确率下降。一个可能的原因是,在原始模型中,预训练阶段对 top-专家上的路由权重之和进行了校准,以产生特定量级的输出。而重归一化人为地放大了活跃普通专家的路由权重,从而膨胀了 MoE 残差分支的有效规模。
4.4 分布外泛化
为了评估零专家适配是否在分布内评估套件之外仍能保持能力,我们进一步在所有方法上测试了两个分布外(OOD)基准:MMLU-Redux [gema2025we] 和 GPQA-Diamond [rein2023gpqa]。这些基准主要评估知识密集型问答和科学推理,相对于自蒸馏训练数据所代表的数学、代码和指令遵循领域而言,属于分布外数据。除非另有说明,评估设置遵循第 3.1 节。偏差仅限于最大生成长度 32k tokens、GPQA-Diamond 采用 avg@8、MMLU-Redux 采用 avg@1。表 7 显示,ZEDA 在 Qwen3-30B-A3B 和 GLM-4.7-Flash 上均能持续保持具有竞争力的 OOD 准确率,同时维持较高的零专家利用率(平均分别为 47.2% 和 50.0%),这表明在分布偏移下实现了良好的质量-效率权衡。这些结果进一步证明了 ZEDA 强大的分布外泛化能力。
| 方法 | 平均准确率 | 平均 | MMLU | GPQA | 方法 | 平均准确率 | 平均 | MMLU | GPQA |
|---|---|---|---|---|---|---|---|---|---|
| Qwen3-30B-A3B | GLM-4.7-Flash | ||||||||
| ZEDA | ZEDA |
5 相关工作
5.1 混合专家大语言模型中的动态专家激活
混合专家模型(MoE)已成为一种有效的架构,通过增加模型容量同时保持每个 token 的计算量可控,来扩展大语言模型 [shazeer2017outrageously, lepikhin2020gshard, fedus2022switch, du2022glam]。后续研究 [zoph2022st, dai2024deepseekmoe, jiang2024mixtral] 进一步改进了稀疏专家训练和专业化,使 MoE 成为大规模语言建模的实用设计。然而,在标准 MoE 架构中,路由通常受固定的 top- 策略约束,这意味着虽然专家激活取决于输入,但计算预算在不同 token 之间基本保持静态。
为解决这一局限,先前的研究主要沿着两个方向展开。第一个方向通过减少专家冗余或激活计算量来提升效率,可进一步细分为专家剪枝 [lu2024not, liu2024efficient]、合并 [li2023merge, chen2024retraining] 和压缩 [li2023merge, chen2025eac, zhang2025diversifying, hao2026lightmoe]。另一个方向则用动态专家激活取代静态的 top- 路由策略,实现基于 token 级别的、与输入相关的计算预算分配 [lu2024not, jin2024moe++, zhou2022mixture, huang2024harder, zeng2024adamoe, yue2024ada, guo2024dynamic, sun2026expert]。早期工作通过允许不同 token 激活的专家数量可变(要么通过专家选择的 token 分配 [zhou2022mixture],要么将更多专家分配给更难的输入 [huang2024harder]),放宽了固定基数的假设。近期工作将这些方法适配到现代自回归 MoE 大语言模型:AdaMoE [zeng2024adamoe] 引入了空专家,使得实际激活的专家数量可以在对标准路由进行最小改动的情况下变化;Ada-K Routing [yue2024ada] 显式学习与 token 相关的专家路由;DynMoE [guo2024dynamic] 联合自动调整专家总数和每个 token 的激活预算;Expert Threshold Routing [sun2026expert] 用基于阈值的激活取代固定的 top- 选择,以获得因果性的可变大小专家集并改善负载均衡;MoE++ [jin2024moe++] 通过引入零计算专家,将动态路由扩展为动态计算路径选择,允许某些 token 绕过昂贵的 FFN 计算。动态激活也可以从部署角度引入,通过推理时专家跳过 [lu2024not] 实现,即在推理时有条件地绕过选定的专家,而无需从根本上改变底层路由器。
与这些方法不同,我们研究了一种成本更低的动态专家激活形式,该形式从后训练阶段开始,而非依赖于昂贵的重新预训练或大幅度的路由器重新设计。我们的方法完全在后训练阶段运行,并遵循 MoE++ [jin2024moe++] 的零计算专家范式,该范式已在美团 LongCat-Flash [team2025longcat] 的工业规模部署中得到验证。这种设计避免了对底层 MoE 模型进行实质性的架构修改,使其在实际适配和部署中特别具有吸引力。
5.2 自蒸馏
知识蒸馏最初是作为一种师生框架被引入的,在该框架中,学生网络从更强的教师网络的软化输出分布中学习 [hinton2015distilling]。这一范式已广泛扩展到语言建模领域,从神经文本生成中的序列级蒸馏 [kim2016sequence]、自回归语言模型中的有监督蒸馏 [sanh2019distilbert],到近期利用大语言模型进行的基于推理增强的蒸馏 [hsieh2023distilling]。更近期,针对语言模型的在线策略蒸馏方法认为,标准蒸馏本质上是离策略的,因为学生是在教师生成的轨迹上训练,却在自身生成的内容上进行测试。为减少这种不匹配,MiniLLM [gu2023minillm] 和 GKD [agarwal2024policy] 等方法在学生采样的序列上应用教师监督,这一视角在近期从业者关于语言模型后训练的讨论中也得到了强调 [lu2025onpolicydistillation]。与此同时,自蒸馏已被证明即使在没有外部教师的情况下也能提升性能 [furlanello2018born, zhang2019your]。更近期的研究进一步探索了在线策略自蒸馏,并展示了其在推理和持续学习等场景中的潜力 [zhao2026self, shenfeld2026self, hubotter2026reinforcement]。
除了能力提升和任务特定适配之外,近期研究还探讨了在面向更高计算效率的架构适配场景中应用自蒸馏技术。RAD [hoshino2025rad] 和 HALO [chen2026hybrid] 将自蒸馏作为一种原则性机制,用于将标准全注意力层转化为计算效率更高的替代方案,从而在保持模型性能的同时,显著提升推理效率。LaDiMo [kim2024ladimo] 采用逐层蒸馏技术,将稠密模型转化为稀疏 MoE 架构,促进了高效的稀疏架构适配。然而,现有工作主要聚焦于静态架构转换,对于利用自蒸馏实现高效动态 MoE 架构的关注有限。特别是,引入基于策略的自蒸馏来减少 MoE 模型中冗余专家激活的问题仍未得到充分探索,这构成了当前文献中的一个关键空白。
6 结论
本研究提出了 ZEDA,一个轻量且高效的框架,通过零专家注入和两阶段自蒸馏,将训练后的静态 MoE 模型迁移为动态 MoE 模型。借助分组辅助损失函数,ZEDA 在保持原始 MoE 精细路由分布的同时,调控计算资源分配。跨多种架构和基准的实证评估表明,ZEDA 消除了超过一半的专家计算量,并在对模型性能影响极小的情况下,实现了显著的推理加速。这些发现验证了训练后的 MoE 模型可以通过自蒸馏适配为高效的动态模型,为提升大规模 MoE 系统在多样化领域的部署效率提供了一种实用方案。
参考文献
附录 A 局限性与未来工作
缺乏更大规模 MoE 部署。
尽管我们在 300 亿参数规模的 MoE 模型上展示了一致的改进,但由于计算资源限制,我们尚未对更大规模的 MoE 模型进行评估。
缺乏长周期智能体任务。
我们的实验评估仅限于标准的后训练任务,并未涵盖智能体工作负载。其中一个促成因素是,目前成熟的开源智能体基础设施和训练方案较为有限。
长序列长度下的加速衰减。
除正文报告的结果外,我们还评估了如表 8 所示的序列长度。随着序列长度增加,加速效果逐渐减弱。尽管如此,即使在常用的长上下文设置下,ZEDA 仍能实现约 20% 的加速,展示了其实用性。此外,ZEDA 在诸如 DeepEP [deepep2025] 等先进通信框架上展现出更大的潜力,我们计划在未来的工作中将其集成进来。
| 模型 | 指标 | 预填充 | 解码 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 2048 | 4096 | 6144 | 8192 | 2048 | 4096 | 6144 | 8192 | ||
| Qwen3-30B-A3B | 加速比 | 1.21x | 1.20x | 1.19x | 1.18x | 1.25x | 1.24x | 1.21x | 1.19x |
| 吞吐量 | 71.43/58.86 | 62.53/51.97 | 58.09/48.75 | 51.63/43.92 | 2.49/1.99 | 2.39/1.93 | 2.22/1.82 | 2.07/1.74 | |
| GLM-4.7-Flash | 加速比 | 1.36x | 1.31x | 1.27x | 1.26x | 1.22x | 1.20x | 1.19x | 1.19x |
| 吞吐量 | 47.78/35.11 | 39.42/30.20 | 34.37/27.06 | 32.36/25.73 | 1.91/1.57 | 1.88/1.56 | 1.80/1.51 | 1.76/1.48 | |
附录 B 零专家与复制专家
零专家的一种替代方案是复制专家,其输出等于输入,计算成本可忽略不计。在本节中,我们论证了零专家是将后训练 MoE 模型适配到动态架构时的更优设计。
与零专家相比,复制专家会对原始模型引入更强的扰动。假设路由器参数化相同,使用零专家的动态 MoE 模块与使用复制专家的动态 MoE 模块的输出为:
| (8) |
其中 和 分别是复制专家模型中的常规专家组件和复制组件。零专家实现了真正的专家省略,而复制专家则引入了一个额外项,而非空操作。
为了研究零计算专家类型的影响,我们在 Qwen3-30B-A3B 上比较了两种后训练适配变体,它们在训练数据、SFT 配方和路由正则化方面完全相同,唯一的区别在于插入的零计算专家是实例化为复制专家还是零专家。对于这两种变体,路由正则化器均为公式 (5) 中的分组辅助损失,其系数和分组权重与第 3.1 节中使用的设置一致。我们报告了平均准确率、插入的零计算专家的平均激活率,以及在五个数学推理基准上的表现。表 9 显示,尽管激活率几乎相同( 对比 ),但复制专家类型的表现明显差于零专家类型。零专家类型在很大程度上保留了原始模型的数学推理能力,而复制专家类型则导致在所有五个基准上的性能严重下降。这种差距在更具挑战性的 AIME 任务上尤为明显,复制专家类型在 AIME 24、AIME 25 和 AIME 26 上分别仅达到 、 和 。这些实证结果表明,对于将后训练 MoE 模型适配为动态计算,零专家类型比复制专家类型更适合。
| 方法 | 平均准确率 | 平均 | 数学 | ||||
|---|---|---|---|---|---|---|---|
| AIME 24 | AIME 25 | AIME 26 | GSM8K | MATH-500 | |||
| Qwen3-30B-A3B | |||||||
| 复制专家 + | |||||||
| 零专家 + | |||||||
我们提取了 MoE 块的隐藏状态输出,并进行了以下实验,从两个互补的角度进一步分析为什么复制专家是有害的:
- •
尺度失配。图 7 左面板显示,完整复制专家输出的范数失配程度远大于零专家输出与原始输出之间的失配。进一步分解表明,正常专家分量的失配程度低于复制分量,但仍始终高于零专家输出的失配程度。这表明复制分量是尺度失配的主要来源,并且还将正常专家分量拉离了原始尺度。
- •
方向失配。图 7 右面板显示了方向空间中的相同趋势。零专家输出与原始输出保持良好对齐,而完整复制专家输出则表现出明显的方向失配。复制分量在各层中始终保持严重失配,而正常专家分量的失配程度则从浅层到深层逐渐增大。这表明复制分量是方向失配的主要原因,并且随着深度增加,它会逐步将正常专家分量拉离原始方向。
附录 C 辅助损失对比
实验设置。
为了隔离第 2.2 节中路由正则化器的影响,我们比较了 Qwen3-30B-A3B 上的三种零专家适配变体,它们在架构和 SFT 适配方案上完全相同,仅在平衡目标上有所区别:一种使用公式 (4) 中的标准专家级辅助损失,另外两种使用公式 (5) 中提出的分组辅助损失。除此之外,实验设置与第 3.1 节中 SFT 实现的细节相同。特别地,所有变体的辅助损失系数均设为 0.1。对于分组辅助损失,零专家分组的相对权重分别设为 1.0 和 2.0。我们在五个数学推理基准上报告了结果。
| 方法 | 平均准确率 | 平均 | 数学 | ||||
|---|---|---|---|---|---|---|---|
| AIME 24 | AIME 25 | AIME 26 | GSM8K | MATH-500 | |||
| Qwen3-30B-A3B | |||||||
| 零专家 + | |||||||
| 零专家 + | |||||||
| 零专家 + | |||||||
结论。
与原始辅助损失相比,两种分组辅助损失变体均带来了显著改进,表明分组级别平衡在不同设置下均具有稳健的收益。具体而言,将其替换为 at 后,平均准确率从 提升至 ,几乎恢复了原始 Qwen3-30B-A3B 的 性能,同时保持了相似的零专家激活比例。将分组权重增加至 后, 进一步升至 ,同时保持了 的强劲平均准确率,这表明存在清晰的质量-效率权衡。
这些结果与第 2.2 节的设计动机一致。后训练的 MoE 模型在常规专家上表现出非均匀、依赖于输入的路径选择模式,而强制实现专家级别的均匀性会破坏这些已习得的路径选择分布,从而严重损害模型性能。相比之下,分组辅助损失仅调节常规专家组与零专家组之间的竞争,从而在通过 实现可控的零专家利用率的同时,保留了常规专家内部的相对路径选择结构。
附录 D 理论 FLOPs 分析
在本节中,我们分析了原始 MoE 模型以及经 ZEDA 适配的模型在预填充和解码阶段的理论 FLOPs。我们重点关注主要的矩阵乘法项,并忽略归一化、残差连接、激活函数、路径选择 top- 选择以及 softmax 开销等低阶运算。对于矩阵乘法 ,我们将其计算成本计为 FLOPs。所有表达式均按每个 Transformer 层报告。当所有层共享相同配置时,乘以层数不会改变 ZEDA/原始 FLOP 比率。
本节使用的符号汇总于表 11。
| 符号 | 描述 |
|---|---|
| 所分析阶段的序列长度 | |
| 隐藏层大小 | |
| 注意力中间层大小 | |
| GQA 中 KV 头与查询头的比例 | |
| 专家中间层大小 | |
| 常规专家数量 | |
| 零计算专家数量 | |
| 每个 token 激活的专家数量 | |
| 激活的零专家比例 |
D.1 共享 MoE 成本分解
MoE FFN 和路由器的计算成本在两个阶段中形式相同;唯一的区别在于当前前向传播中处理的 token 数量。用该 token 数量表示。对于原始 MoE 模型,每个 token 激活个常规专家,每个专家包含上投影、门投影和下投影。因此,专家 FFN 和路由器的计算成本为
| (9) |
对于 ZEDA 模型,只有被激活专家中的一部分执行 FFN 计算,而路由器同时对常规专家和零计算专家进行评分。因此,
| (10) |
在预填充阶段,。在使用 KV cache 的解码阶段,每次前向传播处理一个新生成的 token,总解码成本通过对所有解码步骤求和得到。
D.2 预填充阶段
对于分组查询注意力(GQA)[ainslie2023gqa],预填充阶段并行处理所有 token。因此注意力成本由五部分组成:查询投影、键/值投影、所有 token 对上的查询-键分数计算、注意力值聚合以及输出投影。这些项的总和为
| (11) |
将代入方程 (9) 和 (10),然后加上方程 (11) 中的预填充注意力项,即可得到原始模型和 ZEDA 模型的总预填充 FLOPs。在两个表达式中,前两项来自注意力机制,第三项是 MoE FFN 成本,最后一项是路由器成本:
| (12) |
对于 ZEDA 模型,注意力项保持不变,而专家 FFN 成本减少了因子,路由器成本则因路由器现在对个专家进行评分而增加:
| (13) |
由方程 (12) 和 (13) 得到的相应 FLOP 比率为
| (14) |
D.3 解码阶段
在解码阶段,我们假设采用标准 KV cache,并分析一个仅解码、生成个 token 的过程。与预填充情况类似,注意力成本包括查询投影、键/值投影、分数计算、注意力值聚合和输出投影。不同之处在于,在解码步骤处,只处理一个新 token,并且分数计算和注意力值聚合各自涉及个缓存的 token,而非所有 token。将所有解码步骤的每步成本求和,得到
| (15) | ||||
将所有解码步骤中每个 token 的 MoE 成本(公式 (9) 和 (10))代入,并加上公式 (15) 中累积的注意力成本,即可得到总解码 FLOPs。与预填充情况类似,前两项对应注意力,第三项是 MoE FFN 成本,最后一项是路由成本:
| (16) |
对于 ZEDA 模型,解码注意力项再次与原始模型相同,而 MoE 分支的差异方式与预填充阶段完全一致:只有一部分被激活的专家产生 FFN 成本,并且路由器的输出从 扩展到:
| (17) |
因此,由公式 (16) 和 (17) 得到的解码阶段 FLOP 比率为:
| (18) |
D.4 数值结果
我们使用表 12 中 Qwen3-30B-A3B 的配置 [yang2025qwen3] 来实例化公式 (14) 和 (18) 中的预填充和解码比率。
为了便于与实测结果直接比较,我们将公式 (14) 和 (18) 中的 FLOP 比率取倒数,转换为理论加速比。表 13 报告了 和 对应的预填充和解码加速比,以及相应的实测结果。
| 长度 | 预填充加速比 | 解码加速比 | ||
|---|---|---|---|---|
| 理论值 | 实测值 | 理论值 | 实测值 | |
| 1024 | 1.403x | 1.141x | 1.443x | 1.233x |
| 2048 | 1.341x | 1.214x | 1.403x | 1.252x |
| 3072 | 1.296x | 1.203x | 1.370x | 1.238x |
| 4096 | 1.261x | 1.203x | 1.341x | 1.236x |
| 5120 | 1.234x | 1.202x | 1.317x | 1.228x |
| 6144 | 1.212x | 1.192x | 1.296x | 1.215x |
| 7168 | 1.194x | 1.176x | 1.278x | 1.210x |
| 8192 | 1.178x | 1.175x | 1.261x | 1.185x |
从表 13 中可以明显看出两个趋势。
- (i)
在两个阶段中,加速比均随序列长度增加而衰减。在该模型下,预填充阶段的理论加速比从 降至 ,而解码阶段的理论加速比在同一范围内从 降至 。实验结果与这些理论预测基本吻合:在两个阶段中,实测加速比均表现出随序列长度单调衰减的相同趋势,但由于实现开销以及 FLOP 分析未涵盖的计算成本,实测值始终低于理论值。
- (ii)
在相同长度下,解码阶段的加速比始终高于预填充阶段。对于固定的 ,解码阶段中不变的注意力计算成本低于预填充阶段,因此 MoE 计算量的减少在总 FLOPs 中占比更大,从而转化为更高的整体加速比。这一排序在所有评估长度的实验结果中均得到一致体现。
来源:HuggingFace Daily Papers(社区热门论文) · arxiv.org