一种基于神经网络的参数更新方法、分布式训练平台系统技术方案

技术编号:29791934 阅读:16 留言:0更新日期:2021-08-24 18:11
本发明专利技术提供一种基于神经网络的参数更新方法、分布式训练平台系统。其中,根据设备内和设备间GPU的分阶段聚合,以及在设备间首节点GPU(Leader GPU)采用高效的Allreduce方式进行参数聚合,以避免中心化的PS(Parameter Server)参数聚合通信模型对多机多GPU集群可扩展性的限制;另外也可避免去中心化的Ring‑Allreduce方式在超大规模GPU集群需求下数据通信存在延时开销的问题。

【技术实现步骤摘要】
一种基于神经网络的参数更新方法、分布式训练平台系统
本专利技术涉及深度学习领域中深度学习神经网络的参数更新技术;具体地,涉及一种基于神经网络的参数更新方法、分布式训练平台系统。
技术介绍
近年来,人工智能,特别是深度学习,在图像识别,语言处理等领域取得重大突破,并且开始广泛应用于商业活动中。深度学习能够取得如此重大突破的一个关键原因是深度学习在训练过程中处理了大量样本,从样本中学习到样本之中包含的众多特征。人工神经网络(ArtificialNeuralNetwork,ANN,以下简称神经网络)在本领域被提及时,其通常是指由一定数量的高度互联的单一处理单元(processingelements,也即节点(nodes))组成的计算系统;其中,这些处理单元通过其对外部输入的动态状态响应来处理信息。其中,深度神经网络(DeepNeuralNetwork,DNN)是人工神经网络中的一种;其在输入层和输出层之间具有多个隐藏层。与浅层ANN相似,深度神经网络能够对复杂的非线性关系建模。和大多数机器学习算法通过生成符合训练数据的模型进而在以生成的模型对输入数据进行预测一样,深度学习算法,也需要通过深度神经网络的模型训练,来找到符合的模型参数值,以使深度学习算法模型可以提供准确的预测。其中,一种深度学习神经网络训练方法的过程,包括了前向传播(forwardpasspropagation)和后向传播(backpropagation)的使用。其中,前向传播通过的损失值(loss)来评估模型性能,而反向传播则用于生成对应当前权重参数的梯度。当输入数据输入神经网络时,它会通过网络逐层向前传播,直到到达输出层。将输出层的输出与使用损失函数得到的期望输出对比,并为输出层中的每个神经元计算一个误差值。将误差值后向传播,直至使每个神经元都有着一个关联的误差值,其将大致代表其对原始输出的贡献。反向传播使用这些误差值来计算对应网络中权重参数的损失函数梯度。而上述的梯度,被用于更新权重参数,并在其过程中最小化损失函数。而深度神经网络模型的训练,通常采用数据并行的模式,即生成多份模型副本,并将样本分别输入上述各模型副本进行训练。那么,在训练过程中,则需要将为同一批次样本在不同模型副本项下生成的梯度进行梯度聚合,以实现该批次处理过程的迭代。目前,深度学习框架通常采用多GPU来加速的。而现有的参数聚合/梯度聚合方法,通常也是被用于多GPU训练场景的。事实上,一台典型的机器设备就可能包括多个本地GPU,它们通过PCIe总线或NVLink等其他标准的总线定向地与机器设备的CPU、网卡等网络设备连接;并且,其中的一些机器设备中,其本地GPU还若干个为一组分属于机器设备中不同的节点(例如NUMA节点);而一个NUMA节点,通常包括一个属于自己的CPU,以及内存条等。在生产环境下,为了提高训练效率,深度神经网络模型的训练往往更是部署在多台如前面所述的机器设备组成的集群上的。在数据并行训练模式下,每一次迭代的参数更新(梯度聚合),特别是多机多卡(GPU卡)集群场景下的参数更新(梯度聚合),在现有技术中主要采用如下两种方式:一、通过中心化的参数服务器(ParameterServer)承担了梯度的收集、平均和分发工作,基于上述通信模型的部署方式下,参数服务器的访问带宽容易成为瓶颈,严重影响多机多GPU集群的可扩展性;二、去中心化的Ring-Allreduce方式,即一种基于环形拓扑的通信方式;在Ring-AllReduce方法中,通过其中的每个GPU都递次地向相邻GPU传送、收集相应的梯度片段以及同步收集的梯度片段,克服上述方式中参数服务器的通信瓶颈问题,但是在超大规模GPU集群场景下数据通信存在着很大的延时开销。随着训练集群规模越来越大,当前的参数更新方法,具体而言即参数聚合方法(例如梯度聚合)遭到了扩展性、效率等诸多挑战。本专利技术各实施提供的神经网络参数(例如前面述及的梯度)聚合,将在一定程度上改善现有技术中用于深度神经网络模型训练的多机多卡集群的扩展性、参数更新效率等。
技术实现思路
有鉴于此,本专利技术提供一种基于神经网络的参数更新方法、分布式训练平台系统。其中,本专利技术拟提供一种基于神经网络的参数更新方法,和提供一种与之相关的分布式训练平台系统、装置及计算机软件存储介质。一方面,本专利技术实施例提供一种基于神经网络的参数更新方法,用于多机多GPU集群场景下,特别是大规模GPU集群场景下,的不同GPU上神经网络模型副本的参数(例如梯度信息等)的更新。上述的基于神经网络的参数更新的方法,包括:根据GPU的物理拓扑以及不同机器设备和同一机器设备内的GPU间通信信道的不同,确定设备内和设备间GPU的分阶段聚合;其中,1、设备内GPU间的参数聚合,包括:对于任一设备,确定其中的一个GPU为首节点GPU(即LeaderGPU);而其中运行的应用则使设备内的各个GPU以Allreduce方式进行设备内GPU节点间的参数聚合;2、各个设备的首节点GPU间的基于矩阵拓扑的Allreduce参数聚合,包括:将各个设备的首节点GPU分别视为单独的逻辑节点,构建一个矩阵拓扑,使其包括上述全部的首节点GPU;1)在水平方向上执行reduce-scatter操作:在矩阵的水平方向上,分别将各行的各个GPU上的参数集分别分成n份参数子集;其中,n对应水平方向上每行GPU的数量,也即矩阵的列数;使水平方向的各行GPU分别构成首尾相连的逻辑环;在第一次的迭代中,使各行中的各个GPU分别发送其列编号对应的参数子集给下游相邻节点GPU,并接收上游相邻节点GPU发来的参数子集,并与本GPU上与之(即接收的参数子集)对应的参数子集执行合并运算;在后续各次的迭代中,使各行中的各个GPU分别将其在上次迭代中合并的参数子集发送给下游相邻节点GPU,并接收上游相邻节点GPU发来的合并参数子集,并与本GPU上与之(即接收的合并参数子集)对应的参数子集执行合并运算;在经过n-1次迭代后,通过多次的参数子集合并分别使每行的各个GPU上的与该GPU下游相邻列编号对应的参数子集获得该行各个GPU上的对应参数子集的数据,即获得对应其下游相邻列编号的行GPU合并参数子集;2)在垂直方向上分别对各列的行GPU合并参数子集执行all-reduce操作:在矩阵的垂直方向上,分别使各列的GPU上的对应下游相邻列编号的行GPU合并参数子集执行all-reduce操作,使各列的各个GPU在执行all-reduce操作后分别获得整个矩阵各个GPU上的对应其下游相邻列编号的参数子集的数据,即获得对应其下游相邻列编号的矩阵GPU合并参数子集;3)在水平方向上执行all-gather操作:在经上述的垂直方向上的all-reduce操作使矩阵中的各个GPU分别获得对应其下游相邻列编号的矩阵GPU合并参数子集后,在水平方向上,使各个GPU沿着同一顺序将其上的对应其下游相邻列编号的矩阵GPU合并参数子集依次传递和复制给相邻节点本文档来自技高网
...

