首页> 中国专利> 一种通信并行的分布式随机梯度下降的方法、系统及装置

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

摘要

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

著录项

  • 公开/公告号CN112686383A

    专利类型发明专利

  • 公开/公告日2021-04-20

    原文格式PDF

  • 申请/专利权人 中山大学;

    申请/专利号CN202011622695.9

  • 发明设计人 卢宇彤;关文轩;

    申请日2020-12-30

  • 分类号G06N3/08(20060101);

  • 代理机构44367 深圳市创富知识产权代理有限公司;

  • 代理人高冰

  • 地址 510275 广东省广州市海珠区新港西路135号

  • 入库时间 2023-06-19 10:41:48

说明书

技术领域

本发明涉及模型训练领域,尤其涉及一种通信并行的分布式随机梯度下降的方法、系统及装置。

背景技术

近年来,随着大数据和高速计算资源的快速发展,深度学习在人工智能许多领域都取得了突破性的发展和广泛应用,比如图像识别、语音识别以及自然语言处理等等。为了对模型进行更新训练,深度学习的训练通常使用小批量随机梯度下降算法(mini-batchSGD)。但是,随着数据集的规模越来越大以及神经网络的模型越来越复杂,模型训练时间也显著增加,成为深度学习发展的瓶颈。目前主要采用同步随机梯度下降算法和局部随机梯度下降算法进行深度学习的训练,在同步随机梯度下降算法中,每轮批次都需要进行梯度的通信,而且某些速度较慢的计算节点会影响到整体的训练速度,会产生木桶效应,率先训练完的节点只能停下来等待。由于分布式深度学习需要频繁地对梯度或参数等信息进行通信,当数据集越大、通信时间越多、计算集群规模越大时,通信开销会越来越大,容易成为分布式训练的性能瓶颈,严重影响系统的扩展性;局部随机梯度下降算法虽然通过降低通信频率,改善了同步随机梯度下降算法中通信开销大的问题。但是通信频率的降低,意味着丢失的信息越多,会导致收敛性能下降,因此可能需要更多的训练迭代才能达到和同步随机梯度下降算法相同的模型精度,这最终可能会减慢训练速度。

发明内容

为了解决上述技术问题,本发明的目的是提供一种通信并行的分布式随机梯度下降的方法、系统及装置,将计算节点的训练过程和通信过程并行进行,既减少了通信开销,又能减少训练所需时间。

本发明所采用的第一技术方案是:一种通信并行的分布式随机梯度下降的方法,包括以下步骤:

S1、读取本地的训练数据;

S2、按批次将训练数据输入到本地模型进行前向传播,得到本地模型的实际输出;

S3、根据实际输出和预设的期望输出得到损失值;

S4、基于损失值对本地模型进行反向传播,逐层计算得到参数的本地梯度;

S5、根据小批量随机梯度下降算法和本地梯度对本地模型参数进行更新,得到更新后的本地模型;

S6、新建子线程与参数服务器进行通信并向参数服务器发送更新后的本地模型;

S7、根据更新后的本地模型进行模型同步并返回步骤S2,直至迭代训练达到预设次数,接收参数服务器聚合平均后返回的最终模型,完成训练。

进一步,还包括参数服务器工作步骤:

发送初始模型副本;

接收计算节点发送的本地模型并根据本地模型参数计算平均后的同步模型参数;

将同步模型参数发送给计算节点。

进一步,所述按批次将训练数据输入到本地模型进行前向传播还包括判断当前批次是否为第一次迭代训练,判断到当前批次为第一次迭代训练,接受参数服务器发送的初始模型副本并作为本地模型参数。

进一步,所述对本地模型参数使用小批量随机梯度下降算法进行更新,得到更新后的本地模型这一步骤,其具体包括:

判断到当前批次是第一次迭代训练,根据本地梯度和小批量随机梯度下降算法对本地模型参数进行更新,得到更新后的本地模型;

判断到当前批次不是第一次迭代训练,基于预设的更新公式对本地模型参数进行更新,得到更新后的本地模型。

进一步,对于第t次迭代,所述预设的更新公式具体如下:

上式中,k表示第k个计算节点,t表示第t次迭代,η表示学习率,⊙表示向量之间的内积操作,W

进一步,述根据更新后的本地模型进行模型同步并返回步骤S2,直至迭代训练达到预设次数,接收参数服务器聚合平均后返回的最终模型,完成训练这一步骤,其具体包括:

判断到当前迭代训练未达到预设次数,对更新后的本地模型计算平均后的同步模型并发送回计算节点进行下一次迭代训练;

判断到当前迭代训练达到预设次数,接收经过参数服务器聚合平均返回的最终模型,完成训练。

进一步,所述平均后的同步模型参数具体计算公式如下:

上式中,p表示计算节点的数目。

本发明所采用的第二技术方案是:一种通信并行的分布式随机梯度下降的系统,包括:

计算节点,用于读取训练数据、将训练数据输入到神经网络得到实际输出、根据实际输出和预设的期望输出得到损失值、计算本地梯度、更新本地模型参数、发送更新后的本地模型和接收最终模型;

参数服务器,用于发送初始模型副本、计算并发送同步模型参数。

