作为#opensourceweek第4天的一部分,DeepSeek引入了2种新工具,以使深度学习更快,更有效:DualPipe和EPLB。这些工具有助于改善计算机在培训过程中处理计算和通信的方式,从而使过程更加顺畅,更快。在瞬息万变的深度学习世界中,找到更好的培训模型的方法是关键。 DualPipe和EPLB是解决这些挑战的前进。本文解释了这些工具如何工作以及它们如何在深度学习中有所作为。
? #opensourceweek的第4天:优化的平行性策略✅> dualpipe - 一种用于计算通信的双向管道并行算法在V3/R1培训中重叠。 https://t.co/gbtxsvwlt4>✅eplb - v3/r1的专家 - 平行负载平衡器。
此版本标志着我们开源周庆祝活动的第4天,在第1天的FlashMl成功推出之后,第2天的DEEPEP和第3天的DeepGemm。 内容表的内容
>
>理解管道并行
dualPipe:双向管道并行parallelism
键特征
参数
Method | Bubble | Parameter | Activation |
1F1B | (PP-1)(? ?) | 1× | PP |
ZB1P | (PP-1)(? ?-2?) | 1× | PP |
DualPipe | (PP/2-1)(?&? ?-3?) | 2× | PP 1 |
其中:
>示例DualPipe调度配置,用于8 pp(管道并行性)等级和20个微批次,重点关注两个方向。沿反向方向处理的微批次在向前方向上反映了那些,从而使我们能够省略其批次标识符,以简化插图。共有共同黑边界的两个单元参与重叠的计算和通信任务。
有关更多信息,请访问dualpipe github存储库> eplb:专家 - 平行负载平衡器
键功能
>层次负载平衡
当服务器节点的数量平均分为专家组计数时,
层次负载平衡策略会激活。该策略通过以促进平衡负载分配的方式将专家组最初组织到节点上,利用群体限制的专家路由。随后,在每个节点内发生专家复制以维持负载平衡。最终,这些复制的专家被分配给单个GPU,从而在不同的GPU中实现了负载平衡。当与较小的专家平行尺寸打交道时,层次负载平衡政策特别适合预填充阶段。>
>示例代码:
import torch import eplb weight = torch.tensor([[ 90, 132, 40, 61, 104, 165, 39, 4, 73, 56, 183, 86], [ 20, 107, 104, 64, 19, 197, 187, 157, 172, 86, 16, 27]]) num_replicas = 16 num_groups = 4 num_nodes = 2 num_gpus = 8 phy2log, log2phy, logcnt = eplb.rebalance_experts(weight, num_replicas, num_groups, num_nodes, num_gpus) print(phy2log)
输出:
tensor([[ 5, 6, 5, 7, 8, 4, 3, 4, 10, 9, 10, 2, 0, 1, 11, 1], [ 7, 10, 6, 8, 6, 11, 8, 9, 2, 4, 5, 1, 5, 0, 3, 1]])
有关详细的实现指令,请参阅EPLB GitHub存储库。
分析数据:分析计算 - 通信重叠为了有效地分析V3/R1中的计算通信重叠,分析数据提供了基本的见解。可以使用这些数据来理解性能的瓶颈和训练过程的优化。
全面分析:这种方法提供了对计算和通信阶段的广泛评估,促进了对系统性能指标的深刻理解。
>
未来方向通过双管和EPLB在平行策略中的进步标志着精炼深度学习训练程序的大步发展。通过利用这些算法,研究人员和从业人员都可以实现卓越的资源利用和加速培训时间,最终达到更有效的模型创建。分析数据的同化增强了校准这些过程的能力,确保深度学习的快速发展轨迹持续存在。
以上是DeepSeek发布的优化平行性策略的详细内容。更多信息请关注PHP中文网其他相关文章!