一种模型并行训练中的自适应模型划分方法、系统及设备与流程

文档序号:34031691发布日期:2023-05-05 11:53阅读:53来源:国知局
一种模型并行训练中的自适应模型划分方法、系统及设备与流程

本发明涉及网络信息,尤其涉及一种模型并行训练中的自适应模型划分方法、系统及设备。


背景技术:

1、随着深度学习的发展,神经网络的规模日趋庞大,而在面对越来越多的超大规模神经网络的训练时,往往需要多台机器以进行分布式训练。目前常见的分布式训练方式包括数据并行与模型并行。模型并行就是将模型拆分为若干个串行的阶段,每个分布式机器分别训练所分配的阶段,通过流水线方式将这些阶段进行串行并通过协调达到能够训练完整模型的目的。模型并行包括异步模型并行与同步模型并行。

2、pipedream是微软研究院开发的一种异步模型并行的框架,可以支持任意台机器进行异步模型并行。而想让模型并行训练时训练总时间最短的第一步就是通过合理划分模型使各机器分配模型中不同的层。如果模型的划分不合理会致使某个节点的训练时间远远长于其他节点,导致其他节点存在等待时间,使总训练时间变长。

3、目前pipedream给定的动态规划法的模型划分方法是把节点gpu看作性能相同的gpu带入进行模型划分,且是在训练之前就已经完成了的,训练开始后不再进行进一步相关模型划分。缺点一是没有考虑到训练时不同环境时gpu存在性能差异,此外本身gpu的自身性能就存在差异,在计算能力,带宽等方面可能存在显著差异,不同gpu的在训练相同的模型时的训练时间也会出现较大区别。二是认定gpu的性能是静态的,一成不变的。没有考虑到gpu的计算能力、网络带宽等性能会因资源异质性、网络波动、多任务抢占等因素而实时变化。即使是同一个gpu在这些因素的变化下也存在计算能力的变化。三是不能在训练中根据得到的模型划分算法实时进行模型划分的调整。


技术实现思路

1、基于背景技术存在的技术问题,本发明提出了一种模型并行训练中的自适应模型划分方法、系统及设备,实现针对不同gpu时神经网络模型实时最优划分。

2、本发明提出的自适应模型划分方法,包括如下步骤:

3、s1:将神经网络模型的原始层划分为块,将所述块作为神经网络模型新的层结构,所述块由连续一至多个所述层构成;

4、s2:以划分后各阶段的计算和通信时间最大值最小为目标,计算得到神经网络模型所有阶段的分割层;

5、s3:基于所有阶段的分割层并结合动态层迁移技术对神经网络模型进行划分,并对划分后的神经网络模型进行模型训练;

6、s4:实时检测gpum-1与gpum之间的带宽和gpum的计算能力,设定周期固定的批处理,循环步骤s2至s3,以周期性更新神经网络模型划分;

7、所述所有阶段的分割层的计算过程如下:

8、

9、

10、

11、

12、其中,表示使用m台机器在第1层和第层之间的最优分配的情况下,最慢阶段所用的时间,是第1层和第层之间最优子阶段中最慢阶段所用的时间;表示层与层之间传递激活和梯度所用的时间,表示gpum对层到层所需的计算时间,表示gpum对层的计算时间,表示网络层的计算量,表示层的输出激活值,表示gpum的计算能力,表示gpum-1与gpum间的带宽,gpum表示第m个gpu编号,gpum-1表示第m-1个gpu编号。

13、进一步地,在所述步骤s1:将神经网络模型的原始层划分为块之前,对神经网络模型所需参数进行定义,gpu顺序按实际拓扑顺序固定,所述参数包括;gpum、、、、、、、。

14、进一步地,在步骤s1:将神经网络模型的原始层划分为块中,具体包括:

15、将神经网络模型的几个连续的层视为一个整体进行分配得到块,以更新神经网络模型;

16、对更新后的神经网络模型进行切分合并得到更新后的和;

17、将更新后的和带入分割层计算过程。

18、进一步地,在步骤s2:以划分后各阶段的计算和通信时间最大值最小为目标,计算得到神经网络模型所有阶段的分割层,具体包括:

19、当最优分配包含多个阶段时,将所述最优分配分解为最优子阶段和最后单个阶段,所述最优子阶段由个gpu计算层1到层,所述最后单个阶段由第m个gpu单独计算层到层;

20、以所述最后单个阶段的计算和通信时间最大值最小为目标,计算得到所述最后单个阶段的;

21、使用二维数组来存储的相应值与最后单个阶段的;

22、基于最后单个阶段的向前追溯递推得到所述最优子阶段中所有阶段的分割层;

23、进一步地,在所述基于最后单个阶段的向前追溯递推得到所述最优子阶段中所有阶段的分割层中,具体为:

24、由二维数组得到分割层,由二维数组得到,以此类推得到、···;

25、m台gpu的模型划分结果为第一台gpu分得层,第二台gpu分得层,第三台gpu分得层,···第m台gpu分得。

26、进一步地,网络层的计算量是通过对神经网络模型进行预训练得到,并实时检测gpum的计算能力和gpum-1与gpum间的带宽。

27、一种模型并行训练中的自适应模型划分系统,包括块构建模块、分割层计算模块、模型划分模块和循环划分模块;

28、块构建模块用于将神经网络模型的原始层划分为块,将所述块作为神经网络模型新的层结构,所述块由连续一至多个所述层构成;

29、分割层计算模块用于以划分后各阶段的计算和通信时间最大值最小为目标,计算得到神经网络模型所有阶段的分割层;

30、模型划分模块用于基于所有阶段的分割层并结合动态层迁移技术对神经网络模型进行划分,并对划分后的神经网络模型进行模型训练;

31、循环划分模块用于实时检测gpum-1与gpum之间的带宽和gpum的计算能力,设定周期固定的批处理,循环分割层计算模块和模型划分模块,以周期性更新神经网络模型划分;

32、所述的计算过程如下:

33、

34、

35、

36、

37、其中,表示使用m台机器在第1层和第层之间的最优分配的情况下,最慢阶段所用的时间,是第1层和第层之间最优子阶段中最慢阶段所用的时间;表示层与层之间传递激活和梯度所用的时间,表示gpum对层到层所需的计算时间,表示gpum对层的计算时间,表示网络层的计算量,表示层i的输出激活值,表示gpum的计算能力,表示gpum-1与gpum间的带宽,gpum表示第m个gpu编号,gpum-1表示第m-1个gpu编号。

38、一种模型并行训练中的自适应模型划分设备,所述模型划分设备包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的模型划分程序,所述模型划分程序配置用于实现如上所述的模型划分方法。

39、本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

40、本发明提供的一种模型并行训练中的自适应模型划分方法、系统及设备的优点在于:本发明结构中提供的一种模型并行训练中的自适应模型划分方法、系统及设备,能够根据不同gpu实时的计算能力及带宽进行模型划分的变化的目的,并且根据得到的模型划分可以结合提出的动态层迁移技术进行实时的模型划分调整而做到不中断当前训练过程,实现针对不同gpu时神经网络模型实时最优划分,使各节点间负载均衡,每个节点的模型训练时间相近,总时间更低。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1