本发明所采用的第三技术方案是:一种通信并行的分布式随机梯度下降的装置,包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如上所述一种通信并行的分布式随机梯度下降的方法。

本发明方法、系统及装置的有益效果是:本发明将计算节点的训练过程和通信过程并行进行,在计算节点降低通信频率,进行本地模型训练的同时,利用通过并行通信获得的上一轮迭代的同步参数,对本轮迭代获得的梯度进行信息补偿,从而达到既大大减少了通信开销,又能获得与同步随机梯度下降算法接近的收敛速度,达到减少训练时间的效果。

附图说明

图1是本发明一种通信并行的分布式随机梯度下降的方法具体实施例的步骤流程图;

图2是本发明一种通信并行的分布式随机梯度下降的系统的结构框图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。

如图1所示,本发明提供一种通信并行的分布式随机梯度下降的方法,应用于计算节点-参数服务器架构,包括一个参数服务器节点和多个计算节点,计算节点的工作步骤包括:

S1、读取本地的训练数据;

具体地,读取本地的一个批次训练数据到内存中,所述训练数据中包括对应的期望输出。

S2、按批次将训练数据输入到本地模型进行前向传播,得到本地模型的实际输出;

具体地,判断是否第一次迭代训练,如果是第一次迭代,计算节点接受参数服务器发来的初始模型副本,作为本地模型的参数;计算节点根据读取到内存的训练数据输入到神经网络,进行前向传播,得到神经网络的输出,本地模型即神经网络。

S3、根据实际输出和预设的期望输出得到损失值;

S4、基于损失值对本地模型进行反向传播,逐层计算得到参数的本地梯度;

S5、根据小批量随机梯度下降算法和本地梯度对本地模型参数进行更新,得到更新后的本地模型;

S6、新建子线程与参数服务器进行通信并向参数服务器发送更新后的本地模型;

具体地,完成本地模型参数的更新后,新建一个子线程与参数服务器进行通信,发送更新完的本地模型给参数服务器,等待参数服务器发送回来平均后的同步模型参数W

S7、根据更新后的本地模型进行模型同步并返回步骤S2,直至迭代训练达到预设次数,接收参数服务器聚合平均后返回的最终模型,完成训练。

进一步作为本方法的优选实施例,还包括参数服务器工作步骤:

发送初始模型副本;

接收计算节点发送的本地模型并根据本地模型参数计算平均后的同步模型参数;

将同步模型参数发送给计算节点。

具体地,如果迭代训练达到预设次数,该同步模型即最终模型,确定模型参数即确定模型。

进一步作为本方法的优选实施例,所述按批次将训练数据输入到本地模型进行前向传播还包括判断当前批次是否为第一次迭代训练,判断到当前批次为第一次迭代训练,接受参数服务器发送的初始模型副本并作为本地模型参数。

进一步作为本方法的优选实施例,所述根据小批量随机梯度下降算法和本地梯度对本地模型参数进行更新,得到更新后的本地模型这一步骤,其具体包括:

判断到当前批次是第一次迭代训练,根据本地梯度和小批量随机梯度下降算法对本地模型参数进行更新,得到更新后的本地模型;

判断到当前批次不是第一次迭代训练,基于预设的更新公式对本地模型参数进行更新,得到更新后的本地模型。

进一步作为本方法的优选实施例,对于第t次迭代,所述预设的更新公式具体如下:

上式中,k表示第k个计算节点,t表示第t次迭代,η表示学习率,⊙表示向量之间的内积操作,W

进一步作为本方法的优选实施例,所述根据更新后的本地模型进行模型同步并返回步骤S2,直至迭代训练达到预设次数,接收参数服务器聚合平均后返回的最终模型,完成训练这一步骤,其具体包括:

判断到当前迭代训练未达到预设次数,对更新后的本地模型计算平均后的同步模型并发送回计算节点进行下一次迭代训练;

判断到当前迭代训练达到预设次数,接收经过参数服务器聚合平均返回的最终模型,完成训练。

进一步作为本方法的优选实施例,所述平均后的同步模型参数具体计算公式如下:

上式中,p表示计算节点的数目。

本发明实施例中,首先通过增大通信周期,降低通信频率的方式,有效减小了训练中的通信开销。此外,本发明实施例在计算节点的每一轮迭代中,利用主线程计算、子线程通信的方式,让主线程和子线程并行进行,子线程的通信并不对主线程的计算造成阻塞。主线程每轮迭代最后对本地模型参数进行更新时,利用子线程在上一轮迭代通信获得的同步参数信息,对本轮迭代的梯度进行信息补偿,尽可能的减轻由于降低通信频率而对收敛造成的影响。从而达到既大大减少了通信开销,又能获得与同步随机梯度下降算法接近的收敛性能,达到减少训练时间的效果。

如图2所示,一种通信并行的分布式随机梯度下降的系统,包括:

计算节点,用于读取训练数据、将训练数据输入到神经网络得到实际输出、根据实际输出和预设的期望输出得到损失值、计算本地梯度、更新本地模型参数、发送更新后的本地模型和接收最终模型;

参数服务器,用于发送初始模型副本、计算并发送同步模型参数。

上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。

一种通信并行的分布式随机梯度下降的装置:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如上所述一种通信并行的分布式随机梯度下降的方法。

上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号