CN112686383B - 一种通信并行的分布式随机梯度下降的方法、***及装置 - Google Patents

一种通信并行的分布式随机梯度下降的方法、***及装置 Download PDF

Info

Publication number
CN112686383B
CN112686383B CN202011622695.9A CN202011622695A CN112686383B CN 112686383 B CN112686383 B CN 112686383B CN 202011622695 A CN202011622695 A CN 202011622695A CN 112686383 B CN112686383 B CN 112686383B
Authority
CN
China
Prior art keywords
model
local
local model
training
random gradient
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.)
Active
Application number
CN202011622695.9A
Other languages
English (en)
Other versions
CN112686383A (zh
Inventor
卢宇彤
关文轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202011622695.9A priority Critical patent/CN112686383B/zh
Publication of CN112686383A publication Critical patent/CN112686383A/zh
Application granted granted Critical
Publication of CN112686383B publication Critical patent/CN112686383B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了一种通信并行的分布式随机梯度下降的方法、***及装置,该方法包括:读取训练数据;按批次将训练数据输入到本地模型进行前向传播;计算损失值;反向传播计算参数的本地梯度;对本地模型参数进行更新并发送到参数服务器;接收参数服务器聚合平均后返回的最终模型。该***包括:计算节点和参数服务器。该装置包括存储器以及用于执行上述通信并行的分布式随机梯度下降的方法的处理器。通过使用本发明,既减少了通信开销,又能减少训练所需时间。本发明作为一种通信并行的分布式随机梯度下降的方法、***及装置,可广泛应用于模型训练领域。

Description

一种通信并行的分布式随机梯度下降的方法、***及装置
技术领域
本发明涉及模型训练领域,尤其涉及一种通信并行的分布式随机梯度下降的方法、***及装置。
背景技术
近年来,随着大数据和高速计算资源的快速发展,深度学习在人工智能许多领域都取得了突破性的发展和广泛应用,比如图像识别、语音识别以及自然语言处理等等。为了对模型进行更新训练,深度学习的训练通常使用小批量随机梯度下降算法(mini-batchSGD)。但是,随着数据集的规模越来越大以及神经网络的模型越来越复杂,模型训练时间也显著增加,成为深度学习发展的瓶颈。目前主要采用同步随机梯度下降算法和局部随机梯度下降算法进行深度学习的训练,在同步随机梯度下降算法中,每轮批次都需要进行梯度的通信,而且某些速度较慢的计算节点会影响到整体的训练速度,会产生木桶效应,率先训练完的节点只能停下来等待。由于分布式深度学习需要频繁地对梯度或参数等信息进行通信,当数据集越大、通信时间越多、计算集群规模越大时,通信开销会越来越大,容易成为分布式训练的性能瓶颈,严重影响***的扩展性;局部随机梯度下降算法虽然通过降低通信频率,改善了同步随机梯度下降算法中通信开销大的问题。但是通信频率的降低,意味着丢失的信息越多,会导致收敛性能下降,因此可能需要更多的训练迭代才能达到和同步随机梯度下降算法相同的模型精度,这最终可能会减慢训练速度。
发明内容
为了解决上述技术问题,本发明的目的是提供一种通信并行的分布式随机梯度下降的方法、***及装置,将计算节点的训练过程和通信过程并行进行,既减少了通信开销,又能减少训练所需时间。
本发明所采用的第一技术方案是:一种通信并行的分布式随机梯度下降的方法,包括以下步骤:
S1、读取本地的训练数据;
S2、按批次将训练数据输入到本地模型进行前向传播,得到本地模型的实际输出;
S3、根据实际输出和预设的期望输出得到损失值;
S4、基于损失值对本地模型进行反向传播,逐层计算得到参数的本地梯度;
S5、根据小批量随机梯度下降算法和本地梯度对本地模型参数进行更新,得到更新后的本地模型;
S6、新建子线程与参数服务器进行通信并向参数服务器发送更新后的本地模型;
S7、根据更新后的本地模型进行模型同步并返回步骤S2,直至迭代训练达到预设次数,接收参数服务器聚合平均后返回的最终模型,完成训练。
进一步,还包括参数服务器工作步骤:
发送初始模型副本;
接收计算节点发送的本地模型并根据本地模型参数计算平均后的同步模型参数;
将同步模型参数发送给计算节点。
进一步,所述按批次将训练数据输入到本地模型进行前向传播还包括判断当前批次是否为第一次迭代训练,判断到当前批次为第一次迭代训练,接受参数服务器发送的初始模型副本并作为本地模型参数。
进一步,所述对本地模型参数使用小批量随机梯度下降算法进行更新,得到更新后的本地模型这一步骤,其具体包括:
判断到当前批次是第一次迭代训练,根据本地梯度和小批量随机梯度下降算法对本地模型参数进行更新,得到更新后的本地模型;
判断到当前批次不是第一次迭代训练,基于预设的更新公式对本地模型参数进行更新,得到更新后的本地模型。
进一步,对于第t次迭代,所述预设的更新公式具体如下:
上式中,k表示第k个计算节点,t表示第t次迭代,η表示学***均后的同步模型参数,表示计算节点k第t次迭代计算的本地模型参数,/>表示计算节点k第t次迭代计算得到的本地梯度。
进一步,述根据更新后的本地模型进行模型同步并返回步骤S2,直至迭代训练达到预设次数,接收参数服务器聚合平均后返回的最终模型,完成训练这一步骤,其具体包括:
判断到当前迭代训练未达到预设次数,对更新后的本地模型计算平均后的同步模型并发送回计算节点进行下一次迭代训练;
判断到当前迭代训练达到预设次数,接收经过参数服务器聚合平均返回的最终模型,完成训练。
进一步,所述平均后的同步模型参数具体计算公式如下:
上式中,p表示计算节点的数目。
本发明所采用的第二技术方案是:一种通信并行的分布式随机梯度下降的***,包括:
计算节点,用于读取训练数据、将训练数据输入到神经网络得到实际输出、根据实际输出和预设的期望输出得到损失值、计算本地梯度、更新本地模型参数、发送更新后的本地模型和接收最终模型;
参数服务器,用于发送初始模型副本、计算并发送同步模型参数。
本发明所采用的第三技术方案是:一种通信并行的分布式随机梯度下降的装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如上所述一种通信并行的分布式随机梯度下降的方法。
本发明方法、***及装置的有益效果是:本发明将计算节点的训练过程和通信过程并行进行,在计算节点降低通信频率,进行本地模型训练的同时,利用通过并行通信获得的上一轮迭代的同步参数,对本轮迭代获得的梯度进行信息补偿,从而达到既大大减少了通信开销,又能获得与同步随机梯度下降算法接近的收敛速度,达到减少训练时间的效果。
附图说明
图1是本发明一种通信并行的分布式随机梯度下降的方法具体实施例的步骤流程图;
图2是本发明一种通信并行的分布式随机梯度下降的***的结构框图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
如图1所示,本发明提供一种通信并行的分布式随机梯度下降的方法,应用于计算节点-参数服务器架构,包括一个参数服务器节点和多个计算节点,计算节点的工作步骤包括:
S1、读取本地的训练数据;
具体地,读取本地的一个批次训练数据到内存中,所述训练数据中包括对应的期望输出。
S2、按批次将训练数据输入到本地模型进行前向传播,得到本地模型的实际输出;
具体地,判断是否第一次迭代训练,如果是第一次迭代,计算节点接受参数服务器发来的初始模型副本,作为本地模型的参数;计算节点根据读取到内存的训练数据输入到神经网络,进行前向传播,得到神经网络的输出,本地模型即神经网络。
S3、根据实际输出和预设的期望输出得到损失值;
S4、基于损失值对本地模型进行反向传播,逐层计算得到参数的本地梯度;
S5、根据小批量随机梯度下降算法和本地梯度对本地模型参数进行更新,得到更新后的本地模型;
S6、新建子线程与参数服务器进行通信并向参数服务器发送更新后的本地模型;
具体地,完成本地模型参数的更新后,新建一个子线程与参数服务器进行通信,发送更新完的本地模型给参数服务器,等待参数服务器发送回来平均后的同步模型参数W(t +1),返回给主线程。由于子线程和主线程是并行执行的,子线程进行通信的过程不对主线程的执行过程造成阻塞。
S7、根据更新后的本地模型进行模型同步并返回步骤S2,直至迭代训练达到预设次数,接收参数服务器聚合平均后返回的最终模型,完成训练。
进一步作为本方法的优选实施例,还包括参数服务器工作步骤:
发送初始模型副本;
接收计算节点发送的本地模型并根据本地模型参数计算平均后的同步模型参数;
将同步模型参数发送给计算节点。
具体地,如果迭代训练达到预设次数,该同步模型即最终模型,确定模型参数即确定模型。
进一步作为本方法的优选实施例,所述按批次将训练数据输入到本地模型进行前向传播还包括判断当前批次是否为第一次迭代训练,判断到当前批次为第一次迭代训练,接受参数服务器发送的初始模型副本并作为本地模型参数。
进一步作为本方法的优选实施例,所述根据小批量随机梯度下降算法和本地梯度对本地模型参数进行更新,得到更新后的本地模型这一步骤,其具体包括:
判断到当前批次是第一次迭代训练,根据本地梯度和小批量随机梯度下降算法对本地模型参数进行更新,得到更新后的本地模型;
判断到当前批次不是第一次迭代训练,基于预设的更新公式对本地模型参数进行更新,得到更新后的本地模型。
进一步作为本方法的优选实施例,对于第t次迭代,所述预设的更新公式具体如下:
上式中,k表示第k个计算节点,t表示第t次迭代,η表示学***均后的同步模型参数,表示计算节点k第t次迭代计算的本地模型参数,/>表示计算节点k第t次迭代计算得到的本地梯度。
进一步作为本方法的优选实施例,所述根据更新后的本地模型进行模型同步并返回步骤S2,直至迭代训练达到预设次数,接收参数服务器聚合平均后返回的最终模型,完成训练这一步骤,其具体包括:
判断到当前迭代训练未达到预设次数,对更新后的本地模型计算平均后的同步模型并发送回计算节点进行下一次迭代训练;
判断到当前迭代训练达到预设次数,接收经过参数服务器聚合平均返回的最终模型,完成训练。
进一步作为本方法的优选实施例,所述平均后的同步模型参数具体计算公式如下:
上式中,p表示计算节点的数目。
本发明实施例中,首先通过增大通信周期,降低通信频率的方式,有效减小了训练中的通信开销。此外,本发明实施例在计算节点的每一轮迭代中,利用主线程计算、子线程通信的方式,让主线程和子线程并行进行,子线程的通信并不对主线程的计算造成阻塞。主线程每轮迭代最后对本地模型参数进行更新时,利用子线程在上一轮迭代通信获得的同步参数信息,对本轮迭代的梯度进行信息补偿,尽可能的减轻由于降低通信频率而对收敛造成的影响。从而达到既大大减少了通信开销,又能获得与同步随机梯度下降算法接近的收敛性能,达到减少训练时间的效果。
如图2所示,一种通信并行的分布式随机梯度下降的***,包括:
计算节点,用于读取训练数据、将训练数据输入到神经网络得到实际输出、根据实际输出和预设的期望输出得到损失值、计算本地梯度、更新本地模型参数、发送更新后的本地模型和接收最终模型;
参数服务器,用于发送初始模型副本、计算并发送同步模型参数。
上述方法实施例中的内容均适用于本***实施例中,本***实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
一种通信并行的分布式随机梯度下降的装置:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如上所述一种通信并行的分布式随机梯度下降的方法。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (7)

1.一种通信并行的分布式随机梯度下降的方法,其特征在于,包括计算节点工作步骤:
S1、读取本地的训练数据;
S2、按批次将训练数据输入到本地模型进行前向传播,得到本地模型的实际输出;
S3、根据实际输出和预设的期望输出得到损失值;
S4、基于损失值对本地模型进行反向传播,逐层计算得到参数的本地梯度;
S5、根据小批量随机梯度下降算法和本地梯度对本地模型参数进行更新,得到更新后的本地模型;
S6、新建子线程与参数服务器进行通信并向参数服务器发送更新后的本地模型;
S7、根据更新后的本地模型进行模型同步并返回步骤S2,直至迭代训练达到预设次数,接收参数服务器聚合平均后返回的最终模型,完成训练;
所述根据小批量随机梯度下降算法和本地梯度对本地模型参数进行更新,得到更新后的本地模型这一步骤,其具体包括:
判断到当前批次是第一次迭代训练,根据本地梯度和小批量随机梯度下降算法对本地模型参数进行更新,得到更新后的本地模型;
判断到当前批次不是第一次迭代训练,基于预设的更新公式对本地模型参数进行更新,得到更新后的本地模型;
对于第t次迭代,所述预设的更新公式具体如下:
上式中,k表示第k个计算节点,t表示第t次迭代,η表示学***均后的同步模型参数,表示计算节点k第t次迭代计算的本地模型参数,/>表示计算节点k第t次迭代计算得到的本地梯度。
2.根据权利要求1所述一种通信并行的分布式随机梯度下降的方法,其特征在于,还包括参数服务器工作步骤:
发送初始模型副本;
接收计算节点发送的本地模型并根据本地模型参数计算平均后的同步模型参数;
将同步模型参数发送给计算节点。
3.根据权利要求2所述一种通信并行的分布式随机梯度下降的方法,其特征在于,所述按批次将训练数据输入到本地模型进行前向传播还包括判断当前批次是否为第一次迭代训练,判断到当前批次为第一次迭代训练,接受参数服务器发送的初始模型副本并作为本地模型参数。
4.根据权利要求3所述一种通信并行的分布式随机梯度下降的方法,其特征在于,所述根据更新后的本地模型进行模型同步并返回步骤S2,直至迭代训练达到预设次数,接收参数服务器聚合平均后返回的最终模型,完成训练这一步骤,其具体包括:
判断到当前迭代训练未达到预设次数,对更新后的本地模型计算平均后的同步模型并发送回计算节点进行下一次迭代训练;
判断到当前迭代训练达到预设次数,接收经过参数服务器聚合平均返回的最终模型,完成训练。
5.根据权利要求4所述一种通信并行的分布式随机梯度下降的方法,其特征在于,所述平均后的同步模型参数具体计算公式如下:
上式中,p表示计算节点的数目。
6.一种通信并行的分布式随机梯度下降的***,其特征在于,用于执行如权利要求1所述的一种通信并行的分布式随机梯度下降的方法,包括:
计算节点,用于读取训练数据、将训练数据输入到神经网络得到实际输出、根据实际输出和预设的期望输出得到损失值、计算本地梯度、更新本地模型参数、发送更新后的本地模型和接收最终模型;
参数服务器,用于发送初始模型副本、计算并发送同步模型参数。
7.一种通信并行的分布式随机梯度下降的装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-5任一项所述一种通信并行的分布式随机梯度下降的方法。
CN202011622695.9A 2020-12-30 2020-12-30 一种通信并行的分布式随机梯度下降的方法、***及装置 Active CN112686383B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011622695.9A CN112686383B (zh) 2020-12-30 2020-12-30 一种通信并行的分布式随机梯度下降的方法、***及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011622695.9A CN112686383B (zh) 2020-12-30 2020-12-30 一种通信并行的分布式随机梯度下降的方法、***及装置

Publications (2)

Publication Number Publication Date
CN112686383A CN112686383A (zh) 2021-04-20
CN112686383B true CN112686383B (zh) 2024-04-16

Family

ID=75453947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011622695.9A Active CN112686383B (zh) 2020-12-30 2020-12-30 一种通信并行的分布式随机梯度下降的方法、***及装置

Country Status (1)

Country Link
CN (1) CN112686383B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113824802B (zh) * 2021-11-24 2022-04-01 之江实验室 一种去中心化分布式训练拓扑结构、训练***及方法
CN115665174B (zh) * 2022-12-13 2023-03-14 浪潮电子信息产业股份有限公司 一种梯度数据的同步方法、***、设备及存储介质
CN116258197B (zh) * 2023-05-16 2023-09-08 之江实验室 基于参数计算和通信调度的分布式训练加速方法和***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245743A (zh) * 2019-05-23 2019-09-17 中山大学 一种异步分布式深度学习训练方法、装置及***
CN110287031A (zh) * 2019-07-01 2019-09-27 南京大学 一种减少分布式机器学习通信开销的方法
CN111382844A (zh) * 2020-03-11 2020-07-07 华南师范大学 一种深度学习模型的训练方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626677B2 (en) * 2010-05-28 2014-01-07 Microsoft Corporation Training SVMs with parallelized stochastic gradient descent
US11315012B2 (en) * 2018-01-12 2022-04-26 Intel Corporation Neural network training using generated random unit vector

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245743A (zh) * 2019-05-23 2019-09-17 中山大学 一种异步分布式深度学习训练方法、装置及***
CN110287031A (zh) * 2019-07-01 2019-09-27 南京大学 一种减少分布式机器学习通信开销的方法
CN111382844A (zh) * 2020-03-11 2020-07-07 华南师范大学 一种深度学习模型的训练方法及装置

Also Published As

Publication number Publication date
CN112686383A (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
CN112686383B (zh) 一种通信并行的分布式随机梯度下降的方法、***及装置
CN110809772B (zh) 用于改进机器学习模型的优化的***和方法
CN111091199B (zh) 一种基于差分隐私的联邦学习方法、装置及存储介质
CN108959728B (zh) 基于深度学习的射频器件参数优化方法
CN110832509B (zh) 使用神经网络的黑盒优化
CN112381218B (zh) 一种用于分布式深度学习训练的本地更新方法
CN112101530A (zh) 神经网络训练方法、装置、设备及存储介质
US11521057B2 (en) Learning system and learning method
CN108009642A (zh) 分布式机器学习方法和***
CN113159287B (zh) 一种基于梯度稀疏的分布式深度学习方法
CN113962362A (zh) 强化学习模型训练方法、决策方法、装置、设备及介质
CN110458287B (zh) 神经网络优化器的参数更新方法、装置、终端及存储介质
CN108459993A (zh) 基于快速追峰采样的复杂高维***优化方法
US11886832B2 (en) Operation device and operation method
CN111898752A (zh) 执行lstm神经网络运算的装置和方法
US20230087774A1 (en) Parameter optimization method, electronic device, and storage medium
CN114841341B (zh) 图像处理模型训练及图像处理方法、装置、设备和介质
JP2020003860A (ja) 学習システム、処理装置、処理方法、およびプログラム
CN117035045A (zh) 模型参数更新方法、装置、设备、存储介质和程序产品
CN115795303A (zh) 一种搜索动态学习率的客户端状态识别方法及装置
CN114492787A (zh) 自适应的神经网络训练方法、电子设备、介质和程序产品
Zhang et al. Dynamic layer-wise sparsification for distributed deep learning
CN113641905B (zh) 模型训练方法、信息推送方法、装置、设备及存储介质
CN116092614B (zh) 一种基于混合神经网络的碳纤维原丝制备仿真方法
CN113591398B (zh) 基于深度强化学习的智能作业分批方法、装置及电子设备

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
GR01 Patent grant
GR01 Patent grant