当前位置: 首页 > 专利查询>之江实验室专利>正文

基于参数计算和通信调度的分布式训练加速方法和系统技术方案

技术编号:37877495 阅读:14 留言:0更新日期:2023-06-15 21:05
基于参数计算和通信调度的分布式训练加速方法,包括:根据反向传播算法各层梯度之间不存在依赖关系的特点,通过调整梯度计算顺序,优先计算模型靠前层的梯度,从而提早梯度的传输时间,使得下轮该层的前向传播过程能够更早开始;对于梯度传输过程,通过动态枚举梯度拆分或融合阈值,并结合实时运行情况来选择性能最优的方案。还包括一种基于参数计算和通信调度的分布式训练加速系统。本发明专利技术增加了计算和通信之间的覆盖度,提升了训练性能,且实现上简单灵活,能够快速适配不同的模型及训练环境。环境。环境。

【技术实现步骤摘要】
基于参数计算和通信调度的分布式训练加速方法和系统


[0001]本专利技术属于分布式深度学习领域,更具体地,涉及基于参数计算和通信调度的分布式训练加速方法和系统。

技术介绍

[0002]随着深度学习模型规模和数据规模的不断增加,单卡计算已经无法满足训练需求,主要表现在:(1)当模型参数量很大时,单卡内存不足以存下整个模型;(2)使用单卡训练时间周期长,难以进行快速迭代。为此,分布式训练相关技术和平台应运而生。数据并行是常见的分布式训练方法之一,其特点是:(1)每个计算节点拥有完整的模型副本;(2)在训练过程中,不同计算节点之间需要频繁地进行通信,以实时同步模型参数,并保证多副本参数的一致性。在运行过程中,随着计算节点的增加,通信开销会迅速增长;节点间的同步会导致大量计算资源处于等待状态,最终影响整个模型训练的性能。增加计算与通信耗时之间的覆盖度可以减少因通信同步导致的计算资源的闲置,从而减少每轮迭代的耗时,是常见的优化方法。
[0003]具体地,在单卡训练场景下,深度学习主要由前向传播和反向传播两个过程组成:在前向传播阶段,从模型的输入层开始,根据模型当前参数,逐层往后推进计算直至得到损失函数值;在反向传播阶段,从模型最后一层开始,从后往前反向计算各层参数的梯度,并根据优化算法更新参数。相比单卡训练场景,在分布式训练场景下,各节点完成参数更新后,还需要在不同计算节点之间进行参数同步。串行同步方式和计算没有任何重叠,因此耗时较高。现有优化通常基于无需等待的反向传播(Wait Free Back Propagation,WFBP)展开。 WFBP的基本思路是:在反向传播阶段,由于相邻两层的梯度计算和同步不存在依赖,因此每计算完一层参数的梯度后,可以开始该层梯度的同步,同时进行下一层参数的梯度计算,使得计算和通信可以并行执行。更进一步,由于模型中不同层的参数大小存在差异,对于参数量较大的层可以通过切分分批传输,对于参数量较小的层可以与其他层融合传输,以此加快通信时间。此外,在前向传播过程中,通过优先级调整各层的梯度传输顺序,可以减少前向传播阶段的计算等待时间,避免计算资源的闲置。
[0004]上述优化方法主要基于无需等待的反向传播展开,通过层优先级、梯度拆分或融合的方式增加计算和通信耗时的覆盖度,达到加速的效果。但是存在以下一些缺点:(1)在梯度拆分或融合策略中,依据启发式算法或经验设定梯度拆分或融合阈值,存在复杂度较高且不灵活问题;(2)未面向反向传播阶段的计算过程进行优化。

技术实现思路

