一种参数梯度同步方法、装置、设备及存储介质制造方法及图纸

技术编号:37188792 阅读:20 留言:0更新日期:2023-04-20 22:51
本申请涉及分布式模型训练技术领域,公开了一种参数梯度同步方法、装置、设备及存储介质,包括:获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。能够提高模型训练过程中的网络带宽利用率及梯度数据同步性能。率及梯度数据同步性能。率及梯度数据同步性能。

【技术实现步骤摘要】
一种参数梯度同步方法、装置、设备及存储介质


[0001]本专利技术涉及分布式模型训练
,特别涉及一种参数梯度同步方法、装置、设备及存储介质。

技术介绍

[0002]近年来,深度神经网络获得了广泛的应用,并且其模型尺寸变得越来越大,这种增长使得高效的模型训练变得更加重要,分布式训练应运而生。目前的分布式模型训练方法中最常用且应用最广泛的是数据并行训练方法。数据并行方法将待训练的输入数据进行划分,每次训练迭代过程中在多块加速设备上同时训练多个batch数据。数据并行又分为同步数据并行和异步数据并行两种方法。其中同步数据并行方法,是待所有加速设备计算出模型权重参数的梯度后,统一将多个梯度合在一起得到全局一致的梯度数据,最后利用该梯度数据去更新共享模型参数。这种方法可以减少用于计算梯度的权重的陈旧性,使模型最终能够达到较高的收敛精度,具有较好的统计效率,因此应用广泛。在同步数据并行的分布式算法中,模型参数的梯度同步是必不可少的一个关键步骤。现有的梯度同步方案中,张量融合可能会导致模型参数梯度同步的效率低下。理想情况下,张量融合过程会在整个训练过程中产生均衡的融合响应,产生更大尺寸的通信缓冲区以提高网络利用率。但由于张量融合与控制逻辑的执行周期密切相关,所产生的通信缓冲区大小是动态变化的。一些周期内会以只有几个甚至只有一个待处理的张量,从而在较小的缓冲区产生较低的通信效率。
[0003]因此,上述技术问题亟待本领域技术人员解决。

技术实现思路

[0004]有鉴于此,本专利技术的目的在于提供一种参数梯度同步方法、装置、设备及存储介质,能够提高模型训练过程中的网络带宽利用率及梯度数据同步性能。其具体方案如下:本申请的第一方面提供了一种参数梯度同步方法,包括:获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据;基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到;对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。
[0005]可选的,进行线上训练之前,还包括:在线下确定所述待训练模型的各参数梯度大小,并确定训练过程中将要使用的融
合缓冲区大小及确定各参数梯度执行顺序;按照预设分组规则根据各参数梯度大小、融合缓冲区大小及各参数梯度执行顺序对所述待训练模型的各参数梯度进行均衡分组,得到以各参数梯度对应的张量数据表示的所述参数梯度分组列表。
[0006]可选的,所述在线下确定各参数梯度执行顺序,包括:在线下根据所述待训练模型的各参数梯度之间的相互间依赖关系对所述待训练模型的各参数梯度在训练迭代过程中的大致执行顺序进行分析,得到包含各参数梯度执行顺序的顺序列表。
[0007]可选的,所述预设分组规则至少包括下列规则:规则一:同一组中的参数梯度为所述顺序列表中次序相邻的一组梯度;规则二:同一组中的参数梯度大小总和不大于融合缓冲区大小且两者大小差值不大于预设阈值;规则三:不同组中的参数梯度不相交。
[0008]可选的,所述获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表,包括:触发所述分布式训练框架开启多个进程,以利用多个进程启动对所述待训练模型的线上分布式训练;触发各进程启动后台线程,以利用后台线程周期性执行控制逻辑得到当前执行周期的响应列表。
[0009]可选的,得到所述参数梯度分组列表之后,还包括:将所述参数梯度分组列表在本地进行存储;在对当前执行周期的响应列表中的张量数据进行均衡划分时,利用后台线程通过组获取器获取所述参数梯度分组列表。
[0010]可选的,所述获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表之后,还包括:判断上一个执行周期的暂不融合列表是否为空,如果否,则将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并,并将合并后的新响应列表作为当前执行周期的响应列表。
[0011]可选的,所述将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并之后,还包括:对上一个执行周期的暂不融合列表中的张量数据进行删除。
[0012]可选的,所述基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表,包括:确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,得到目标组序号;针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中对应组的全部张量数据,如果是,则将该目标组序号在所述参数梯度分组列表中的对应组划分至当前执行周期的待融合组列表;将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合
列表。
[0013]可选的,所述确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,包括:针对当前执行周期的响应列表中的每个张量数据,通过在所述参数梯度分组列表中查找的方式来确定该张量数据在所述参数梯度分组列表中的所属组,并获取所属组的组序号。
[0014]可选的,所述通过在所述参数梯度分组列表中查找的方式来确定该张量数据在所述参数梯度分组列表中的所属组,并获取所属组的组序号之后,还包括:判断组序号集中是否包含该张量数据的组序号,如果否,则将该张量数据的组序号存储至所述组序号集中,如果是,则对当前执行周期的响应列表中的下一个张量数据进行相同处理;直至当前执行周期的响应列表中的全部张量数据均处理完成,得到最终组序号集,并将最终组序号集中存储的组序号确定为目标组序号。
[0015]可选的,所述针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中的对应组的全部张量数据,包括:针对最终组序号集中的每个组序号,确定该组序号在所述参数梯度分组列表中的对应组并判断对应组中的全部张量数据是否均能在当前执行周期的响应列表中对应找到;如果是,则判定当前执行周期的响应列表中包含该目标组序号在所述参数梯度分组列表中的对应组的全部张量数据,如果否,则对最终组序号集中的下一个组序号进行相同处理。
[0016]可选的,所述将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合列表之前,还包括:对当前执行周期的响应列表中的全部张量数据与当前执行周期的待融合组列表中的全部张量数据求差值,得到当前执行周期的响应列表中的剩余张量数据。
[0017]可选的,所述对当前执行周期的待融合组列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种参数梯度同步方法,其特征在于,包括:获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表;其中,当前执行周期的响应列表包含当前执行周期的待规约参数梯度的张量数据;基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表;其中,所述参数梯度分组列表通过线下预先对所述待训练模型的各参数梯度进行均衡分组得到;对当前执行周期的待融合组列表中的各组张量数据进行张量融合及规约处理;将当前执行周期的暂不融合列表中的张量数据与下一个执行周期的响应列表中的张量数据进行合并得到下一个执行周期的新响应列表,以基于新响应列表对下一个执行周期进行张量融合及规约处理。2.根据权利要求1所述的参数梯度同步方法,其特征在于,进行线上训练之前,还包括:在线下确定所述待训练模型的各参数梯度大小,并确定训练过程中将要使用的融合缓冲区大小及确定各参数梯度执行顺序;按照预设分组规则根据各参数梯度大小、融合缓冲区大小及各参数梯度执行顺序对所述待训练模型的各参数梯度进行均衡分组,得到以各参数梯度对应的张量数据表示的所述参数梯度分组列表。3.根据权利要求2所述的参数梯度同步方法,其特征在于,所述在线下确定各参数梯度执行顺序,包括:在线下根据所述待训练模型的各参数梯度之间的相互间依赖关系对所述待训练模型的各参数梯度在训练迭代过程中的大致执行顺序进行分析,得到包含各参数梯度执行顺序的顺序列表。4.根据权利要求3所述的参数梯度同步方法,其特征在于,所述预设分组规则至少包括下列规则:规则一:同一组中的参数梯度为所述顺序列表中次序相邻的一组梯度;规则二:同一组中的参数梯度大小总和不大于融合缓冲区大小且两者大小差值不大于预设阈值;规则三:不同组中的参数梯度不相交。5.根据权利要求2所述的参数梯度同步方法,其特征在于,所述获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表,包括:触发所述分布式训练框架开启多个进程,以利用多个进程启动对所述待训练模型的线上分布式训练;触发各进程启动后台线程,以利用后台线程周期性执行控制逻辑得到当前执行周期的响应列表。6.根据权利要求5所述的参数梯度同步方法,其特征在于,得到所述参数梯度分组列表之后,还包括:将所述参数梯度分组列表在本地进行存储;在对当前执行周期的响应列表中的张量数据进行均衡划分时,利用后台线程通过组获取器获取所述参数梯度分组列表。
7.根据权利要求1所述的参数梯度同步方法,其特征在于,所述获取基于分布式训练框架对待训练模型进行线上训练时执行控制逻辑得到的当前执行周期的响应列表之后,还包括:判断上一个执行周期的暂不融合列表是否为空,如果否,则将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并,并将合并后的新响应列表作为当前执行周期的响应列表。8.根据权利要求7所述的参数梯度同步方法,其特征在于,所述将上一个执行周期的暂不融合列表中的张量数据与当前执行周期的响应列表中的张量数据进行合并之后,还包括:对上一个执行周期的暂不融合列表中的张量数据进行删除。9.根据权利要求7所述的参数梯度同步方法,其特征在于,所述基于参数梯度分组列表对当前执行周期的响应列表中的张量数据进行均衡划分,得到当前执行周期的待融合组列表和暂不融合列表,包括:确定当前执行周期的响应列表中的各张量数据在所述参数梯度分组列表中所属的组序号,得到目标组序号;针对每个目标组序号,判断当前执行周期的响应列表中是否包含该目标组序号在所述参数梯度分组列表中对应组的全部张量数据,如果是,则将该目标组序号在所述参数梯度分组列表中的对应组划分至当前执行周期的待融合组列表;将当前执行周期的响应列表中的剩余张量数据划分至当前执行周期的暂不融合列表。10.根据权利要求9所述的参数梯度同步方法,其特征在于,所...

【专利技术属性】
技术研发人员:曹芳李仁刚赵雅倩郭振华王丽高开
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1