文章预览
大家好,最近在抽空整理之前“序列并行”相关的学习笔记,想着之前dp,pp,tp,ep都已经写过了,漏了一个sp总是有点遗憾,所以趁着最近有热情,赶紧补上来,也算是我对这一块的一些总结。 其实,序列并行是个很宽泛的概念, 虽然本质上都在seq维度做了切分,但各家解决问题的出发点和实际的操作方法都是不一样的 ,例如我们常见的序列并行框架/方法有: Megatron Sequence Parallelism :本质是想通过降低单卡激活值大小的方式,尽可能多保存激活值,少做重计算,以此提升整体训练速度,一般和它家的tp配套使用。 DeepSpeed Ulysses :我们知道ds家的zero是模型并行的形式,数据并行的本质。在这个情况下,单张卡是完整地做一条序列的MHA过程的,序列长度较长时,就会对单卡显存产生压力。 所以Ulysses的解决办法是,让单张卡只算部分head的结果 ,具
………………………………