专家混合(MoE)解释

专家混合(MoE)使得 Transformer 模型的预训练速度显著快于密集模型,并且相对于其总参数量实现更快的推理速度。这通过将密集前馈网络(FFN)层替换为稀疏 MoE 层来实现,后者仅为给定的输入 token 激活少量的“专家”。

MoE 模型用稀疏 MoE 层与路由机制的组合取代标准的 FFN 层。该架构包括两个主要组件:

  • 稀疏 MoE 层:不再是单一的密集层,这些层包含多个“专家”,每个专家通常是一个神经网络(常为 FFN)。这些专家可以以层级结构组织,专家本身也可以是 MoE。
  • 门控网络(路由器):一个学习得到的路由器决定将哪些 token 发送到哪个专家。路由器与网络的其他部分一起进行预训练,并且可以配置为将一个 token 发送到一个或多个专家。

虽然 MoE 提供了计算效率,但也带来了特定的权衡。它们需要大量显存,因为所有专家必须加载到内存中,即使在单次前向传播中只有少数专家是活跃的。例如,Mixtral 8x7B 需要足够的显存来容纳一个 47B 参数的模型,尽管在每个 token 使用两个专家时,其推理计算(FLOPs)更接近 12B 模型。

稀疏性与路由机制

稀疏性使模型能够在规模扩大时不成比例地增加计算量,方法是使用条件计算——仅在每个示例中激活系统的部分。

门控函数

路由由门控网络 $G$ 处理,决定激活哪些专家 $E$。在传统设置中使用 softmax 函数。更高级的方法,例如 Noisy Top-k Gating,引入可调噪声并选择前 $k$ 个值,以确保在训练期间更好的探索和负载均衡。

负载均衡与专家容量

为了防止出现“赢家通吃”的情况,即少数专家被过度使用而其他专家被忽视,MoE 采用:

  • 辅助损失:一种额外的损失函数,鼓励路由器在所有专家之间均匀分配 token。
  • 专家容量:限制单个专家可处理 token 数量的阈值。如果专家达到容量,token 可能被丢弃或通过残差连接发送到下一层。

MoE 实现的演进

GShard 与 Switch Transformers

Google 的 GShard 通过使用 top-2 门控并引入随机路由(第二个专家按其权重比例选择),将 Transformer 的规模扩展到超过 6000 亿参数。

Switch Transformers 进一步简化了这一思路,引入单专家策略。通过将每个 token 路由到唯一的专家,Switch Transformers 减少了路由器计算,将专家批量大小减半,并降低了通信成本,同时保持了质量。该架构实现了相较于 T5-XXL 的 4 倍预训练加速。

稳定性与专门化

训练的稳定性通过诸如 Router z-loss(在 ST-MoE 中引入)的技术来管理,该技术对进入门控网络的大 logits 进行惩罚,以降低舍入误差。

对专家专门化的研究表明,编码器专家往往专注于浅层概念(例如标点或专有名词),而解码器专家的专门化程度较低。在多语言设置中,由于负载均衡的需求,专家通常不会专门化到单一语言。

微调与指令微调

稀疏模型比密集模型更容易过拟合。有效的微调策略包括:

  • 更高的正则化:在稀疏层中使用更高的 dropout 率。
  • 选择性冻结:冻结 MoE 层而更新非 MoE 层,可在保持质量的同时加快训练。
  • 超参数调整:稀疏模型通常受益于更小的批量大小和更高的学习率。

最新研究表明,MoE 从 指令微调 中获益显著高于密集模型。在将 MoE 与等价的 T5 进行比较时,MoE 通过指令微调(Flan-MoE vs MoE)获得的性能提升大于密集模型的提升(Flan T5 vs T5)。

计算效率与并行性

并行策略

为处理 MoE 的海量参数,采用了不同的并行技术:

  • 专家并行:专家分布在不同的工作节点上。对于 MoE 层,token 被路由到包含相应专家的工作节点;对于非 MoE 层,则表现为数据并行。

硬件优化

  • 容量因子:在质量与通信成本之间的权衡。更高的容量因子提升质量,但会增加激活的显存占用和设备间通信。
  • 块稀疏操作:如 MegaBlocks 等项目用块稀疏操作取代传统的批量矩阵乘法,以处理不平衡的 token 分配而不丢弃 token,从而实现显著加速。

对比:稀疏 MoE 与 密集模型

特性 稀疏 MoE 密集模型
预训练计算 更高效 / 更快 效率较低
推理速度 更快(相对于总参数) 更慢(相对于总参数)
显存需求 高(必须加载所有专家) 低(相对于总参数)
最佳使用场景 高吞吐量,机器多 低吞吐量,显存受限

开源 MoE 生态系统

多个框架和模型将 MoE 引入开源社区:

  • 框架:MegaBlocks、Fairseq 和 OpenMoE。
  • 模型:Google 的 Switch Transformers(最高 1.6T 参数)、Meta 的 NLLB MoE(54B)以及 Mistral 的 Mixtral 8x7B,后者在推理速度上超越 Llama 2 70B。

Sources