使用 PyTorch 和 TorchTitan 在欧洲公共基础设施上训练万亿参数 MoE 模型
- 作者

- 姓名
- Nino
- 职业
- Senior Tech Editor
长期以来,大语言模型 (LLM) 的预训练领域一直被拥有专有且高度耦合硬件集群的科技巨头所垄断。然而,最近由欧洲研究人员联盟与 PyTorch 团队共同实现了一个重要的里程碑:在共享的公共基础设施上成功完成了 1.1 万亿参数混合专家 (MoE) 模型的预训练。这一壮举利用了位于意大利的 Leonardo 超级计算机,证明了 PyTorch 与新兴的 TorchTitan 库相结合,可以克服高延迟互连和共享文件系统限制等传统瓶颈。
向大规模混合专家模型 (MoE) 的转变
随着模型规模向万亿参数迈进,标准稠密 Transformer 的计算成本变得极其昂贵。混合专家 (MoE) 架构(例如驱动 DeepSeek-V3 或 Mixtral 的架构)通过为任何给定的输入令牌仅激活总参数的一小部分来提供解决方案。虽然这提高了推理效率,但它在训练中引入了巨大的复杂性。具体而言,MoE 模型需要“专家并行”(Expert Parallelism, EP),即不同的专家托管在不同的 GPU 上,这需要高带宽的“全对全”(All-to-All) 通信模式。
对于希望将这些强大的 MoE 能力集成到应用程序中而又不想承担天文数字般的训练成本的开发者来说,n1n.ai 提供了一个通向世界上最强大的 LLM API 的精简门户,确保即使是万亿参数的逻辑也可以通过单一集成点访问。
TorchTitan:现代模块化扩展的利器
从历史上看,训练这种规模的模型需要像 Megatron-LM 这样的单体框架。虽然功能强大,但这些框架通常难以定制。TorchTitan 代表了范式的转变。它是一个建立在 PyTorch 原生分布式基元(FSDP2、张量并行、流水线并行)之上的、干净且模块化的代码库。
TorchTitan 支持“4D 并行”,这对于 1.1T MoE 的运行至关重要。4D 策略包括:
- 数据并行 (FSDP2):在数据并行等级之间分片模型状态以节省内存。
- 张量并行 (TP):将单个权重矩阵拆分到多个 GPU 上,以处理巨大的隐藏维度。
- 流水线并行 (PP):将模型层划分为不同的阶段,以减少每个设备的内存占用。
- 专家并行 (EP):专门针对 MoE,确保专家得到高效分配,以最小化通信开销。
克服 Leonardo 超级计算机的基础设施限制
作为 EuroHPC 计划的一部分,Leonardo 超级计算机提供的环境与企业专用集群大不相同。它使用配备 NVIDIA A100 GPU 的 Atos BullSequana XH2000 架构。在这样的共享基础设施上,主要的挑战是互连。与私有实验室中超低延迟的 InfiniBand 设置不同,共享公共集群经常面临更高的竞争和波动的延迟。
为了实现稳定的模型算力利用率 (MFU),团队利用 PyTorch 的 DeviceMesh 创建了一个分层拓扑。通过在单个节点内嵌套 TP,并在节点间应用 EP 和 FSDP,他们最小化了跨节点通信瓶颈的影响。这种精细化的控制正是 n1n.ai 等平台对生态系统变得至关重要的原因;它们抽象了底层基础设施的复杂性,同时提供了对生成模型的高性能访问。
技术实现:内存与通信优化
训练一个具有 {num_experts: 64} 且隐藏层大小 < 8192 的 1.1T 模型需要极其细致的内存管理。团队在 TorchTitan 中实施了几项关键优化:
- 选择性激活检查点 (Selective Activation Checkpointing):团队没有为反向传播存储所有中间激活,而是仅重新计算了内存消耗最密集的层。这在对吞吐量影响极小的情况下,将内存使用量减少了近 40%。
- FP8 训练:利用现代 GPU 的硬件能力,团队在特定内核中集成了 FP8 精度,显著加快了 MoE 路由器中的 GEMM 操作。
- 异步全对全 (Asynchronous All-to-All):通过将专家路由通信与专家本身的计算重叠,研究人员隐藏了大部分网络延迟。
性能基准测试
结果令人印象深刻。在 128个节点(512个 A100 GPU)上,1.1T MoE 模型的吞吐量足以与规模小得多的稠密模型媲美。模型算力利用率 (MFU) 稳定保持在 45% 以上,这对于共享公共基础设施来说是一个非常高的数字。这证明了只要拥有正确的软件栈——特别是 PyTorch 2.4+ 和 TorchTitan——进入“主权 AI”领域的门槛比以往任何时候都要低。
对于需要 1T 参数模型的推理能力但缺乏 512 GPU 集群的企业,n1n.ai 提供了必要的基础设施来查询诸如 Claude 3.5 Sonnet 或 OpenAI o3 等模型,这些模型具有类似的架构复杂性,但以托管服务的形式提供。
专业提示:为 MoE 配置 TorchTitan
要在较小规模上复制这些结果,开发者可以使用以下 TorchTitan 配置片段:
# MoE 的 TorchTitan 配置示例
model:
name: "moe_model"
num_layers: 32
hidden_size: 4096
num_experts: 8
top_k: 2
parallelism:
tensor_parallel_size: 2
pipeline_parallel_size: 2
expert_parallel_size: 4
enable_fsdp: True
总结
在欧洲公共基础设施上成功进行 1.1T MoE 训练证明了 PyTorch 分布式生态系统的成熟。通过从单体框架转向像 TorchTitan 这样的模块化库,AI 社区正在使在绝对规模极限下进行训练的能力变得大众化。无论您是训练自己的 1T 模型,还是通过 n1n.ai 利用顶级模型,下一代 AI 的工具现在都掌握在多数人手中,而不仅仅是少数人。
在 n1n.ai 获取免费 API 密钥。