Deepseek开源周第四天:从 DualPipe 到 EPLB
前言
上周deepseek宣布,将在本周陆续发布五个开源项目,这些库已经在生产环境中经过了记录、部署和实战测试。
今天是deepseek开源周的第四天,deepseek发布了三个开源项目,分别是
它们共同为 V3/R1 模型的训练和推理提供了强大的支持。
1. DualPipe:双向流水线并行算法
1.1 什么是 DualPipe?
DualPipe 是一种创新的双向流水线并行算法,旨在解决大规模分布式训练中的计算-通信重叠问题。
在传统的流水线并行中,模型被分割成多个部分,分布在不同的设备上,每个设备负责一部分的计算任务。
然而,这种方法存在一个显著的问题:在前向传播和反向传播过程中,计算和通信往往不能完全重叠,导致设备的计算资源被浪费,训练效率降低。
DualPipe 通过引入双向流水线并行,实现了前向传播和反向传播的计算-通信完全重叠。
这意味着在前向传播的计算过程中,反向传播的通信可以同时进行,反之亦然。
这种设计大大减少了流水线中的“气泡”(即设备空闲时间),提高了设备的利用率。
1.2 DualPipe 的优势
完全重叠:DualPipe 能够实现前向和反向传播的计算与通信的完全重叠,最大限度地减少了设备空闲时间。
减少气泡:通过优化调度,DualPipe 减少了流水线中的气泡,进一步提高了训练效率。
灵活的调度:DualPipe 提供了灵活的调度策略,可以根据不同的硬件配置和模型结构进行调整。
1.3 应用场景
DualPipe 主要用于大规模深度学习模型的分布式训练,特别是在 V3/R1 模型的训练中。
通过优化计算-通信重叠,它可以显著提高训练速度,降低训练成本。
2. EPLB:专家并行负载均衡器
2.1 什么是 EPLB?
在大规模模型中,专家并行(Expert Parallelism, EP)是一种常见的优化策略。
它将模型的不同“专家”(即模型的不同部分)分配到不同的 GPU 上,以实现并行计算。
然而,不同专家的负载可能会因当前工作负载而有所不同,这可能导致 GPU 之间的负载不平衡。
EPLB(Expert Parallelism Load Balancer) 是一个专家并行负载均衡器,它通过引入“冗余专家”策略来解决这个问题。
具体来说,EPLB 会复制负载较重的专家,并将这些复制的专家分配到不同的 GPU 上,以确保 GPU 之间的负载均衡。
2.2 EPLB 的算法
EPLB 提供了两种负载均衡策略:
- 分层负载均衡:
当服务器节点的数量能够整除专家组的数量时,EPLB 会采用分层负载均衡策略。
它首先将专家组均匀地分配到不同的节点上,确保节点之间的负载均衡,然后在每个节点内复制专家,并将复制的专家分配到不同的 GPU 上。
- 全局负载均衡:
在其他情况下,EPLB 会采用全局负载均衡策略,将专家复制到全局范围内,并将复制的专家分配到不同的 GPU 上。
2.3 应用场景
EPLB 主要用于大规模模型的推理阶段,特别是在 V3/R1 模型的实际在线部署中。
通过优化专家并行负载均衡,它可以显著提高推理效率,降低推理延迟。
3. Profile Data:性能分析数据
3.1 什么是 Profile Data?
为了帮助社区更好地理解 DualPipe 和 EPLB 的性能优化效果,DeepSeek 团队开源了他们的性能分析数据(Profile Data)。
这些数据通过 PyTorch Profiler 捕获,记录了模型在训练和推理过程中的详细性能指标。
3.2 数据内容
训练阶段:展示了 DualPipe 在 V3/R1 模型训练中的计算-通信重叠策略。每个数据块包含 4 个 MoE(Mixture of Experts)层,采用 EP64 和 TP1 的并行配置。
推理阶段:
- Prefilling:展示了在 Prefilling 阶段的性能优化策略,采用 EP32 和 TP1 的并行配置,提示长度为 4K,每个 GPU 的批量大小为 16K 个 token。
- Decoding:展示了在 Decoding 阶段的性能优化策略,采用 EP128 和 TP1 的并行配置,提示长度为 4K,每个 GPU 的批量大小为 128 个请求。
3.3 如何使用 Profile Data?
用户可以通过下载这些性能分析数据,并在 Chrome 或 Edge 浏览器的 chrome://tracing
或 edge://tracing
中进行可视化分析。
这些数据可以帮助研究人员和开发者更好地理解 DualPipe 和 EPLB 的优化效果,并为自己的项目提供参考。
4. 总结
今天,DeepSeek 团队开源的 DualPipe、EPLB 和 Profile Data 为大规模深度学习模型的训练和推理提供了强大的支持。
通过优化计算-通信重叠和负载均衡,这些技术可以显著提高模型的训练和推理效率,降低计算成本。
希望这些开源项目能够为深度学习社区带来更多的启发和帮助。
我们将持续关注接下来几天的项目发布,为读者带来第一手的技术资讯。