DeepSeek开源三种模型训练优化并行策略,提升V3/R1模型训练效率

DeepSeek开源三种优化并行策略,显著提升V3/R1大模型训练效率,助力社区深入理解模型并行训练。

原文标题:创始人梁文锋亲创!DeepSeek 开源第四弹:全面公开优化并行策略

原文作者:AI前线

冷月清谈:

DeepSeek开源了三种用于V3/R1模型训练的优化并行策略,包括DualPipe、EPLB和分析数据。DualPipe是一种双向管道并行算法,可实现计算和通信的完全重叠,减少管道气泡,由DeepSeek创始人梁文锋等人创建。EPLB是一种专家并行负载均衡器,通过冗余专家策略和启发式打包,确保GPU负载平衡,并尽量减少节点间数据流量。此外,DeepSeek还公开了训练和推理框架的分析数据,帮助社区了解通信计算重叠策略及其实现细节,涵盖了预填充、解码等阶段的配置和优化方法。

怜星夜思:

1、DualPipe算法相比传统的管道并行算法有哪些优势?除了减少管道气泡外,还有其他性能提升吗?
2、EPLB 如何在实际应用中解决专家并行训练的负载均衡问题?有哪些局限性?
3、DeepSeek 开源这些优化策略的意义是什么?对AI社区有什么影响?

原文内容

左右滑动查看更多图片

刚刚,DeepSeek 带来了开源周的第四弹。这次,他们一口气发布了三种在 V3/R1 模型训练中使用的优化并行策略。

首先是在 DeepSeek-V3 技术报告中介绍过的一种创新的双向管道并行算法 DualPipe ,用于 V3/R1 训练中的计算通信重叠,要求是 PyTorch 2.0 及更高版本。它实现了前向和后向计算通信阶段的完全重叠,也减少了管道气泡。据介绍,DualPipe 由包括 DeepSeek 创始人梁文锋在内的三位工程师创建和开发。

项目地址:https://github.com/deepseek-ai/DualPipe

接着是 EPLB,一种适用于 V3/R1 的专家并行负载均衡器。正如 DeepSeek-V3 论文中所描述的,其在使用专家并行(EP)时采用冗余专家策略,将重载专家重复分配,然后启发式地将重复的专家打包到 GPU 上,以确保不同 GPU 之间的负载平衡。此外,得益于 V3 中使用的组限制专家路由,他们还尝试将同组的专家放置到同一节点,以尽可能减少节点间的数据流量。为便于复制和部署,他们在.NET 平台上开源了已部署的 EP 负载均衡算法。

项目地址:https://github.com/deepseek-ai/eplb

最后,其公开分享了来自训练和推理框架的分析数据,以帮助社区更好地了解通信计算重叠策略和底层实现细节。在训练配置文件数据中,他们演示了在 DualPipe 中对一对单独的前向和后向块的重叠策略。每个块包含 4 个 MoE 层。并行配置与 V3 预训练设置一致:EP64、TP1 具有 4K 序列长度。

推理方面,对于预填充,配置文件采用了 EP32 和 TP1(与 V3/R1 的实际在线部署一致)。在预填充阶段,他们利用两个微批次来重叠计算和多对多通信,同时确保注意力计算负载在两个微批次之间平衡。

解码上,该配置文件采用了 EP128、TP1 。与预填充类似,解码也利用两个微批处理进行重叠计算和多对通信。但是,与预填充不同的是,解码过程中的 all-to-all 通信不会占用 GPU SM。

项目地址:https://github.com/deepseek-ai/profile-data

有外国网友不禁感叹,“DeepSeek 是彻底地开源吗?”“感谢你们在实现我们自己的理想方面比我们做得更好。”

我理解 EPLB 的核心思想是通过冗余和启发式打包尽可能减少木桶效应。至于局限性,我觉得主要在于其静态分配的特性。如果在训练过程中专家计算量变化较大,EPLB 可能需要重新进行负载均衡,这就引入了额外的开销。

EPLB 通过冗余专家策略和启发式打包来平衡 GPU 负载,感觉有点像把任务均匀分配给多个工人。但实际应用中,不同专家的计算量可能差异很大,EPLB 如何动态调整专家分配以适应这种变化?另外,节点间的通信成本也是个问题,EPLB 如何在负载均衡和通信开销之间找到平衡点?

开源这些策略,降低了其他开发者进行大模型训练的门槛,大家可以基于这些策略进行改进和创新,推动大模型技术的发展。就像 DeepSeek 的外国网友说的,“感谢你们在实现我们自己的理想方面比我们做得更好。”

DeepSeek 的开源行为对 AI 社区的影响是深远的。它不仅提供了可以直接使用的工具和代码,更重要的是,它分享了宝贵的经验和思路,这对于推动大模型技术的发展具有重要的意义。正如文章所说,“DeepSeek 是彻底地开源吗?”,足以见得其开源的决心和力度。

DualPipe牛逼!据说可以把计算和通信完全重叠起来,这效率提升不得了啊!传统的管道并行算法,通信和计算是穿插进行的,就像开车等红绿灯一样,走走停停。DualPipe更像是高架桥,一路畅通无阻,速度肯定更快!

EPLB 厉害的地方在于它考虑了 V3 模型的组限制专家路由特性,把同组的专家尽量放在同一个节点上,减少了跨节点通信的开销,这个优化很巧妙。但是,如果专家的分组方式不合理,或者网络拓扑结构比较复杂,EPLB 的效果可能会有折扣。

DeepSeek 开源这些策略,对于 AI 社区来说无疑是一大利好。这不仅可以促进技术交流和共享,也能够加速大模型训练技术的普及和应用。说不定以后我们也能训练自己的大模型了,想想还有点小激动呢!

从技术的角度来说,DualPipe 的核心在于对前后向计算和通信的精细调度,最大限度地利用了硬件资源。这不仅减少了管道气泡,也提高了 GPU 的利用率。至于其他性能提升,还需要进一步的实验数据来佐证。

关于DualPipe的优势,除了减少管道气泡,文章提到了“实现了前向和后向计算通信阶段的完全重叠”。这意味着计算和通信可以同时进行,而不是像传统管道并行那样串行执行,从而节省了整体训练时间。至于其他的性能提升,我猜想可能还有减少内存占用之类的,但具体还需要看更详细的技术报告。