MoE(Mixture of Experts,混合专家)模型中引入了alltoall通信算子,用于在ep(Expert Parallel,专家并行)组中不同rank间交换token。在MoE层前向过程中,MLP前后各有一个alltoall通信算子,且计算与通信为串行执行,需要减少这部分通信的时间,提升训练性能。
Ampipe将transformer模型中从Attention到MLP部分的通信和计算的输入切分为多份,每一份之间数据互相独立不存在依赖,使得各个部分的计算和通信可以循环流水并行,同时调整计算和通信的算子执行顺序,实现计算和通信并行达到掩盖通信的目的。详细说明可参见文献AMPIPE: ACCELERATING MOE MODELTRAINING WITH INTRA-BLOCK PIPELINING。
在训练MoE模型时,可以开启Ampipe特性。
推荐在--seq-length序列长度较长时开启特性,可以获得更好的性能提升。
--ampipe-degree N # N为切分数
--ampipe-tp-sp-comm-overlap
目前仅推荐设置--ampipe-degree为2,在--context-parallel-size大于1的场景下,仅支持设置--ampipe-degree为2。
使用该特性,通过减少通信时间,提高设备利用效率,可总体获得3%-5% 的计算效率提升。