From 10232bba8245cd1e8d4030abe3b6e56f725158b9 Mon Sep 17 00:00:00 2001 From: wangbluo <2538539015@qq.com> Date: Fri, 27 Sep 2024 15:49:03 +0800 Subject: [PATCH] seq parallel doc --- docs/source/zh-Hans/features/sequence_parallelism.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/source/zh-Hans/features/sequence_parallelism.md b/docs/source/zh-Hans/features/sequence_parallelism.md index 534035cb5..c1842aaf1 100644 --- a/docs/source/zh-Hans/features/sequence_parallelism.md +++ b/docs/source/zh-Hans/features/sequence_parallelism.md @@ -150,6 +150,13 @@ for step, batch in enumerate(tqdm(dataloader, desc="Step", disable=not dist.get_ ### 结论 -在上述序列并行方法中,ring attention对head number没有要求,可训练超长文本,但是由于细分了计算,计算性能会有所下降。TP+SP, DeepSpeed-Ulysses对于head number有要求,需要可被sp group size 整除。这些序列并行都可与其他高性能注意力兼容,如flash attention。sp可与Gemini一起使用训练超大规模模型,也可以与TP,PP,DP等组成4D并行。 +在上述序列并行方法中,ring attn和Ulysses各有优劣,我们需要根据情况来选择合适的序列并行方法: +通信方面:Ulysses通信量优于ring attn,Ulysess主要包含三次All2All通信量,复杂度为3*O(Nxd),而ring attn的通信会随着序列长度增长而平方增长。不过另一方面,all2all对底层硬件的要求也会更高。 +内存占用:二者类似。 +模型结构泛化:ring attn优于Ulysses。Ulysses模型泛化性一般,对于head number有要求,需要满足:head number // (tp group size * sp group size),而ring attn没有此限制。 +由于使用简单,对Attention计算不侵入修改,Ulysses目前是序列并行的主流。这些序列并行都可与其他高性能注意力兼容,如flash attention,还可以与ZeRO、TP、PP、DP等多种并行训练策略混合使用。 + +总的来说,对于初学者、中小型企业客户,我们更推荐您使用all_to_all,经过测试,在双机16卡的情况下,使用```--tp 2 --sp 8 --sp_mode all_to_all```的启动参数可以很轻松训练128k长度的序列,同时他的性能表现也是所有序列并行模式中最好的。但如果追求极致性能优化,或者使用较多机器训练长文本,可以考虑使用ring attention模式的序列并行。 +