在分布式训练混合专家模型(Mixture of Experts, MoE)时,技术选型往往面临一个关键抉择:到底是采用张量并行(Tensor Parallelism, TP)还是专家并行(Expert Parallelism, EP)?这个看似简单的选择题背后,实际上涉及模型架构特性、硬件资源配置、通信开销等多维度的权衡。
我曾在多个实际项目中验证过不同并行策略的效果。以某次训练包含128个专家的MoE模型为例,当使用32台A100显卡时,TP方案最终训练吞吐量比EP高出23%,但模型收敛速度却慢了17%。这种相互矛盾的指标表现,正是工程师们需要深入理解的典型场景。
TP将单个专家的参数矩阵按列拆分到不同设备。例如一个维度为[4096,8192]的权重矩阵,在4卡TP下会被切分为4个[4096,2048]的块。前向传播时,每个设备计算部分结果后通过AllReduce操作聚合输出。这种方式的优势在于:
但问题也很明显:当专家数量大于设备数量时,无法充分利用MoE的稀疏特性。我在调试时发现,TP模式下即使只有10%的专家被激活,所有设备仍需要参与全部计算。
EP将不同专家分配到不同设备,每个设备完整持有若干专家的参数。当门控网络选择特定专家时,只有持有这些专家的设备需要工作。其核心优势包括:
但在实际部署时会遇到两个棘手问题:
通过控制变量测试发现:
这个阈值会随网络带宽变化。在400Gbps的RDMA环境下,EP的交叉设备通信延迟可以控制在50μs以内。
固定路由(如Hash)和动态路由(如Top-k)对并行策略的选择有决定性影响:
实测显示,在Top-2门控下,EP需要额外的15-20%通信开销用于token重分配。
当前最优解往往是混合方案:
在Megatron-LM的实现中,这种混合策略相比纯EP提升吞吐量达40%。
几个经过验证的有效方法:
以下是一个经过生产验证的配置示例:
| 参数量级 | 专家数量 | 设备数量 | 推荐策略 | 预期吞吐 |
|---|---|---|---|---|
| 10B | 16 | 8 | Pure TP | 120 samples/s |
| 100B | 64 | 32 | TP+EP混合 | 78 samples/s |
| 1T | 256 | 128 | Pure EP | 35 samples/s |
关键提示:实际部署前务必进行小规模profile测试,监控NCCL通信时间和CUDA kernel利用率
在最近一次部署中,我们遇到了EP模式下的OOM问题。根本原因是门控网络偶尔会集中选择同一设备上的多个专家。解决方案包括:
另一个常见问题是TP模式下的收敛异常,通常表现为某些专家的loss突然飙升。这往往是由于参数同步时出现数值不稳定,可以通过以下方法缓解:
从硬件角度看,新一代的NVLink Switch系统有望将设备间延迟降低到5μs以下,这将显著改善EP模式的性能瓶颈。而在算法层面,自适应并行策略可能成为趋势——根据实时负载动态调整TP/EP比例。
我目前正在试验一种预测性调度方案:通过分析前几步的门控模式,预判后续的专家激活分布,提前进行参数预取和设备预热。初步测试显示这种方法可以减少约30%的等待时间。