用途
MoE Training 用于训练混合专家(Mixture of Experts,MoE)模型。根据资料,适用场景包括:在算力有限时训练更大模型(相比稠密模型约 5 倍成本降低);在不按比例增加算力的前提下扩展模型容量;获得比稠密模型更高的单位算力性能;为不同领域、任务或语言专门化专家;通过稀疏激活降低推理延迟(如 Mixtral 中仅 13B/47B 参数处于激活状态);实现 Mixtral 8x7B、DeepSeek-V3、Switch Transformers 等模型。资料列举的代表性 MoE 模型有 Mixtral 8x7B(Mistral AI)、DeepSeek-V3、Switch Transformers(Google)、GLaM(Google)、NLLB-MoE(Meta)。
主要能力
该技能围绕 MoE 训练提供以下内容:
- MoE 架构:由多个专家(FFN 网络,通常 8–128 个)、路由器/门控网络、Top-k 路由(每个 token 激活 k 个专家,k=1 或 2)以及负载均衡组成。
- 路由机制:Top-1 路由(Switch Transformer)、Top-2 路由(Mixtral)、专家选择路由(由专家选择 token,保证负载均衡)。
- 负载均衡:辅助损失(auxiliary loss)鼓励专家使用均匀;Router Z-Loss 提升稳定性。
- 专家并行:通过 DeepSpeed 配置将专家分布到多 GPU。
- 训练配置:提供 DeepSpeed MoE 配置示例与训练脚本示例。
- 推理优化:稀疏推理,仅激活 top-k 专家以节省显存。
使用方式
安装:
# DeepSpeed with MoE support
pip install deepspeed>=0.6.0
Megatron-DeepSpeed 用于大规模训练:
git clone https://github.com/microsoft/Megatron-DeepSpeed
cd Megatron-DeepSpeed
pip install -r requirements.txt
替代方案:HuggingFace Transformers
pip install transformers accelerate
资料提供了基础 MoE 层(MoELayer)的 PyTorch 实现示例,包含专家网络、门控网络、Top-k 路由、分数归一化与专家输出加权组合。DeepSpeed 训练脚本示例包含 --num-experts、--moe-expert-parallel-size、--moe-loss-coeff、--moe-train-capacity-factor、--moe-eval-capacity-factor、--fp16 等参数。DeepSpeed MoE 配置示例包含 moe.enabled、num_experts、expert_parallel_size、capacity_factor、drop_tokens、use_residual 等字段,以及 zero_optimization 的 stage 设置。
适用场景
- 算力受限下训练大规模模型。
- 需要扩展模型容量但不想按比例增加算力。
- 需要为不同领域/任务/语言专门化专家。
- 需要稀疏激活以降低推理延迟。
- 实现 Mixtral、Switch Transformer、DeepSeek-V3 等 MoE 架构。
限制与注意事项
资料给出以下实践建议与限制:
- 专家数量选择:小模型(1B–7B)用 8–16 个专家;中等模型(7B–30B)用 8–64 个;大模型(30B+)用 64–256 个。专家越多容量越大,但收益递减。
- 容量因子:训练用较低容量(如 1.25,会丢弃部分 token),评估用较高容量(如 2.0,不丢弃)。
- 学习率:MoE 模型需要比稠密模型更低的学习率(如稠密 6e-4,MoE 1e-4,低 3–6 倍),并延长衰减周期(约 1.5–2 倍)。
- 损失系数:辅助损失从 0.01 起,Router Z-Loss 从 0.001 起;若负载不均衡(最大/最小专家使用比 > 2.0)可提高辅助损失;若训练不稳定(梯度范数 > 10.0)可提高 z-loss。
- 常见陷阱:不要使用与稠密模型相同的学习率;不要缺少负载均衡;小数据集不要使用过多专家(过拟合风险)。
- 资料中的版本相关细节可能已过时,需以所安装版本的官方文档为准。
- 资料未提供具体的收费、价格、平台或效果保证信息。
参考资源
- DeepSpeed MoE Tutorial: https://www.deepspeed.ai/tutorials/mixture-of-experts-nlg/
- Mixtral Paper: https://arxiv.org/abs/2401.04088
- Switch Transformers: https://arxiv.org/abs/2101.03961
- HuggingFace MoE Guide: https://huggingface.co/blog/moe
- NVIDIA MoE Blog: https://developer.nvidia.com/blog/applying-mixture-of-experts-in-llm-architectures/
另见:references/architectures.md、references/training.md、references/inference.md、references/advanced-patterns.md。