【技术保护点】
1.一种基于神经网络的参数更新方法,其特征在于,/n确定设备内、设备间GPU分阶段聚合;其中包括,/n设备内GPU间的参数聚合:/n对于任一设备,确定其中的一个GPU为首节点GPU;/n使设备内的各个GPU以Allreduce方式进行参数聚合;/n和之后的各个设备首节点GPU间的基于矩阵拓扑的Allreduce参数聚合:/n构建一个矩阵拓扑,将其包括所述的各个首节点GPU;/n1)在水平方向上执行reduce-scatter操作,使各行的各个GPU分别获得对应的行GPU合并参数子集;/n2)在垂直方向上分别对各列的行GPU合并参数子集执行all-reduce操作,使各列的各个GPU分别获得对应的矩阵GPU合并参数子集;/n3)在水平方向上执行all-gather操作,同步上述的矩阵GPU合并参数子集,以及标准化运算,使矩阵中的所有GPU的参数集达到完全一致的状态;/n以及之后的使设备内首节点GPU将其更新后的参数集向其他GPU的反向广播,最终实现各个设备各个GPU间的参数更新。/n

【技术特征摘要】
1.一种基于神经网络的参数更新方法,其特征在于,
确定设备内、设备间GPU分阶段聚合;其中包括,
设备内GPU间的参数聚合:
对于任一设备,确定其中的一个GPU为首节点GPU;
使设备内的各个GPU以Allreduce方式进行参数聚合;
和之后的各个设备首节点GPU间的基于矩阵拓扑的Allreduce参数聚合:
构建一个矩阵拓扑,将其包括所述的各个首节点GPU;
1)在水平方向上执行reduce-scatter操作,使各行的各个GPU分别获得对应的行GPU合并参数子集;
2)在垂直方向上分别对各列的行GPU合并参数子集执行all-reduce操作,使各列的各个GPU分别获得对应的矩阵GPU合并参数子集;
3)在水平方向上执行all-gather操作,同步上述的矩阵GPU合并参数子集,以及标准化运算,使矩阵中的所有GPU的参数集达到完全一致的状态;
以及之后的使设备内首节点GPU将其更新后的参数集向其他GPU的反向广播,最终实现各个设备各个GPU间的参数更新。


2.根据权利要求1所述的基于神经网络的参数更新方法,其特征在于,
其中的不同设备的首节点GPU间的参数更新,采用RDMA网络通信。


3.根据权利要求1-2任一所述的基于神经网络的参数更新方法,其特征在于,
其中确定首节点GPU时,选择与用于跨设备通信的网络设备最近的、跳数最少的GPU作为该机器设备的首节点GPU。


4.根据权利要求3所述的基于神经网络的参数更新方法,其特征在于,
选择能够直接对所述网络设备直接进行存取操作的GPU,作为所述的首节点GPU。

【专利技术属性】
技术研发人员:张曼妮李杨张翔宇孙军欢
申请(专利权)人:深圳致星科技有限公司
类型:发明
国别省市:广东;44

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

1