【大模型基础设施工程】06:3D 并行深度——数据 / 张量 / 流水 / 序列 / ZeRO

💡 原文中文,约27200字,阅读约需65分钟。
📝

内容提要

本文讨论了大规模模型训练中的并行化技术,特别是671B MoE模型的训练挑战。随着模型规模的增加,单卡显存不足以支持训练,因此需要采用数据并行、张量并行和流水线并行等多种策略。文章分析了显存消耗、通信成本及不同并行策略的优缺点,并强调了优化通信与计算重叠的重要性。最后,提出了针对不同规模模型的并行配置建议。

🎯

关键要点

  • 单卡显存不足以支持671B MoE模型的训练,需要采用多种并行策略。

  • 显存消耗主要包括参数、梯度、优化器状态和激活,训练70B模型的显存需求约为1120GB。

  • 并行化的目标是平衡通信代价和计算效率,工业界的MFU目标为密集模型40%+,MoE 30%+。

  • 并行策略包括数据并行(DP)、张量并行(TP)、流水线并行(PP)、序列并行(SP)和专家并行(EP)。

  • ZeRO优化器通过将状态切分到各卡上,减少显存冗余,分为三个阶段,显存需求降低到1/Ndp。

  • FSDP是PyTorch实现的ZeRO-3,支持全切分,适合大规模模型训练。

  • DeepSeek-V3通过放弃TP,采用EP和PP组合,优化了MoE模型的训练效率。

  • 通信优化和计算重叠是提高MFU的关键,NCCL流和CUDA图的结合可以实现这一目标。

  • 激活重计算和梯度累积技术可以有效降低显存占用,提高训练效率。

  • MoE模型的负载均衡是一个重要挑战,需通过动态路由和负载均衡策略来解决。

延伸问答

为什么单卡显存不足以支持671B MoE模型的训练?

训练671B MoE模型需要的显存消耗包括参数、梯度、优化器状态和激活,单卡80GB显存无法满足需求。

并行化技术在大规模模型训练中有哪些策略?

主要的并行化策略包括数据并行(DP)、张量并行(TP)、流水线并行(PP)、序列并行(SP)和专家并行(EP)。

ZeRO优化器如何减少显存冗余?

ZeRO优化器通过将状态切分到各卡上,减少显存冗余,显存需求降低到1/Ndp。

DeepSeek-V3是如何优化MoE模型训练效率的?

DeepSeek-V3通过放弃TP,采用EP和PP的组合,优化了MoE模型的训练效率。

在大规模模型训练中,如何优化通信与计算的重叠?

通过结合NCCL流和CUDA图,可以实现通信与计算的重叠,从而提高MFU。

MoE模型的负载均衡面临哪些挑战?

MoE模型的负载均衡面临路由抖动和负载不均的问题,需要通过动态路由和负载均衡策略来解决。

➡️

继续阅读