首页 > 其他分享 >转载:【AI系统】并行训练基本介绍

转载:【AI系统】并行训练基本介绍

时间:2024-12-14 13:56:39浏览次数:4  
标签:训练 AI 模型 DDP 并行 转载 分布式

分布式训练是一种模型训练模式,它将训练工作量分散到多个工作节点上,从而大大提高了训练速度和模型准确性。虽然分布式训练可用于任何类型的 AI 模型训练,但将其用于大模型和计算要求较高的任务最为有利。

本篇幅将围绕在 PyTorch2.0 中提供的多种分布式训练方式展开,包括并行训练,如:数据并行(Data Parallelism, DP)、模型并行(Model Parallelism, MP)、混合并行(Hybrid Parallel),可扩展的分布式训练组件,如:设备网格(Device Mesh)、RPC 分布式训练以及自定义扩展等。每种方法在特定用例中都有独特的优势。

具体来说,这些功能的实现可以分为三个主要组件:

  1. 分布式数据并行训练(DDP)是一种广泛采用的单程序多数据训练范式。在 DDP 中,模型会在每个进程上复制,每个模型副本将接收不同的输入数据样本。DDP 负责梯度通信以保持模型副本同步,并将其与梯度计算重叠以加速训练。

  2. 基于 RPC 的分布式训练(RPC)支持无法适应数据并行训练的通用训练结构,例如分布式流水线并行、参数服务器范式以及 DDP 与其他训练范式的组合。它有助于管理远程对象的生命周期,并将自动微分引擎扩展到单个计算节点之外。

  3. 提供了在组内进程之间发送张量的功能,包括集体通信 API(如 All Reduce 和 All Gather)和点对点通信 API(如 send 和 receive)。尽管 DDP 和 RPC 已经满足了大多数分布式训练需求,PyTorch 的中间表达 C10d 仍然在需要更细粒度通信控制的场景中发挥作用。例如,分布式参数平均,在这种情况下,应用程序希望在反向传播之后计算所有模型参数的平均值,而不是使用 DDP 来通信梯度。这可以将通信与计算解耦,并允许对通信内容进行更细粒度的控制,但同时也放弃了 DDP 提供的性能优化。

通过充分利用这些分布式训练组件,开发人员可以在各种计算要求和硬件配置下高效地训练大模型,实现更快的训练速度和更高的模型准确性。

如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~

转载自:https://www.cnblogs.com/ZOMI/articles/18562901

标签:训练,AI,模型,DDP,并行,转载,分布式
From: https://www.cnblogs.com/wujinwanai/p/18601140

相关文章

  • 转载:【AI系统】计算图的控制流实现
    计算图在数学上作为一个有向无环图(DAG,DirectedAcyclicGraph),能够把神经网络模型的概念抽象出来作为同一描述,不过在计算机的编程中,会遇到很多if、else、while、for等控制流语句,有向无环图改如何表示控制流变成了计算图中一个很重要的问题。好处在于,引入控制流之后,开发者可以向计......
  • 转载:【AI系统】昇思MindSpore并行
    本文将会介绍昇思MindSpore的并行训练技术,以及如何通过张量重排布和自动微分简化并行策略搜索,实现高效大模型训练。大模型的带来随着深度学习的发展,为了实现更高的准确率和更丰富的应用场景,训练数据集和神经网络模型的规模日益增大。特别是自然语言处理(NaturalLanguageProcess......
  • 转载:【AI系统】张量并行
    在大模型的训练中,单个设备往往无法满足计算和存储需求,因此需要借助分布式训练技术。其中,模型并行(ModelParallelism,MP)是一种重要的方法。模型并行的基本思想是将模型的计算任务拆分到不同的设备上执行,以提高训练效率和处理更大规模的模型。下面将重点介绍模型并行中的张量并行。......
  • 转载:【AI系统】流水并行
    在大模型的训练中,单个设备往往无法满足计算和存储需求,因此需要借助分布式训练技术。其中,模型并行(ModelParallelism,MP)是一种重要的方法。模型并行的基本思想是将模型的计算任务拆分到不同的设备上执行,以提高训练效率和处理更大规模的模型。模型并行主要分为朴素的模型并行、张量......
  • 转载:【AI系统】动手实现自动微分
    在这章内容,会介绍是怎么实现自动微分的,因为代码量非常小,也许你也可以写一个玩玩。前面的文章当中,已经把自动微分的原理深入浅出的讲了一下,也引用了非常多的论文。有兴趣的可以顺着综述Asurvey这篇深扒一下。前向自动微分原理了解自动微分的不同实现方式非常有用。在这里呢,我......
  • 转载:【AI系统】动手实现 PyTorch 微分
    这里记录一下使用操作符重载(OO)编程方式的自动微分,其中数学实现模式则是使用反向模式(ReverseMode),综合起来就叫做反向OO实现AD啦。基础知识下面一起来回顾一下操作符重载和反向模式的一些基本概念,然后一起去尝试着用Python去实现PyTorch这个AI框架中最核心的自动微分机......
  • 转载:【AI系统】计算图与自动微分
    在前面的文章曾经提到过,目前主流的AI框架都选择使用计算图来抽象神经网络计算表达,通过通用的数据结构(张量)来理解、表达和执行神经网络模型,通过计算图可以把AI系统化的问题形象地表示出来。本文将会以AI概念落地的时候,遇到的一些问题与挑战,因此引出了计算图的概念来对神经网......
  • 转载:【AI系统】计算图的调度与执行
    在前面的内容介绍过,深度学习的训练过程主要分为以下三个部分:1)前向计算、2)计算损失、3)更新权重参数。在训练神经网络时,前向传播和反向传播相互依赖。对于前向传播,沿着依赖的方向遍历计算图并计算其路径上的所有变量。然后将这些用于反向传播,其中计算顺序与计算图的相反。基于计算......
  • 转载:【AI系统】微分计算模式
    上一篇文章简单了解计算机中常用几种微分方式。本文将深入介绍AI框架离不开的核心功能:自动微分。而自动微分则是分为前向微分和后向微分两种实现模式,不同的实现模式有不同的机制和计算逻辑,而无论哪种模式都离不开雅克比矩阵,所以我们也会深入了解一下雅克比矩阵的原理。雅克比......
  • 转载:【AI系统】微分实现方式
    上一篇文章简单了解计算机中常用几种微分方式。本文将深入介绍AI框架离不开的核心功能:自动微分。而自动微分则是分为前向微分和后向微分两种实现模式,不同的实现模式有不同的机制和计算逻辑,而无论哪种模式都离不开雅克比矩阵,所以我们也会深入了解一下雅克比矩阵的原理。雅克比......