概述
训练大规模混合专家模型长期是少数拥有深厚基础设施和分布式系统专业知识的专家的领域。对大多数开发者而言,挑战不在于构建更智能的模型,而在于如何高效地跨数百甚至数千个GPU进行扩展,同时控制成本。
为何大规模MoE训练困难
高效地大规模训练MoE模型需要解决几个相互关联的挑战:
- 专家并行:在不超出通信带宽的情况下,将数百名专家分配到多个GPU上。
- 令牌路由开销:快速高效地将令牌移动到正确的专家。
- 内存管理:对海量参数集进行分片,以适应GPU内存限制。
- 通信-计算融合:最大限度地减少全连接通信和令牌置换操作带来的延迟。
核心技术架构与优化
该库弥合了PyTorch原生分布式并行技术与加速技术之间的差距,为MoE创建了一个统一的高性能训练栈。
通过PyTorch分布式并行实现高效扩展
该库基于PyTorch分布式构建,可无缝扩展模型,使用:
- 完全分片数据并行:跨数据并行节点分片模型参数、梯度和优化器状态,以最小化内存使用。
- 专家并行:在GPU之间高效分配MoE专家,每个模型可容纳数百名专家。
- 流水线并行:将模型层拆分为多个阶段,以实现内存高效的多节点大模型训练。
- 上下文并行:对长序列进行分区,以支持扩展上下文训练。
利用Transformer引擎加速训练
使用Transformer引擎内核,该库加速了Transformer块,并支持不同的注意力机制,如多头潜在注意力、分组查询注意力和滑动窗口注意力。
通过Megatron-Core DeepEP和GroupedGEMM实现更智能的专家路由和计算
为了实现大规模的高效率,该库集成了来自Megatron-Core的高级令牌路由和专家计算组件,这些组件专为MoE训练设计。
- DeepEP令牌分发器:将令牌路由扩展到64个以上的专家并行度,具有高效的全连接通信和可选的置换/反置换融合功能。
- 面向MoE专家的GroupedGEMM:将多个本地专家计算聚合到一个批处理GEMM操作中。这减少了内核启动开销,增加了GPU占用率,并显著提高了吞吐量和硬件利用率。
突破性性能表现
下表显示了在DGX H100系统上使用BF16精度对各种主流MoE架构进行的预训练基准测试结果:
| 模型 | GPU数量 | 全局批大小 | 并行配置[TP,PP,CP,EP,VP,FSDP] | 优化技术 | TFLOPs/秒/GPU | 令牌/秒/GPU |
|---|---|---|---|---|---|---|
| DeepSeek V3 671B | 256 | 512 | [1,4,1,64,8,64] | TE + DeepEP | 250 | 1,002 |
| DeepSeek V3 671B | 1024 | 8192 | [1,4,1,64,8,256] | TE + DeepEP | 216 | 865 |
| Kimi K2 | 256 | 512 | [1,8,1,32,4,32] | TE + DeepEP | 189 | 924 |
| Qwen3 MoE 30B | 8 | 512 | [1,1,1,8,-,8] | TE + DeepEP | 277 | 12,040 |
| GPT-OSS 20B | 8 | 256 | [1,1,1,-,-,8] | TE + DeepEP + FlexAttn | 279 | 13,058 |
| GPT-OSS 120B | 64 | 512 | [1,1,1,-,-,64] | TE + DeepEP + FlexAttn | 231 | 7,626 |
该库在多样化的MoE架构和GPU数量上提供了行业领先的效率和可扩展性。模型可持续实现每GPU 190至280 TFLOPs/秒的处理能力,每秒处理高达13,000个令牌,展示了从8个到1,024个GPU的近线性扩展能力。
通过原生PyTorch分布式训练赋能开发者
通过利用原生PyTorch分布式并行技术,该库将高性能大规模MoE训练直接引入PyTorch生态系统。这种方法消除了对外部或专有模型并行库的依赖,为开发者提供了使用他们已熟知的工具和API进行扩展的完全灵活性。
为开发者带来的主要优势
- 更快的迭代周期:实现更高的吞吐量,以加速实验和模型开发。
- 更低的训练成本:更好的GPU利用率意味着每次训练运行所需的GPU小时数更少。
- 可扩展的性能:从8个GPU到超过1,000个GPU的一致、近线性扩展能力,支持灵活的基础设施规划。
- 原生PyTorch集成:利用PyTorch分布式,摆脱对外部模型并行框架的依赖,将所有工作流程保持在PyTorch内。
- 生产就绪:包含针对领先开源MoE架构的经过验证、久经考验的配置。
快速入门:训练和基准测试大型MoE模型
对于任何PyTorch开发者来说,开始使用该库都是快速且熟悉的。您可以使用提供的基准测试脚本和配置文件来复现结果,或使用优化后的性能训练自己的大规模MoE模型。
最低要求
建议至少使用8个GPU来有效地复现基准测试结果并运行微调实验。
运行基准测试示例
在八个GPU上对Qwen3 MoE 30B进行基准测试:
torchrun --nproc-per-node8nemo_automodel/recipes/llm/benchmark.py\--config examples/benchmark/configs/qwen3_moe_30b_te_deepep.yaml运行微调示例
微调Qwen3 MoE 30B:
torchrun --nproc-per-node8examples/llm_finetune/finetune.py --config examples/llm_finetune/qwen/qwen3_moe_30b_te_deepep.yaml未来展望
本次发布标志着利用加速PyTorch实现大规模混合专家训练民主化的一个重要里程碑。但这仅仅是个开始。目前正在积极进行以下工作:
- 扩展模型支持:添加新的MoE和混合架构。
- 更深层次的优化:进一步进行内核级和通信改进,以实现更高的效率。
- 技术深度解析:详细解释该库的MoE设计和性能技术。
- 更广泛的基准测试:在不同的硬件和集群配置上扩展性能验证。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)