MoE(混合专家)
一种神经网络架构模式,将模型参数划分为多个”专家”子网络,每个输入 token 仅激活其中少数几个专家,从而以较低的推理计算量获得巨大的总参数量。
是什么
MoE 将 Transformer 的 FFN 层替换为多个并行的”专家”子网络 + 一个路由网络(router/gating network)。路由器对每个 token 选择激活 Top-K 个专家,各专家的输出加权求和。模型的总参数量(稀疏参数)远超每个 token 实际使用的参数量(激活参数)。
关键参数:
- 总参数(sparse params):所有专家的参数之和
- 激活参数(active params):每个 token 实际计算的参数
- 专家数 N、Top-K、共享专家数
为什么重要
- 推理效率:激活参数远小于总参数,推理速度接近同规模密集模型,但能力达到更大密集模型的水平
- 训练效率:稀疏激活减少每个 token 的计算量
- 规模化路径:增大专家数可以线性扩展总参数量,同时保持推理成本基本恒定
- 开源模型的游戏改变者:Mixtral 8x7B(13B active)超越 Llama 2 70B,开创了 MoE 在开源领域的广泛应用
工作原理
y = Σ Softmax(TopK(x · W_g))_i · Expert_i(x)
- 路由:输入 token 经线性层
W_g得到每个专家的 logit,取 Top-K 做 softmax - 专家计算:被选中的 K 个专家分别处理该 token(通常是 SwiGLU FFN)
- 组合输出:专家输出按路由权重加权求和
- 负载均衡:辅助 loss 鼓励 token 均匀分配到各专家,避免”专家坍塌”
历史与演进
| 时间 | 里程碑 | 关键点 |
|---|---|---|
| 2017 | Shazeer et al. | 首次提出稀疏门控 MoE 层,137B 参数 |
| 2021 | GShard / Switch Transformer | MoE 在大规模 Transformer 中的工程落地 |
| 2024.01 | Mixtral 8x7B | 首个达到前沿水平的开源 MoE,每层 8 专家 Top-2 |
| 2024.05 | DeepSeek-V2 | 细粒度专家(160 路由 + 2 共享)+ MLA |
| 2024.07 | Qwen2 MoE | 密集→MoE Upcycling,64 路由 + 8 共享 |
| 2026.06 | A-MoME (AudioCALM) | 非对称模态专家:全模态共享 Self-Attn + FFN,仅语音额外加残差 FFN——容量按需求分配而非按模态数量 |
| 2025.10 | UniMoE-Audio | Dynamic-Capacity MoE + Top-P 路由:8 路由 + 2 共享 + 1 空专家,累计概率≥p 动态激活 1-6 个专家,空专家深层剪枝 TTS token |
专家到底专精什么?
Mixtral 论文的路由分析给出了反直觉的结论:专家并非按领域(数学/生物/代码等)专精,而是按语法结构路由。不同领域文档的专家分布几乎相同,仅合成数据集(DM Mathematics)在首末层有略微差异。连续 token 高度重复选择相同专家(高层65% vs 随机46%)。
常见误解
- “专家会自然按领域专精” — 实际发现路由更基于语法而非语义
- “MoE 推理一定更快” — 稀疏激活减少计算量,但路由开销和更大的内存占用(需加载全部专家)是代价
- “专家越多越好” — 过多专家导致负载均衡困难,需要 Device-limited routing 等技术
与相邻概念的区别
- 密集模型(Dense):所有参数对每个 token 都参与计算
- MoE vs 模型集成(Ensemble):MoE 的路由是端到端学习的稀疏激活,集成是独立模型输出组合
- SMoE vs MoE:Sparse MoE 强调仅激活少数专家的稀疏特性
变体:动态容量 MoE
传统 MoE 使用 Top-K 固定激活 K 个专家,每个 token 计算量完全相同。Dynamic-Capacity MoE(UniMoE-Audio, 2025.10)引入两类创新:
Top-P 路由
- 替代 Top-K:按累计概率阈值 p 选择专家,而非固定 K 个
I = argmin|I'| s.t. ΣP_i ≥ p(p=0.7)- 动态激活 1-6 个专家:复杂 token(音乐谐波帧)激活多个,简单 token(静音帧)激活最少
- 效果:计算资源的弹性分配,同等总参数下推理更高效
空专家(Null Expert)
- 无参数专家,输出零张量——允许 token 完全跳过计算
- 深层(25-32 层)大量剪枝 TTS token:模型学到语音在表示层面已”足够好”
- 固定 Top-K 无法实现此行为
与 A-MoME 的区别
| 维度 | Dynamic-Capacity MoE | A-MoME (AudioCALM) |
|---|---|---|
| 路由方式 | 学习式 Top-P 动态路由 | 确定性按模态标签路由 |
| 专家粒度 | 8 路由 + 2 共享 + 1 空 | 1 共享 FFN + 1 语音残差 FFN |
| 适用场景 | 任务粒度领域专精 | 模态粒度非对称容量 |
| 核心创新 | 动态容量分配 | 按需非对称加容 |