zero3。它是纵向切分权重(intra-layer,每一层的权重切成n块)。但是这样会增加通讯时间。你可以根据自己的模型,估算下切分后的通讯量和通讯时间。其次,pipeline并行一般指横向切分权重(inter-layer,每一层放在一块卡上,有n层就放n张卡),所以它和zero3的切分不是一个类型的。总结一下,zero3可以帮你切权重,但不是pipeline的那种切法,zero3切分权重后会增加通讯量,进而增加训练时间。
megatron+deepspeed 实现3D并行。效率更高。:megatron提供tp,deepspeed 提供dp和pp。
参考资料:
https://huggingface.co/blog/zh/bloom-megatron-deepspeed
图解大模型训练之:数据并行下篇( DeepSpeed ZeRO,零冗余优化) - 知乎
https://huggingface.co/blog/zh/megatron-training