首页 >科技周边 >人工智能 >DeepSeek发布的优化平行性策略

DeepSeek发布的优化平行性策略

Lisa Kudrow
Lisa Kudrow原创
2025-03-03 18:34:10261浏览

作为#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

键特征

  • 技术详细信息
  • 技术详细信息
    • 详细信息
    • >层次负载平衡
    • 全局负载平衡
    • > proping数据:分析计算 - communication-communication ryplap
    方向
  • 结论
  • 理解管道并行性
  • 管道并行性是一种促进模型训练序列各个段的同时处理的方法。通过对模型进行分区并立即处理多个输入,管道并行性可以显着缩写训练期。然而,传统的管道方法论很容易效率低下,包括闲置的间隔或“气泡”,损害了性能。引入了诸如DualPipe之类的创新,以改善这些效率低下并提高整体效率。 在深度学习中,“管道中的气泡”的表达表征了管道平行训练期间GPU的不活动的间隔,其中管道的一部分停滞不前,等待来自先例段的数据。这会在计算进程中产生“差距”或“气泡”,最终导致效率低下的GPU资源管理。

    dualpipe:双向管道并行

    DualPipe是一种复杂的双向管道并行性算法,旨在最大程度地提高向前和向后计算沟通阶段之间的重叠。这种方法在减少管道气泡的情况下特别有益,这可能会大大阻碍训练效率。

    键特征

      完整重叠:
    • >实现向前和后阶段的完全重叠,确保资源有效地利用。> >降低管道气泡:
    • 在训练过程中最大程度地减少闲置时间,从而提高了资源利用率和更快的培训时间。
    • 技术细节
    可以通过涉及8个PP等级和20个微批次的调度示例来说明该算法的性能。相反方向的微批次与向前方向的小部分对称,简化了图表。

    方法

    泡泡

    参数

    Method Bubble Parameter Activation
    1F1B (PP-1)(? ?) PP
    ZB1P (PP-1)(? ?-2?) PP
    DualPipe (PP/2-1)(?&? ?-3?) PP 1
    激活 1f1b (pp-1)(??) 1× pp zb1p (pp-1)(??-2?) 1× pp dualpipe (pp/2-1)(?&??-3?) 2× pp 1

    其中:

    • ?:前向块的执行时间
    • >
    • ?:完整向后块的执行时间
    • ?:“落后”块的执行时间
    • >
    • ?&?:两个相互重叠的前向和向后块的执行时间

    DeepSeek发布的优化平行性策略

    >示例DualPipe调度配置,用于8 pp(管道并行性)等级和20个微批次,重点关注两个方向。沿反向方向处理的微批次在向前方向上反映了那些,从而使我们能够省略其批次标识符,以简化插图。共有共同黑边界的两个单元参与重叠的计算和通信任务。

    有关更多信息,请访问dualpipe github存储库

    > eplb:专家 - 平行负载平衡器

    > EPLB或专家并行负载平衡器,优化了V3/R1训练中的负载平衡。它有效地分配了多个处理单元的工作负载,从而提高了整体性能。

    键功能

    专家并行性:利用专家模型有效平衡负载,以确保每个处理单元都充分利用其潜力。
      >动态负载平衡:在训练过程中适应不同的工作负载,允许实时调整以保持最佳性能。
    • 技术细节
    > EPLB(有效的管道负载分布)旨在明智地分配任务,以减少空闲间隔并增强吞吐量。在不同的模型或任务需要不同级别的计算能力的情况下,这种方法具有更高的意义。

    载荷平衡算法采用了两种不同的政策,量身定制为不同的情况:

    >层次负载平衡

    当服务器节点的数量平均分为专家组计数时,

    层次负载平衡策略会激活。该策略通过以促进平衡负载分配的方式将专家组最初组织到节点上,利用群体限制的专家路由。随后,在每个节点内发生专家复制以维持负载平衡。最终,这些复制的专家被分配给单个GPU,从而在不同的GPU中实现了负载平衡。当与较小的专家平行尺寸打交道时,层次负载平衡政策特别适合预填充阶段。

    >全局负载平衡

    相反,当服务器节点的计数不划分专家组时,实现了全球负载平衡策略。这种方法涉及专家的全球复制,无论其在专家群体中的分组如何。复制后,专家均匀分配给单个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]])

    DeepSeek发布的优化平行性策略

    >视觉表示说明了专家(MOE)混合物的双层配置,每个层组成12位专业专家。为了提高模型的鲁棒性并创建备份机制,我们在每个层中介绍了一个额外的4个专家。这种修改导致每层作为备份的总计16位专家。该系统在2个计算节点上复制并分配这些专家,每个节点包含4个GPU。它应用了层次负载平衡政策,并根据该计划展示了专家的战略复制和分配。

    有关详细的实现指令,请参阅EPLB GitHub存储库。

    分析数据:分析计算 - 通信重叠

    为了有效地分析V3/R1中的计算通信重叠,分析数据提供了基本的见解。可以使用这些数据来理解性能的瓶颈和训练过程的优化。

    键功能

    全面分析:这种方法提供了对计算和通信阶段的广泛评估,促进了对系统性能指标的深刻理解。

    绩效见解:它指出了提高培训效率的机会,为开发人员提供关键信息来指导优化工作。
    • 培训分析数据
    培训配置文件数据说明了双管内的个人前向和向后块的策略。每个块均包含4层专家混合物(MOE)。并行配置匹配DeepSeek-V3预处理中使用的设置,该设置专门使用EP64(Epoch 64)和TP1(具有1令牌的颞填充)配置,序列长度为4K。为了使事情保持简单,我们在分析过程中排除了PP(管道并行)通信。

    以获取更多信息并访问分析数据,请访问分析数据GitHub存储库。

    现实世界应用

    DualPipe和EPLB的实际应用表现出令人鼓舞的结果,例如自然语言处理,计算机视觉和强化学习等不同领域的结果。通过完善培训过程,这些方法促进了快速模型的收敛和提高精度,证明是研究人员和从业人员的必不可少的工具。

    >

    未来方向

    随着深度学习的领域的发展,对更有效的培训方法的需求可能会升级。未来的研究可能会集中于扩大双管和EPLB的有效性,这可能是通过研究将两者优势融合的混合模型。此外,这些策略与尖端技术(包括量子计算)的整合可能铺平了新颖的优化途径。

    结论

    通过双管和EPLB在平行策略中的进步标志着精炼深度学习训练程序的大步发展。通过利用这些算法,研究人员和从业人员都可以实现卓越的资源利用和加速培训时间,最终达到更有效的模型创建。分析数据的同化增强了校准这些过程的能力,确保深度学习的快速发展轨迹持续存在。

以上是DeepSeek发布的优化平行性策略的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn