分布式训练方法、梯度通信方法、装置及电子设备制造方法及图纸

技术编号:37158356 阅读:29 留言:0更新日期:2023-04-06 22:21
本公开公开了一种分布式训练方法、梯度通信方法、装置及电子设备,涉及人工智能领域,尤其涉及深度学习领域。具体实现方案为:利用第一通信方式,与其他计算节点交换各自的有效参数,其中,有效参数为计算节点对应稀疏梯度中有效梯度的行数,有效梯度为计算节点对应稀疏梯度中有效部分的梯度数据;基于所有计算节点的有效参数,确定与其他计算节点交换各自的有效行参数和有效梯度的第二通信方式,其中,有效行参数是表示稀疏梯度与有效梯度映射关系的数组;利用第二通信方式,与其他计算节点交换各自的有效行参数和有效梯度。本公开实施例节约了通信资源,提升了深度神经网络分布式训练的通信性能。练的通信性能。练的通信性能。

【技术实现步骤摘要】
分布式训练方法、梯度通信方法、装置及电子设备


[0001]本公开涉及人工智能领域,尤其涉及深度学习


技术介绍

[0002]随着深度神经网络(deep neural networks,DNNs)的规模及训练数据集的日趋变大,在DNNs中引入了分布式训练框架,利用多个计算节点进行分布式训练,以减少深度神经网络的训练时间。
[0003]在分布式训练框架中,每个计算节点具有相同的模型副本,然后每次迭代读取数据集中不同批次的数据来训练本地的模型参数,并在每次更新模型参数之前,所有计算节点都需要进行通信,以实现不同计算节点之间的梯度同步。但是,当计算节点的梯度为稀疏梯度时,稀疏梯度中只有部分梯度数据为有效值,其余数据均为无效值,此时若依然按照稠密梯度的通信方式传输稀疏梯度,则会传输稀疏梯度中包括无效值的所有数据,从而会产生大量的无用通信,消耗了大量的通信资源,进而影响深度神经网络分布式训练的通信性能。

技术实现思路

[0004]本公开提供了一种用于深度神经网络的分布式训练方法、梯度通信方法、装置、设备以及存储介质。
[0005]根据本公开的一方面,提供了一种梯度通信方法,应用于深度神经网络的分布式训练框架中,所述分布式训练框架包括多个计算节点,所述方法由每个计算节点执行,所述方法包括:利用第一通信方式,与其他计算节点交换各自的有效参数,其中,所述有效参数为所述计算节点对应稀疏梯度中有效梯度的行数,所述有效梯度为所述计算节点对应稀疏梯度中有效部分的梯度数据;基于所有计算节点的有效参数,确定与其他计算节点交换各自的有效行参数和有效梯度的第二通信方式,其中,所述有效行参数是表示所述稀疏梯度与所述有效梯度映射关系的数组;利用所述第二通信方式,与其他计算节点交换各自的有效行参数和有效梯度。
[0006]根据本公开的另一方面,提供了一种分布式训练方法,应用于深度神经网络的分布式训练框架中,所述分布式训练框架包括多个计算节点,所述方法由每个计算节点执行,所述方法包括:利用第一通信方式,与其他计算节点交换各自的有效参数,其中,所述有效参数为所述计算节点对应稀疏梯度中有效梯度的行数,所述有效梯度为所述计算节点对应稀疏梯度中有效部分的梯度数据;基于所有计算节点的有效参数,确定与其他计算节点交换各自的有效行参数和有效梯度的第二通信方式,其中,所述有效行参数是表示所述稀疏梯度与所述有效梯度映射关系的数组;利用所述第二通信方式,与其他计算节点交换各自的有效行参数和有效梯度,得到所有计算节点的有效行参数和汇聚后的有效梯度;基于所有计算节点的有效行参数和所述汇聚后的有效梯度,确定目标稀疏梯度;基于所述目标稀疏梯度对所述深度神经网络的网络参数进行更新。
[0007]根据本公开的另一方面,提供了一种分布式训练装置,包括:第一通信模块,用于利用第一通信方式,与其他计算节点交换各自的有效参数,其中,所述有效参数为所述计算节点对应稀疏梯度中有效梯度的行数,所述有效梯度为所述计算节点对应稀疏梯度中有效部分的梯度数据;第一确定模块,用于基于所有计算节点的有效参数,确定与其他计算节点交换各自的有效行参数和有效梯度的第二通信方式,其中,所述有效行参数是表示所述稀疏梯度与所述有效梯度映射关系的数组;第二通信模块,用于利用所述第二通信方式,与其他计算节点交换各自的有效行参数和有效梯度,得到所有计算节点的有效行参数和汇聚后的有效梯度;第二确定模块,用于基于所有计算节点的有效行参数和所述汇聚后的有效梯度,确定目标稀疏梯度;参数更新模块,用于基于所述目标稀疏梯度对所述深度神经网络的网络参数进行更新。
[0008]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少 个处理器执行,以使所述至少一个处理器能够执行本公开的梯度通信方法和分布式训练方法。
[0009]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开的梯度通信方法和分布式训练方法。
[0010]根据本公开的另一方面,提供了一种计算机程序产品,所述计算机程序被处理器执行时实现本公开的梯度通信方法和分布式训练方法。
[0011]本公开相比于现有技术具备以下有益效果:
[0012]通过不同阶段向其他计算节点交换有效参数、有效行参数和有效梯度,并根据所有计算节点的有效参数确定与其他计算节点交换有效行参数和有效梯度的通信方式,从而确保每个阶段均采用最佳的集合通信方式与其他计算节点交换数据,进而使得仅需与其他节点交换有效数据,节约了通信资源,提升了深度神经网络分布式训练的通信性能。
[0013]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0014]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0015]图1是根据本公开实施例提供的一种稠密梯度的结构示意图;
[0016]图2是根据本公开实施例提供的一种稀疏梯度的结构示意图;
[0017]图3是根据本公开实施例提供的一种梯度通信方法的流程示意图;
[0018]图4是根据本公开实施例提供的一种allreduce通信的示意图;
[0019]图5是根据本公开实施例提供的一种allgather通信的示意图;
[0020]图6是根据本公开实施例提供的一种broadcast通信的示意图;
[0021]图7是根据本公开实施例提供的一种梯度通信方法的流程示意图;
[0022]图8是根据本公开实施例提供的一种梯度通信方法的流程示意图;
[0023]图9是根据本公开实施例提出的一种稀疏梯度的三元组表示的示意图;
[0024]图10是根据本公开实施例提供的一种梯度通信方法的流程示意图;
[0025]图11是根据本公开实施例提供的一种分布式训练方法的流程示意图;
[0026]图12是根据本公开实施例提供的一种分布式训练方法的流程示意图;
[0027]图13是根据本公开实施例提供的一种分布式训练方法的流程示意图;
[0028]图14是根据本公开实施例提供的一种分布式训练方法的流程示意图;
[0029]图15是根据本公开实施例提供的一种分布式训练方法的流程示意图;
[0030]图16是根据本公开实施例提供的一种分布式训练装置的结构示意图;
[0031]图17是用来实现本公开实施例的神经网络的训练方法的电子设备的框图。
具体实施方式
[0032]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种梯度通信方法,应用于深度神经网络的分布式训练框架中,所述分布式训练框架包括多个计算节点,所述方法由每个计算节点执行,所述方法包括:利用第一通信方式,与其他计算节点交换各自的有效参数,其中,所述有效参数为所述计算节点对应稀疏梯度中有效梯度的行数,所述有效梯度为所述计算节点对应稀疏梯度中有效部分的梯度数据;基于所有计算节点的有效参数,确定与其他计算节点交换各自的有效行参数和有效梯度的第二通信方式,其中,所述有效行参数是表示所述稀疏梯度与所述有效梯度映射关系的数组;利用所述第二通信方式,与其他计算节点交换各自的有效行参数和有效梯度。2.如权利要求1所述的方法,其中,所述利用第一通信方式,与其他计算节点交换各自的有效参数之前,还包括确定所述有效参数;所述确定所述有效参数,包括:确定所述计算节点的稀疏梯度;利用三元组对所述稀疏梯度进行表示,其中,所述三元组为<有效行参数,行数,有效梯度>,所述行数表示所述稀疏梯度中的总行数;基于所述有效行参数中的数据元素个数,确定所述有效参数。3.如权利要求1所述的方法,其中,所述基于所有计算节点的有效参数,确定向所述其他计算节点发送有效行参数和有效梯度的第二通信方式,包括:判断所述所有计算节点的有效参数是否相同;若所述所有计算节点的有效参数相同,则确定与其他计算节点交换各自的有效行参数和有效梯度的第二通信方式为所述第一通信方式;若所述所有计算节点的有效参数不相同,则确定与其他计算节点交换各自的有效行参数和有效梯度的第二通信方式为第三通信方式。4.如权利要求1所述的方法,其中,还包括:基于所述所有计算节点的有效参数,确定存储所述所有计算节点的有效行参数和有效梯度所需的存储空间。5.一种分布式训练方法,应用于深度神经网络的分布式训练框架中,所述分布式训练框架包括多个计算节点,所述方法由每个计算节点执行,所述方法包括:利用第一通信方式,与其他计算节点交换各自的有效参数,其中,所述有效参数为所述计算节点对应稀疏梯度中有效梯度的行数,所述有效梯度为所述计算节点对应稀疏梯度中有效部分的梯度数据;基于所有计算节点的有效参数,确定与其他计算节点交换各自的有效行参数和有效梯度的第二通信方式,其中,所述有效行参数是表示所述稀疏梯度与所述有效梯度映射关系的数组;利用所述第二通信方式,与其他计算节点交换各自的有效行参数和有效梯度,得到所有计算节点的有效行参数和汇聚后的有效梯度;基于所有计算节点的有效行参数和所述汇聚后的有效梯度,确定目标稀疏梯度;基于所述目标稀疏梯度对所述深度神经网络的网络参数进行更新。6.如权利要求5所述的方法,其中,所述利用第一通信方式,与其他计算节点交换各自
的有效参数之前,还包括确定所述有效参数;所述确定所述有效参数,包括:确定所述计算节点的稀疏梯度;利用三元组对所述稀疏梯度进行表示,其中,所述三元组为<有效行参数,行数,有效梯度>,所述行数表示所述稀疏梯度中的总行数;基于所述有效行参数中的数据元素个数,确定所述有效参数。7.如权利要求5所述的方法,其中,所述基于所有计算节点的有效参数,确定与其他计算节点交换各自的有效行参数和有效梯度的第二通信方式,包括...

【专利技术属性】
技术研发人员:沈亮于佃海
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1