[0005]本专利技术要克服现有技术的上述缺点,提供基于参数计算和通信调度的分布式训练加速方法。
[0006]本专利技术可以解决现有技术中存在的依据经验设定梯度拆分或融合阈值,且复杂度较高、不灵活问题,同时针对反向传播阶段的计算过程进行优化。
[0007]为实现上述目的,本专利技术采取的技术方案为:
[0008]基于参数计算和通信调度的分布式训练加速方法,包括以下一些步骤:
[0009]S1:模型预热,初始化用于梯度拆分或融合的判断阈值以及反向传播梯度计算顺序,然后对阈值和计算顺序进行枚举,根据实时反馈的训练情况,找到训练耗时最优的阈值和梯度计算顺序。
[0010]S2:各个计算节点同步获取最新版本的模型参数,逐层进行前向传播并得到损失函数值。
[0011]S3:根据前向传播的结果,从后往前逐层进行反向传播计算,并根据步骤S1中得到的反向传播计算调度策略,对梯度计算顺序进行调整。
[0012]S4:反向传播过程中各层梯度计算完成后,根据步骤S1中的阈值,对梯度采取拆分或融合后进行同步。
[0013]S5:完成反向传播计算及同步过程,再次进入步骤S2,进入新一轮迭代,直至模型收敛。
[0014]下面对上述步骤做更详细的说明。
[0015]步骤S1具体为:模型预热过程通过对梯度拆分或融合的阈值以及反向传播梯度计算顺序的枚举并结合实时训练情况的监控来找到最佳的阈值和计算顺序,该过程包含两个步骤,具体如下:
[0016]S11:通过枚举产生最优的梯度拆分或融合阈值;
[0017]S12:通过枚举产生最优的反向传播阶段梯度计算调整层序号K。
[0018]所述步骤S11的具体过程如下:
[0019]S111:初始化阈值,每次枚举将阈值增加该值的10%,即经过n轮枚举后,阈值大小为,当n=100时,停止枚举。
[0020]S112:梯度同步过程中,将阈值同梯度数据进行对比,如果梯度数据大于该值,则将梯度拆分为若干个大小的块后进行传输;如果梯度数据小于该值,则将当前层梯度与后续层梯度合并后进行传输。
[0021]S113:记录每轮迭代的耗时,选择耗时最低的枚举值作为梯度拆分或融合的判断阈值。
[0022]所述步骤S12的具体过程如下:
[0023]S121:根据损失函数从最后一层开始从后往前逐层计算每一层的误差项,其中L表示模型层序号,误差项用于计算当前层的梯度和上一层的误差项。
[0024]S122:调整梯度计算顺序,原有梯度计算顺序为,通过枚举梯度计算调整层序号K,新的梯度计算顺序调整为,即先计算第层的梯度,再计算第层的梯度,其中L表示模型的层数。
[0025]S123:记录每次新梯度计算顺序的单轮迭代耗时,最后从所有梯度计算顺序中选择耗时最优的方案,确定最优的反向传播阶段梯度计算调整层序号。
[0026]步骤S2具体为:各个计算节点同步获取最新版本的模型参数,通过在模型每层设
置的局部同步标志位来控制最新的参数是否获取,如果局部同步标志位为0,表示参数同步过程仍在进行中,需要等待同步过程完成;反之,如果局部同步标志位为1,则可以开始执行该层的前向传播计算。每层的前向传播计算完成后,将局部同步标志位重新置为0,用于阻塞下轮迭代的启动。如此逐层向后推进,直到计算得到本轮迭代的损失函数值。
[0027]步骤S3具体为:根据前向传播结果,从后往前逐层进行反向传播计算,梯度计算顺序按照步骤S12中得到的顺序执行,假如步骤S12中最优梯度计算调整层序号为,那么梯度计算顺序为。
[0028]步骤S4具体为:执行梯度同步过程,反向传播各层梯度计算完成后,根据梯度数据大小与步骤S11中得到的阈值比较,决定采取梯度拆分或融合的方式进行传输。具体的同步过程如下:
[0029]S41:如果梯度数据大于阈值,则将梯度拆分为若干个大小的块,每个块赋予该层梯度的优先级,并存入用于传输的优先级队列;
[0030]S42:如果梯度数据小于阈值,则将该层梯度同后续层梯度猴合并,为合并的梯度赋予后续层梯度的优先级,并存入用于传输的优先级队列;
[0031]S43:从优先级队列中根据梯度优先级依次取出梯度数据用于传输;每一层梯度同步完成后,将局部同步标志位置为1。
[0032]步骤S5具体为:完成反向传播计算和梯度同步过程后,进入下一轮迭代,从步骤S2开始循环执行上述过程,直到模型本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于参数计算和通信调度的分布式训练加速方法,其特征在于,包括以下步骤:S1:模型预热,初始化用于梯度拆分或融合的判断阈值以及反向传播梯度计算顺序,然后对阈值和计算顺序进行枚举,根据实时反馈的训练情况,找到训练耗时最优的阈值和梯度计算顺序;S2:各个计算节点同步获取最新版本的模型参数,逐层进行前向传播并得到损失函数值;S3:根据前向传播的结果,从后往前逐层进行反向传播计算,并根据步骤S1中得到的反向传播计算调度策略,对梯度计算顺序进行调整;S4:反向传播过程中各层梯度计算完成后,根据步骤S1中的阈值,对梯度采取拆分或融合后进行同步;S5:完成反向传播计算及同步过程,再次进入步骤S2,进入新一轮迭代,直至模型收敛。2.根据权利要求1所述的基于参数计算和通信调度的分布式训练加速方法,其特征在于,所述步骤S1具体为:S11:通过枚举产生最优的梯度拆分或融合阈值;S12:通过枚举产生最优的反向传播阶段梯度计算调整层序号。3.根据权利要求2所述的基于参数计算和通信调度的分布式训练加速方法,其特征在于,所述步骤S11的具体子步骤如下:S111:初始化阈值,每次枚举将阈值增加该值的10%,即经过轮枚举后,阈值大小为,当时,停止枚举;S112:梯度同步过程中,将阈值同梯度数据进行对比,如果梯度数据大于该值,则将梯度拆分为若干个大小的块后进行传输;如果梯度数据小于该值,则将当前层梯度与后续层梯度合并后进行传输;S113:记录每轮迭代的耗时,选择耗时最低的枚举值作为梯度拆分或融合的判断阈值。4.根据权利要求2所述的基于参数计算和通信调度的分布式训练加速方法,其特征在于,所述步骤S12的具体子步骤如下:S121:根据损失函数从最后一层开始从后往前逐层计算每一层的误差项,其中表示模型层序号,误差项用于计算当前层的梯度和上一层的误差项;S122:调整梯度计算顺序,原有梯度计算顺序为,通过枚举梯度计算调整层序号,新的梯度计算顺序调整为,即先计算第层的梯度,再计算第层的梯度,其中表示模型的层数;S123:记录每次新梯度计算顺序的单轮迭代耗时,最后从所有梯度计算顺序中选择耗时最优的方案,确定最优的反向传播阶段梯度计算调整层序号。5.根据权利要求1所述的基于参数计算和通信调度的分布式训练加速方法,其特征在于,所述步骤S2具体为:各个计算节点同步获取最新版本的模型参数,通过在模型每层设置的局部同步标志位来控制最新的参数是否获取,如果局部同步标志位为0,表示参数同步过程仍在进行中,需要等待同步过程完成;反之,如果局部同步标志位为1,则开始执行该层的前向传播计算...

【专利技术属性】
技术研发人员:施林锋吴运翔胡学典王博李勇程稳刘懿陈光曾令仿
申请(专利权)人:之江实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1