CN115952856A - 一种基于双向分割的神经网络流水线并行训练方法及系统 - Google Patents
一种基于双向分割的神经网络流水线并行训练方法及系统 Download PDFInfo
- Publication number
- CN115952856A CN115952856A CN202211545031.6A CN202211545031A CN115952856A CN 115952856 A CN115952856 A CN 115952856A CN 202211545031 A CN202211545031 A CN 202211545031A CN 115952856 A CN115952856 A CN 115952856A
- Authority
- CN
- China
- Prior art keywords
- neural network
- segmentation
- model
- calculation
- propagation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了一种基于双向分割的神经网络流水线并行训练方法及系统,所述方法包括:对神经网络模型进行实机测试,获得神经网络模型的相关参数;基于神经网络模型的相关参数,以及分布式各个节点的硬件约束,通过以找到一个使得流水线执行时间最小的最优分割方案为目标的双向模型分割算法得出每个节点上需要计算的前向传播以及反向传播范围,作为模型分割的结果;根据模型分割的结果,在每个节点上部署相应部分的神经网络模型,根据前向传播和反向传播分别分割的结果,进行迭代训练,直至神经网络模型收敛。本发明提高了流水线模型并行训练系统的训练效率。
Description
技术领域
本发明涉及分布式计算技术领域,具体涉及一种神经网络流水线并行训练方法及系统。
背景技术
人工智能技术经过近几十年的发展,已经成为了计算机科学中重要的研究领域。深度神经网络凭借大数据时代的海量数据驱动,作为人工智能领域研究中的重要成果,已经促进了一系列应用领域的巨大进步,包括图像识别、语音识别和机器翻译等。
随着深度神经网络研究的发展,研究者们不断提出的精度更高,表达能力更强的深度神经网络模型。这些深度神经网络模型发展的趋势是深度更深,参数规模更大。例如在自然语言处理领域中,近年处理任务表现最好的模型的参数规模由2018年ELMo的9400万参数,到2019年GPT-2的15亿参数,再到2020年GPT-3拥有1750亿参数。由此可见,深度神经网络参数规模大小逐年迅速增长。
参数规模日益庞大的神经网络虽然带来了更好的性能表现,但也使得训练它们的计算成本越来越高。目前硬件设备GPU(Graphic Processing Unit,图形处理单元)因为其能够支持神经网络快速并行计算,而广泛的用于神经网络的模型训练过程中。通常在对一个神经网络模型进行训练时,需要将整个模型以及数据都加载到GPU的显存中进行计算。然而,即使目前最新的显存容量为80GB的NVIDIA-A100-80GB显卡,也无法单显卡装载下GPT-3的1750亿参数。如果使用主机内存来辅助存储进行模型训练,训练的模型和数据则会频繁在主机内存与显卡显存之间交换,这会带来极大的时间开销(单张NVIDIA-A100-80GB训练GPT-3理论需要288年)。
多设备协作模型训练可以打破单机设备计算、存储资源不足的限制,集合一个计算集群中所有设备的计算资源和存储资源,从而使得训练大规模神经网络的时间缩短。例如,如果能够充分使用1000张NVIDIA-A100-80GB的计算能力,理论上训练GPT-3的训练时间则会降低到1个月左右。然而,多设备协作模型训练系统的效率也会受到计算集群中设备间通信资源、调度策略等因素的限制,从而无法充分利用各设备的资源。综上所述,如何设计出一种分布式机器学习并行系统调度各设备资源,使该系统能够高效训练大规模神经网络是一个重要的研究方向。
流水线模型并行训练是目前分布式机器学习并行训练系统的一种范式。在流水线模型并行训练模式下,神经网络模型被按层分割到训练系统的各个机器上,每个机器上拥有神经网络的一部分,各个神经网络部分按照数据流向构成逻辑上的依赖关系。从拥有神经网络输入层的机器输入训练数据,在经过训练任务后将中间结果发送给拥有逻辑上下一层的设备,流水线式的依次进行训练和传递中间结果,直至模型收敛。流水线模型并行的优点是,1)支持大规模网络训练:神经网络模型被分割到各个设备上,每个设备只拥有部分模型参数,降低了存储需求;2)通信负载低:各设备间只需要发送少量中间结果,使整个系统的总通信量与模型规模无关。流水线模型并行的缺点是其无法充分利用各设备间的计算资源,因为各个设备只拥有模型的部分,在计算上存在依赖关系,计算并行性较差。尤其是,传统的按层分割方案存在各个分布式节点分配到的计算负载不均匀这一固有缺陷。如果没有较好的流水线调度策略,则会使得大部分设备会处于空闲状态。
发明内容
发明目的:为了提高流水线模型并行训练系统中的神经网络模型训练效率,解决传统按层分割方案存在的固有缺陷,本发明提出一种基于双向分割的神经网络流水线并行训练方法及系统,在模型分割阶段可以得到一个最优的模型分割结果,从而提高流水线模型并行训练系统的训练效率。
技术方案:为了实现以上发明目的,本发明的技术方案如下:
一种基于双向分割的神经网络流水线并行训练方法,包括以下步骤:
对神经网络模型进行实机测试,获得神经网络模型的相关参数;
基于神经网络模型的相关参数,以及分布式各个节点的硬件约束,通过以找到一个使得流水线执行时间最小的最优分割方案为目标的双向模型分割算法得出每个节点上需要计算的前向传播以及反向传播范围,作为模型分割的结果;
根据模型分割的结果,在每个节点上部署相应部分的神经网络模型,根据前向传播和反向传播分别分割的结果,进行迭代训练,直至神经网络模型收敛。
其中,所述双向模型分割算法以A(i1,j1,i2,j2,m)代表在m个节点上执行神经网络训练前向传播范围从第i1层到第j1层、反向传播范围从第i2层到第j2层的执行时间,其中1≤i1,j1,i2,j2≤L,L为神经网络层数最大值,通过动态规划的思想,将求解问题A(i1,j1,i2,j2,m)分解为求解两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),其中利用三元组(s1,s2,m′)对母问题进行分割,i1≤s1≤j1,i2≤s2≤j2,1≤m′≤m,s1分割了前向计算范围[i1,j1],s2分割了反向计算范围[i2,j2],m’分割了设备数量。
对问题A(i1,j1,i2,j2,m)的求解公式表示为:
其中as1表示对于前向计算在s1处进行分割输出的激活值大小,as2表示对于后向计算在s2处进行分割输出的激活值大小。
进一步地,所述双向模型分割算法包括:
当m=1时,通过直接计算设备前向传播和反向传播所包含的层的计算时间得到所有合法的A(i1,j1,i2,j2,1);
从m=2开始,逐个计算所有合法的A(i1,j1,i2,j2,m),并且遍历所有合法的三元组(s1,s2,m′),通过动态规划的思想,利用三元组(s1,s2,m′)分割A(i1,j1,i2,j2,m)得到两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),穷举所有的三元组(s1,s2,m′)找到令A(i1,j1,i2,j2,m)所代表的流水线执行时间最短的那一个三元组,然后记录下该最优的A(i1,j1,i2,j2,m)的值作为后续求解其余A(i1,j1,i2,j2,m)的子问题的值,并且记录下该最优值对应的三元组(s1,s2,m′)代表该次分割点;
最终,得到A(1,L,1,L,m)后,该时间就是通过动态规划求解后的流水线并行执行时间最小时间,通过递归的方式,对该值对应的五元组(1,L,1,L,m)进行回溯,得出每个值对应的三元组的值(s1,s2,m′),即为模型分割方案的结果。
一种基于双向分割的神经网络流水线并行训练系统,包括:
模型评估模块,用于对神经网络模型进行实机测试,获得神经网络模型的相关参数;
双向模型分割模块,用于基于神经网络模型的相关参数,以及分布式各个节点的硬件约束,通过以找到一个使得流水线执行时间最小的最优分割方案为目标的双向模型分割算法得出每个节点上需要计算的前向传播以及反向传播范围,作为模型分割的结果;
流水线并行模块,用于根据模型分割的结果,在每个节点上部署相应部分的神经网络模型,根据前向传播和反向传播分别分割的结果,进行迭代训练,直至神经网络模型收敛。
其中,所述双向模型分割算法以A(i1,j1,i2,j2,m)代表在m个节点上执行神经网络训练前向传播范围从第i1层到第j1层、反向传播范围从第i2层到第j2层的执行时间,其中1≤i1,j1,i2,j2≤L,L为神经网络层数最大值,通过动态规划的思想,将求解问题A(i1,j1,i2,j2,m)分解为求解两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),其中利用三元组(s1,s2,m′)对母问题进行分割,i1≤s1≤j1,i2≤s2≤j2,1≤m′≤m,s1分割了前向计算范围[i1,j1],s2分割了反向计算范围[i2,j2],m’分割了设备数量。
对问题A(i1,j1,i2,j2,m)的求解公式表示为:
其中as1表示对于前向计算在s1处进行分割输出的激活值大小,as2表示对于后向计算在s2处进行分割输出的激活值大小。
进一步地,所述双向模型分割模块包括:
初始化单元,用于当m=1时,通过直接计算设备前向传播和反向传播所包含的层的计算时间得到所有合法的A(i1,j1,i2,j2,1);
迭代分割单元,用于从m=2开始,逐个计算所有合法的A(i1,j1,i2,j2,m),并且遍历所有合法的三元组(s1,s2,m′),通过动态规划的思想,利用三元组(s1,s2,m′)分割A(i1,j1,i2,j2,m)得到两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),穷举所有的三元组(s1,s2,m′)找到令A(i1,j1,i2,j2,m)所代表的流水线执行时间最短的那一个三元组,然后记录下该最优的A(i1,j1,i2,j2,m)的值作为后续求解其余A(i1,j1,i2,j2,m)的子问题的值,并且记录下该最优值对应的三元组(s1,s2,m′)代表该次分割点;
回溯计算单元,用于在得到A(1,L,1,L,m)后,该时间就是通过动态规划求解后的流水线并行执行时间最小时间,通过递归的方式,对该值对应的五元组(1,L,1,L,m)进行回溯,得出每个值对应的三元组的值(s1,s2,m′),即为模型分割方案的结果。
本发明与现有技术相比,具有如下优点和有益效果:本发明打破传统流水线并行中按层分割的模型分割方案,针对神经网络训练分为前向传播和反向传播两种计算的特点,设计了一种基于双向模型分割的算法,该算法将前向传播和反向传播分别进行分割。最终使用动态规划的思想,在多项式时间内找到了目标神经网络的最优双向分割方案,以此让各个节点分割到的计算任务负载更均衡,来达到实现流水线系统训练加速的目的。最终加速效果可以比传统方式加速近1.9倍。
附图说明
图1是根据本发明的双向模型分割系统示意图;
图2是根据本发明实施例的双向模型分割示例;
图3是本发明实施例中传统按层模型分割1F1B流水线并行示意图;
图4是本发明实施例中双向模型分割1F1B流水线并行示意图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
图1所示为本发明的双向模型分割系统示意图,系统包括三个模块,(1)模型评估模块:评估模块会对目标神经网络进行实机测试,并且得出供模型分割算法进行模型分割的相关参数,例如每层的计算时间、参数大小以及激活值大小;(2)双向模型分割模块:根据评估模块得出的目标神经网络的相关数据,以及分布式各个节点的硬件约束,例如带宽大小、存储能力的约束,通过双向模型分割算法,最终得出每个节点上需要计算的前向传播以及反向传播范围,作为模型分割的结果;(3)流水线并行模块:使用双向模型分割模块的模型分割结果,将每个节点上部署相应部分的模型,然后按照训练的顺序开始使用1F1B的策略来训练整个神经网络,并且因为模型分割时双向的,所以允许神经网络某层的前向传播和反向传播计算不在同一个设备上,根据前向传播和反向传播的分别分割的结果,进行迭代训练,最终直至模型收敛。
相应的,本发明所述的基于双向分割的神经网络流水线并行训练方法,包括以下步骤:
S1、对目标神经网络进行实机测试,获得供模型分割算法进行模型分割的相关参数,例如每层的计算时间、参数大小以及激活值大小;
S2、基于目标神经网络的相关参数,以及分布式各个节点的硬件约束,例如带宽大小、存储能力的约束,通过以找到一个最优的分割方案使得流水线执行时间最小为目标的双向模型分割算法得出每个节点上需要计算的前向传播以及反向传播范围,作为模型分割的结果;
S3、根据双向模型分割结果,在每个节点上部署相应部分的模型,然后按照训练的顺序使用1F1B的策略来训练整个神经网络,根据前向传播和反向传播的分别分割的结果,进行迭代训练,直至模型收敛。
所述的实机测试,是指使用数据集在一台设备上对神经网络进行训练,用来收集神经网络的相关参数。
根据本发明的实施方式,双向模型分割分别分割前向传播和反向传播两部分计算,这样最后通过双向模型分割算法得到的结果由每个节点上的前向传播范围和反向传播范围组成,这些范围都是神经网络中连续的层。假设有一个深度神经网络模型由L层组成,每层的前向传播计算用Fl表示,每层的反向传播计算用Bl表示。令D作为节点集合,由若干个设备组成,每个设备Di在经过双向模型分割算法后都会得到前向传播范围从Fi1到Fj1,反向传播范围从Bi2到Bj2。这两个范围分别代表了在后续流水线并行模块中Di节点应该执行的前向传播计算和反向传播计算,此外,对于任意节点Di的前向传播范围以及反向传播范围都不能与其他节点重叠,均需要满足以下约束:
其中与分别代表前一个节点Di-1前向传播和反向传播范围的右端点,与则表示后一个节点Di+1的前向传播和反向传播范围的左端点。显然,当所有节点满足i1=i2且j1=j2时,也就是说每个节点上的前向传播计算范围和反向传播计算范围一致,则双向模型分割方法的结果就等同于了传统按层分割方法。因此,也可以认为传统按层方法是双向模型分割方法的一个特例,直观来看,通过双向模型分割方法,可以探索更多分割结果的可能,从而在其中可以找到一种使得流水线模型并行效率更高的一种分割方案。
根据本发明的实施方式,双向模型分割算法的目标是找到一个最优的分割方案可以使得流水线执行时间最小。令A(i1,j1,i2,j2,m)代表在m个节点上执行深度神经网络DNN训练前向传播范围为Fi1到Fj1,反向传播范围为Bi2到Bj2的执行时间,其中1≤i1,j1,i2,j2≤L,(L为目标DNN层数最大值),[i1,j1]代表进行前向传播的层范围从第i1层到第j1层,[i2,j2]代表进行反向传播的层范围从第i2层到第j2层,则我们有:
通过动态规划的思想,将母问题求解A(i1,j1,i2,j2,m)分解为两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),其中利用三元组(s1,s2,m′)对于母问题进行分割,其中i1≤s1≤j1,i2≤s2≤j2,1≤m′≤m,s1分割了前向计算范围[i1,j1],s2分割了反向计算范围[i2,j2],m′分割了设备数量,那么动态规划方程的状态转移也就可以由上面的式子得出,其中max项分别由两个子问题的最优解和一个中间传输时间(中间传输时间由(传输量/带宽)得到,对于前向计算在s1处进行分割,那么输出的激活值大小则为as1,同理反向传播输出的激活值大小为as2),取最大值得出。
所述双向模型分割算法具体过程如下:
1)输入:对于目标神经网络的每一层l,需要通过评估模块得到前向传播计算时间反向传播计算时间Tl b,模型参数大小wl以及激活输出大小al。同时,也需要测量得到节点间的带宽B,节点的存储容量C以及节点数量M。
2)初始化:当m=1时,即设备数量为1的时候,所有合法的A(i1,j1,i2,j2,1)都可以通过直接计算其前向传播和反向传播所包含的层的计算时间得到。
3)从m=2开始,逐个计算所有合法的A(i1,j1,i2,j2,m),(合法的含义即为不能出现i1>j1且i2>j2,即区间左端点超过右端点)并且遍历所有合法的三元组(s1,s2,m′)(合法的含义即满足i1≤s1≤j1,i2≤s2≤j2,1≤m′≤m),通过动态规划的思想,利用三元组(s1,s2,m′)分割A(i1,j1,i2,j2,m)得到两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),穷举所有的三元组(s1,s2,m′)找到令A(i1,j1,i2,j2,m)所代表的流水线执行时间最短的那一个三元组,然后记录下该最优的A(i1,j1,i2,j2,m)的值作为后续求解其余A(i1,j1,i2,j2,m)的子问题的值,并且记录下该最优值对应的三元组(s1,s2,m′)代表该次分割点用以最后得到各个节点的分割结果。
4)最终,得到A(1,L,1,L,m)后,该时间就是通过动态规划求解后的流水线并行执行时间最小时间,通过递归的方式,对该值对应的五元组(1,L,1,L,m)进行回溯,由于每个A(i1,j1,i2,j2,m)在求解最小值时都会记录一个唯一对应的三元组(s1,s2,m′)代表两个子问题分别为A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),两个子问题又向下继续使用对应的三元组进行分割,直到五元组A的第五维为1时停止。相当于一颗二叉树不断分裂,最后的所有叶子节点都代表单个设备上拥有的前向计算和反向计算的范围,这也是最终的模型分割方案的结果。
根据本发明的设施方式,在分割后的模型训练中使用1F1B的流水线并行策略,该策略同时输入节点数量batch数据,流水线中的节点在做完一次前向计算后立刻进行一次反向计算,两个计算的batch数据不同。通过这种1F1B节点调度策略,在达到稳定阶段下,能够使流水线中的各设备计算达到满载,即没有空闲的设备存在。
相应地,本发明所述的双向模型分割模块包括:
输入单元,用于输入参数,包括对于目标神经网络的每一层l的前向传播计算时间Tl f,反向传播计算时间Tl b,模型参数大小wl以及激活输出大小al,以及节点间的带宽B,节点的存储容量C以及节点数量M;
初始化单元,用于当m=1时,通过直接计算设备前向传播和反向传播所包含的层的计算时间得到所有合法的A(i1,j1,i2,j2,1);
迭代分割单元,用于从m=2开始,逐个计算所有合法的A(i1,j1,i2,j2,m),并且遍历所有合法的三元组(s1,s2,m′),通过动态规划的思想,利用三元组(s1,s2,m′)分割A(i1,j1,i2,j2,m)得到两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),穷举所有的三元组(s1,s2,m′)找到令A(i1,j1,i2,j2,m)所代表的流水线执行时间最短的那一个三元组,然后记录下该最优的A(i1,j1,i2,j2,m)的值作为后续求解其余A(i1,j1,i2,j2,m)的子问题的值,并且记录下该最优值对应的三元组(s1,s2,m′)代表该次分割点;
回溯计算单元,用于在得到A(1,L,1,L,m)后,该时间就是通过动态规划求解后的流水线并行执行时间最小时间,通过递归的方式,对该值对应的五元组(1,L,1,L,m)进行回溯,得出每个值对应的三元组的值(s1,s2,m′),即为模型分割方案的结果。
如图2所示,本发明实施例中,对于一个拥有4层的神经网络,在3台机器上进行训练。首先,对于神经网络每层的前向传播计算时间和反向传播计算时间可以用单机测试得到。这里假设每层的前向传播计算时间为F={1,3,2,3},为了不失一般性,一般神经网络中一层的反向传播计算时间为前向传播的2倍,所以反向传播计算时间这里为B={2,6,4,6}。
使用传统按层分割的算法,同一个机器上分配到的任务以层为单位,在执行时需要执行该层所代表的前向传播计算和反向传播计算,所以,通过算法后得出来的最优分割方案为设备1上拥有1-2层,设备2上拥有3层以及设备3上拥有4层,当通过此分割方案最后执行流水线并行后,显然每个机器上训练负载可以计算得出为{12,6,9}。图3则说明了此种分割方案的流水线并行训练时,每个机器上每个时刻的计算任务,可以看出,流水线整体训练的执行时间被负载最重的机器设备1的负载12给限制住了,其他机器设备2和设备3在流水线并行进入稳定阶段都会出现灰色块——空闲时间,说明设备在闲置,没有充分利用上其计算资源。
使用双向模型分割算法,以同样的例子,最后得出来的最优分割方案为设备1上拥有{F1}和{B1,B2},设备2上拥有{F2,F3}和{B3},设备3{F4}和{B4}。计算出的每个机器上的负载为{9,9,9},显然在流水线中的各个机器的计算负载完全均匀,图4也就是使用了该分割结果的流水线并行训练的计算图,可以看出,在稳定阶段,每个机器都进入了满载,即没有空闲时间浪费计算资源。
最后,通过该例子也可以看出,双向模型分割算法的优势在于可以均衡流水线中各个节点的计算负载,从而达到充分利用计算资源,提高训练效率的目的。图4描述的也是前面的例子中使用了双向模型分割算法后每个机器上拥有的部分模型情况。值得注意的是,设备1上仅执行层2的反向传播计算,设备2上仅执行层2的前向传播计算,所以层2就是重叠层,使用这种重叠层,能够允许重叠层的前向传播、反向传播计算分离开在不同的机器上执行,从而使得整个模型分割的结果变得负载更加均匀。
Claims (10)
1.一种基于双向分割的神经网络流水线并行训练方法,其特征在于,包括以下步骤:
对神经网络模型进行实机测试,获得神经网络模型的相关参数;
基于神经网络模型的相关参数,以及分布式各个节点的硬件约束,通过以找到一个使得流水线执行时间最小的最优分割方案为目标的双向模型分割算法得出每个节点上需要计算的前向传播以及反向传播范围,作为模型分割的结果;
根据模型分割的结果,在每个节点上部署相应部分的神经网络模型,根据前向传播和反向传播分别分割的结果,进行迭代训练,直至神经网络模型收敛。
2.根据权利要求1所述的方法,其特征在于,所述双向模型分割算法以A(i1,j1,i2,j2,m)代表在m个节点上执行神经网络训练前向传播范围从第i1层到第j1层、反向传播范围从第i2层到第j2层的执行时间,其中1≤i1,j1,i2,j2≤L,L为神经网络层数最大值,通过动态规划的思想,将求解问题A(i1,j1,i2,j2,m)分解为求解两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),其中利用三元组(s1,s2,m′)对母问题进行分割,i1≤s1≤j1,i2≤s2≤j2,1≤m′≤m,s1分割了前向计算范围[i1,j1],s2分割了反向计算范围[i2,j2],m’分割了设备数量。
4.根据权利要求3所述的方法,其特征在于,所述双向模型分割算法包括:
当m=1时,通过直接计算设备前向传播和反向传播所包含的层的计算时间得到所有合法的A(i1,j1,i2,j2,1);
从m=2开始,逐个计算所有合法的A(i1,j1,i2,j2,m),并且遍历所有合法的三元组(s1,s2,m′),通过动态规划的思想,利用三元组(s1,s2,m′)分割A(i1,j1,i2,j2,m)得到两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),穷举所有的三元组(s1,s2,m′)找到令A(i1,j1,i2,j2,m)所代表的流水线执行时间最短的那一个三元组,然后记录下该最优的A(i1,j1,i2,j2,m)的值作为后续求解其余A(i1,j1,i2,j2,m)的子问题的值,并且记录下该最优值对应的三元组(s1,s2,m′)代表该次分割点;
最终,得到A(1,L,1,L,m)后,该时间就是通过动态规划求解后的流水线并行执行时间最小时间,通过递归的方式,对该值对应的五元组(1,L,1,L,m)进行回溯,得出每个值对应的三元组的值(s1,s2,m′),即为模型分割方案的结果。
5.根据权利要求1所述的方法,其特征在于,训练神经网络模型使用1F1B的策略,同时输入节点数量batch数据,流水线中的节点在做完一次前向计算后立刻进行一次反向计算,两个计算的batch数据不同。
6.一种基于双向分割的神经网络流水线并行训练系统,其特征在于,包括:
模型评估模块,用于对神经网络模型进行实机测试,获得神经网络模型的相关参数;
双向模型分割模块,用于基于神经网络模型的相关参数,以及分布式各个节点的硬件约束,通过以找到一个使得流水线执行时间最小的最优分割方案为目标的双向模型分割算法得出每个节点上需要计算的前向传播以及反向传播范围,作为模型分割的结果;
流水线并行模块,用于根据模型分割的结果,在每个节点上部署相应部分的神经网络模型,根据前向传播和反向传播分别分割的结果,进行迭代训练,直至神经网络模型收敛。
7.根据权利要求6所述的系统,其特征在于,所述双向模型分割算法以A(i1,j1,i2,j2,m)代表在m个节点上执行神经网络训练前向传播范围从第i1层到第j1层、反向传播范围从第i2层到第j2层的执行时间,其中1≤i1,j1,i2,j2≤L,L为神经网络层数最大值,通过动态规划的思想,将求解问题A(i1,j1,i2,j2,m)分解为求解两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),其中利用三元组(s1,s2,m′)对母问题进行分割,i1≤s1≤j1,i2≤s2≤j2,1≤m′≤m,s1分割了前向计算范围[i1,j1],s2分割了反向计算范围[i2,j2],m’分割了设备数量。
9.根据权利要求7所述的系统,其特征在于,所述双向模型分割模块包括:
初始化单元,用于当m=1时,通过直接计算设备前向传播和反向传播所包含的层的计算时间得到所有合法的A(i1,j1,i2,j2,1);
迭代分割单元,用于从m=2开始,逐个计算所有合法的A(i1,j1,i2,j2,m),并且遍历所有合法的三元组(s1,s2,m′),通过动态规划的思想,利用三元组(s1,s2,m′)分割A(i1,j1,i2,j2,m)得到两个子问题A(i1,s1,i2,s2,m-m′)和A(s1+1,j1,s2+1,j2,m′),穷举所有的三元组(s1,s2,m′)找到令A(i1,j1,i2,j2,m)所代表的流水线执行时间最短的那一个三元组,然后记录下该最优的A(i1,j1,i2,j2,m)的值作为后续求解其余A(i1,j1,i2,j2,m)的子问题的值,并且记录下该最优值对应的三元组(s1,s2,m′)代表该次分割点;
回溯计算单元,用于在得到A(1,L,1,L,m)后,该时间就是通过动态规划求解后的流水线并行执行时间最小时间,通过递归的方式,对该值对应的五元组(1,L,1,L,m)进行回溯,得出每个值对应的三元组的值(s1,s2,m′),即为模型分割方案的结果。
10.根据权利要求1所述的系统,其特征在于,训练神经网络模型使用1F1B的策略,同时输入节点数量batch数据,流水线中的节点在做完一次前向计算后立刻进行一次反向计算,两个计算的batch数据不同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211545031.6A CN115952856A (zh) | 2022-12-04 | 2022-12-04 | 一种基于双向分割的神经网络流水线并行训练方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211545031.6A CN115952856A (zh) | 2022-12-04 | 2022-12-04 | 一种基于双向分割的神经网络流水线并行训练方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115952856A true CN115952856A (zh) | 2023-04-11 |
Family
ID=87295866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211545031.6A Pending CN115952856A (zh) | 2022-12-04 | 2022-12-04 | 一种基于双向分割的神经网络流水线并行训练方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115952856A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991483A (zh) * | 2023-09-25 | 2023-11-03 | 粤港澳大湾区数字经济研究院(福田) | 一种针对语言模型计算的流水线并行方法及装置 |
-
2022
- 2022-12-04 CN CN202211545031.6A patent/CN115952856A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991483A (zh) * | 2023-09-25 | 2023-11-03 | 粤港澳大湾区数字经济研究院(福田) | 一种针对语言模型计算的流水线并行方法及装置 |
CN116991483B (zh) * | 2023-09-25 | 2024-04-05 | 粤港澳大湾区数字经济研究院(福田) | 一种针对语言模型计算的流水线并行方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4036724A1 (en) | Method for splitting neural network model by using multi-core processor, and related product | |
EP4036803A1 (en) | Neural network model processing method and apparatus, computer device, and storage medium | |
US20180018555A1 (en) | System and method for building artificial neural network architectures | |
US20230297846A1 (en) | Neural network compression method, apparatus and device, and storage medium | |
WO2018099085A1 (zh) | 一种神经网络模型的训练方法、装置及芯片 | |
US10515306B1 (en) | Partial activation of multiple pathways in neural networks | |
US20220121903A1 (en) | Method of performing splitting in neural network model by means of multi-core processor, and related product | |
US20220335304A1 (en) | System and Method for Automated Design Space Determination for Deep Neural Networks | |
CN112101525A (zh) | 一种通过nas设计神经网络的方法、装置和系统 | |
Dong et al. | Multi-exit DNN inference acceleration based on multi-dimensional optimization for edge intelligence | |
US20200226458A1 (en) | Optimizing artificial neural network computations based on automatic determination of a batch size | |
CN115437795B (zh) | 一种异构gpu集群负载感知的显存重计算优化方法及系统 | |
CN115358413A (zh) | 一种点云多任务模型的训练方法、装置及电子设备 | |
CN115952856A (zh) | 一种基于双向分割的神经网络流水线并行训练方法及系统 | |
CN115699041A (zh) | 利用专家模型的可扩展迁移学习 | |
US20230016827A1 (en) | Adaptive offloading of federated learning | |
Cheng et al. | Swiftnet: Using graph propagation as meta-knowledge to search highly representative neural architectures | |
WO2022036520A1 (en) | Method and apparatus for enhancing performance of machine learning classification task | |
Zhang et al. | Af-dndf: Asynchronous federated learning of deep neural decision forests | |
CN116644804A (zh) | 分布式训练系统、神经网络模型训练方法、设备和介质 | |
CN116400963A (zh) | 一种基于负载均衡的模型自动并行方法、设备及存储介质 | |
Zhan et al. | Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems | |
CN110852414A (zh) | 高精度低位卷积神经网络 | |
CN115345303A (zh) | 卷积神经网络权重调优方法、装置、存储介质和电子设备 | |
Li et al. | CoAxNN: Optimizing on-device deep learning with conditional approximate neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |