趋近智
尽管专家并行是扩展专家混合模型参数数量的强大手段,但它很少单独运行。为了训练最先进的稀疏模型,这些模型可以拥有数万亿参数,但仍需在海量数据集上进行训练,因此你需要同时协调多种并行策略。每种策略都解决不同的扩展瓶颈,它们的组合使得训练如此规模的模型成为可能,否则将无法实现。
并行主要有三个维度:
成功训练大规模MoE模型需要有机结合模型并行、数据并行和专家并行等多种策略,以形成一致且高效的训练配置。
MoE模型最常见的混合策略是结合数据并行和专家并行。这种方法适用于模型中密集组件(如注意力块和嵌入层)可以放在单个GPU上,但专家总数过大的情况。
在这种配置中,你通常会有一组设备,例如单个服务器节点内的8个GPU。并行方式如下:
前向传播涉及一个重要的通信步骤。在一个token通过本地密集层后,门控网络决定它应该路由到哪个专家。如果该专家位于另一个GPU上,token的隐藏状态必须通过设备互连发送。这是通过all-to-all集合通信实现的,其中每个GPU将其token的子集发送给其他所有GPU,并接收返回的token。在远程专家处理token后,另一个all-to-all操作将其发送回其原始设备以继续前向传播。
一个使用4个GPU的二维并行配置。模型的密集层为数据并行而复制,而64个专家在GPU间分片以实现专家并行。虚线表示将令牌路由到其指定专家所需的
all-to-all通信。
这种DP+EP组合通过增加专家数量有效地扩展了模型的参数量,同时通过更大的全局批次大小扩展了训练吞吐量。主要的瓶颈变为all-to-all通信,这会饱和设备间的互连带宽。
对于最大的模型,即使是密集组件也变得过大,单个GPU无法承载。这就需要引入第三个维度:张量并行。将这三种策略结合起来,使得在大型多节点GPU集群上训练超大规模模型成为可能。
这种排列的层级结构可以被设想为设备的三维网格:
all-reduce或all-gather操作。all-reduce以平均梯度。这种三维方法在层级结构的每个级别上都产生不同的通信模式:张量并行的组内通信、专家并行的组间all-to-all,以及数据并行的全局all-reduce。
一个跨8个GPU的三维并行策略。GPU首先被组织成2个GPU的张量并行(TP)组。专家并行将64个专家分片到这些TP组中。最后,整个4个GPU的配置会为数据并行而复制。每种并行类型都包含不同的通信模式。
手动实现这些组合策略是一项巨大的工程任务。幸运的是,像DeepSpeed、Megatron-LM和JAX这样的分布式训练框架处理了大部分的复杂性。这些库提供了高级API,用于定义并行策略,通常通过指定设备网格中每个维度的大小来完成。
例如,使用JAX与pjit,你可能会定义一个三维设备网格:
mesh = Mesh(devices, ('data', 'expert', 'model'))
接着,你将使用注解来告知编译器如何沿着这个网格划分模型的权重和中间激活。框架的编译器负责将这些注解转换为正确的底层集合通信操作(all-reduce、all-to-all、all-gather)。
选择合适的组合和配置取决于你具体的模型架构和硬件环境。拥有大量专家但密集层相对较小的模型将从更大的专家并行维度中获益最多。反之,拥有巨大密集层的模型可能会优先选择更大的张量并行维度。平衡这些维度以最大化硬件利用率并最小化通信瓶颈,是优化大规模MoE训练的重要组成部分。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造