CN112381218A - 一种用于分布式深度学习训练的本地更新方法 - Google Patents

一种用于分布式深度学习训练的本地更新方法 Download PDF

Info

Publication number
CN112381218A
CN112381218A CN202011312705.9A CN202011312705A CN112381218A CN 112381218 A CN112381218 A CN 112381218A CN 202011312705 A CN202011312705 A CN 202011312705A CN 112381218 A CN112381218 A CN 112381218A
Authority
CN
China
Prior art keywords
local
weight
global
computing node
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.)
Granted
Application number
CN202011312705.9A
Other languages
English (en)
Other versions
CN112381218B (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202011312705.9A priority Critical patent/CN112381218B/zh
Publication of CN112381218A publication Critical patent/CN112381218A/zh
Application granted granted Critical
Publication of CN112381218B publication Critical patent/CN112381218B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于分布式深度学习训练的本地更新方法,具体包括以下步骤:对从参数服务器端取回的全局权重进行备份并保存到备份权重变量中;在每个计算节点中计算全局梯度;利用本地梯度和全局梯度对本地权重进行更新得到新的本地权重,并开始下一轮的迭代训练;在接下来的k‑1次迭代训练中,每个计算节点将基于各自独立的本地权重进行本地更新操作;在第k次迭代中,计算节点将执行该权重取回操作并保存到本地权重中,在完成全局梯度计算后,利用本地权重对备份权重的值进行覆盖。利用本发明进行分布式深度学习训练中的本地更新操作时,可以获得最高的模型收敛精度和训练速度。

Description

一种用于分布式深度学习训练的本地更新方法
技术领域
本发明涉及人工智能技术领域,尤其涉及一种分布式深度学习的训练更新方法。
背景技术
深度学习最近在计算机视觉、自然语言处理、自动驾驶、智能医疗等各个领域都取得了很大的成功。深度学习的兴起主要源于两个条件,一是通用和定制化硬件加速器(GPU,NPU,TPU等)的出现,该类硬件加速器在计算能力方面带来了巨大的进步,二是如ImageNet和CIFAR这样的通用训练数据集的开源。然而,随着深度神经网络和数据集规模的快速增长,用于训练的机器的计算能力成为瓶颈,需要几天或几周才能完成一个大型神经网络模型的训练,在这种情况下,分布式训练成为普遍的做法,它极大地提高了训练效率,提升了神经网络模型的研发速度。
随机梯度下降(SGD)是广泛用于分布式训练的优化方法。同步SGD(SSGD)和异步SGD(ASGD)是在分布式深度学习训练过程中最常用的两种更新方法。SSGD方法可以保证模型良好的收敛精度,但训练过程中的同步栅栏严重限制了分布式训练的速度。在同步随机梯度下降方法中,其采用的本地更新操作在模型训练过程中会占用部分计算资源,进而影响模型训练的性能。本地更新操作的核心就是本地更新方法,为了减少本地更新方法对计算资源的占用,本地更新操作中应当不包含复杂的计算操作,而为了保证更新的效果,该方法应当能够利用全局的权重或梯度信息。基于此,本发明公开了一种用于分布式深度学习训练的本地更新方法。
发明内容
为减少分布式深度学习训练中本地更新方法对计算资源的占用,同时保证训练更新的效果,本发明公开了一种用于分布式深度学习训练的本地更新方法(GLU),延迟步数为k,该方法具体包括以下步骤:
S1,对从参数服务器端取回的t-1时刻全局权重wt-1进行备份并保存到备份权重变量pre_weight中,此时t-1时刻各个计算节点的本地权重w′t-1均等于t-1时刻全局权重wt-1,也等于备份权重pre_weight。
S2,在每个计算节点中计算全局梯度gradsync
Figure BDA0002790303610000021
w′t-1,i为t-1时刻第i个计算节点的本地权重,m和lr分别为参数服务器中设定的动量值和全局学习率;在进行k次本地更新操作后,将利用t时刻第i个计算节点的本地权重w′t,i对pre_weight的值进行覆盖;
S3,对本地权重进行更新得到新的本地权重,本地更新的计算公式为:
Figure BDA0002790303610000022
其中w′t,i为t时刻第i个计算节点的本地权重,loc_lr为本地学习率,α和β是用于决定本地梯度和全局梯度所占比例的系数,t-1时刻第i个计算节点权重w′t-1,i的值取决于计算节点是否执行了取回操作(Pull),取回操作是从参数服务器里将更新后的全局参数取回到计算节点中,如果执行了取回操作,则w′t-1,i等于t-1时刻的全局权重wt-1,如果未执行该操作,则w′t-1,i取值为进行了本地更新操作的本地权重。
Figure BDA0002790303610000023
为t-1时刻第i个计算节点的全局梯度,grad′t-1,i为第i个计算节点t-1时刻的本地梯度,wd为权重下降系数。
本地权重更新完成后,开始下一轮的迭代训练;
S4,在接下来的k-1次迭代训练中,即执行下一次权重的取回操作(Pull)前,每个计算节点都利用公式(1)和公式(2)进行本地更新操作,对于每个计算节点中各自独立的本地权重,在第k次迭代中,计算节点将执行该权重的取回操作(Pull),并用于下一次的本地更新操作。因此,下一次本地更新操作中的w′t-1,i均等于参数服务器中的全局权重wt-1,并且该次本地更新操作完成后,利用w′t,i对pre_weight值进行覆盖。
本发明的有益效果为:
利用GLU方法进行本地更新操作时可以获得最高的模型收敛精度(73.745%)和训练速度(786.86images/sec),因此GLU方法在用于分布式深度学习训练时,具有更高的更新效率。一方面,GLU方法利用了全局梯度信息(gradsync)进行本地更新操作;另一方面,GLU方法中并没有引入复杂的计算操作,只有矩阵的加减以及矩阵和标量的乘法,而没有矩阵间的乘法以及对矩阵的开方操作。SGD方法用于本地更新操作时的训练速度(769.65images/sec)和GLU方法下的训练速度相近,但模型的收敛精度低了相比于GLU和DC-ASGD-a(基于延迟弥补的自适应异步更新算法)方法分别低了0.519%(73.226%vs73.745%)和0.143%(73.226%vs 73.269%)。这是因为SGD方法在进行本地更新操作时没有利用相关的全局信息,仅用最新计算得到的梯度进行本地权重更新,导致模型的收敛精度有所下降。
附图说明
图1为不同本地更新算法下ResNet-50(32)模型的收敛精度曲线和每个计算节点的平均训练速度。
具体实施方式
为了更好的了解本发明内容,这里给出一个实施例。
为减少分布式深度学习训练中本地更新方法对计算资源的占用,同时保证训练更新的效果,本发明公开了一种用于分布式深度学习训练的本地更新方法(GLU),GLU方法的关键在于计算节点的全局梯度gradsync的计算,延迟步数为k,该方法具体包括以下步骤:
S1,对从参数服务器端取回的t-1时刻全局权重wt-1进行备份并保存到备份权重变量pre_weight中,此时t-1时刻各个计算节点的本地权重w′t-1均等于t-1时刻全局权重wt-1,也等于备份权重pre_weight。
S2,在每个计算节点中计算全局梯度gradsync
Figure BDA0002790303610000041
w′t-1,i为t-1时刻第i个计算节点的本地权重,m和lr分别为参数服务器中设定的动量值和全局学习率;在进行k次本地更新操作后,将利用t时刻第i个计算节点的本地权重w′t,i对pre_weight的值进行覆盖;
S3,对本地权重进行更新得到新的本地权重,本地更新的计算公式为:
Figure BDA0002790303610000042
其中w′t,i为t时刻第i个计算节点的本地权重,loc_lr为本地学习率,α和β是用于决定本地梯度和全局梯度所占比例的系数,t-1时刻第i个计算节点权重w′t-1,i的值取决于计算节点是否执行了取回操作(Pull),取回操作是从参数服务器里将更新后的全局参数取回到计算节点中,如果执行了取回操作,则w′t-1,i等于t-1时刻的全局权重wt-1,如果未执行该操作,则w′t-1,i取值为进行了本地更新操作的本地权重。
Figure BDA0002790303610000043
为t-1时刻第i个计算节点的全局梯度,grad′t-1,i为第i个计算节点t-1时刻的本地梯度,wd为权重下降系数。
本地权重更新完成后,开始下一轮的迭代训练;
S4,在接下来的k-1次迭代训练中,即执行下一次权重的取回操作(Pull)前,每个计算节点都利用公式(1)和公式(2)进行本地更新操作,对于每个计算节点中各自独立的本地权重,在第k次迭代中,计算节点将执行该权重的取回操作(Pull),并用于下一次的本地更新操作。因此,下一次本地更新操作中的w′t-1,i均等于参数服务器中的全局权重wt-1,并且该次本地更新操作完成后,利用w′t,i对pre_weight值进行覆盖。
在GLU方法的执行过程中,首先利用pre_weight和w′t,i进行全局梯度gradsync的计算,之后基于gradsync和本地梯度grad′t,i进行本地更新操作。pre_weight变量中的值每隔k次迭代会被w′t,i中的值覆盖。
设计GLU方法的目的是为了本地更新操作能实现更好的信息延迟弥补,同时极少本地更新操作引入的计算量,避免过多占用计算资源而影响训练速度。这里对GLU方法是否到达上述目的进行了有效性评估。图1给出了在应用三种不同的本地更新方法(SGD,DC-ASGD-a,GLU)时,ResNet-50(ImageNet)模型在SSD-SGD方法下的收敛精度曲线和训练速度对比图,训练速度为分布式训练模型下每个计算节点的平均训练速度。实验中采用了4个参数服务器节点和4个计算节点,单节点批大小为128,SGD,DC-ASGD-a和GLU方法对应的本地学习率分别为0.1,0.4和1.6,参数服务器中的全局学习率为0.4,延迟步数为5。
基于图1中的两个子图,可以得出下述结论:(1)图1中的(a)子图表明,利用GLU方法进行本地更新操作时可以获得最高的模型收敛精度(73.745%)和训练速度(786.86images/sec),充分证明了GLU方法的有效性。一方面,GLU方法利用了全局梯度信息(gradsync)进行本地更新操作;另一方面,GLU方法中并没有引入复杂的计算操作,只有矩阵的加减以及矩阵和标量的乘法,而没有矩阵间的乘法以及对矩阵的开方操作。(2)图1中的(b)子图表明,SGD方法用于本地更新操作时的训练速度(769.65images/sec)和GLU方法下的训练速度相近,但模型的收敛精度低了相比于GLU和DC-ASGD-a方法分别低了0.519%(73.226%vs 73.745%)和0.143%(73.226%vs 73.269%)。这是因为SGD方法在进行本地更新操作时没有利用相关的全局信息,仅用最新计算得到的梯度进行本地权重更新,导致模型的收敛精度有所下降。(3)DC-ASGD-a方法用于本地更新时模型的收敛精度低于GLU方法(73.369%vs 73.745%)。这源于两个方面的原因,一是DC-ASGD-a方法主要用于在参数服务器端进行权重的延迟弥补,而在SSD-SGD方法中将其应用于本地计算节点中;二是超参数配置虽然也是针对单GPU批大小为32,但每个GPU都当作一个独立的计算节点,而的实验中单计算节点有4个GPU卡,只是将本地学习率由0.1线性增大为0.4,相应的超参数配置可能不是最佳的。(4)DC-ASGD-a方法用于本地更新操作时的训练速度最慢(561.53images/sec),这是因为DC-ASGD-a方法中引入了复杂的计算操作,虽然本地更新操作的计算开销可以很大程度通过梯度发送开销进行掩盖,但对计算资源的过多占用还是影响了分布式训练的性能,这也是选择设计GLU方法,而并非为DC-ASGD-a方法搜索最佳超参数配置的原因。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (1)

1.一种用于分布式深度学习训练的本地更新方法,其特征在于,延迟步数为k,具体包括以下步骤:
S1,对从参数服务器端取回的t-1时刻全局权重wt-1进行备份并保存到备份权重变量pre_weight中,此时t-1时刻各个计算节点的本地权重w′t-1均等于t-1时刻全局权重wt-1,也等于备份权重pre_weight;
S2,在每个计算节点中计算全局梯度gradsync
Figure FDA0002790303600000011
w′t-1,i为t-1时刻第i个计算节点的本地权重,m和lr分别为参数服务器中设定的动量值和全局学习率;在进行k次本地更新操作后,将利用t时刻第i个计算节点的本地权重w′t,i对pre_weight的值进行覆盖;
S3,对本地权重进行更新得到新的本地权重,本地更新的计算公式为:
Figure FDA0002790303600000012
其中w′t,i为t时刻第i个计算节点的本地权重,loc_lr为本地学习率,α和β是用于决定本地梯度和全局梯度所占比例的系数,t-1时刻第i个计算节点权重w′t-1,i的值取决于计算节点是否执行了取回操作,取回操作是从参数服务器里将更新后的全局参数取回到计算节点中,如果执行了取回操作,则w′t-1,i等于t-1时刻的全局权重wt-1,如果未执行该操作,则w′t-1,i取值为进行了本地更新操作的本地权重;
Figure FDA0002790303600000013
为t-1时刻第i个计算节点的全局梯度,为了方便描述,将
Figure FDA0002790303600000014
简写为gradsync,grad′t-1,i为第i个计算节点t-1时刻的本地梯度,wd为权重下降系数;
本地权重更新完成后,开始下一轮的迭代训练;
S4,在接下来的k-1次迭代训练中,即执行下一次权重的取回操作前,每个计算节点都利用公式(1)和公式(2)进行本地更新操作,对于每个计算节点中各自独立的本地权重,在第k次迭代中,计算节点将执行该权重的取回操作,并用于下一次的本地更新操作;因此,下一次本地更新操作中的w′t-1,i均等于参数服务器中的全局权重wt-1,并且该次本地更新操作完成后,利用w′t,i对pre_weight值进行覆盖。
CN202011312705.9A 2020-11-20 2020-11-20 一种用于分布式深度学习训练的本地更新方法 Active CN112381218B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011312705.9A CN112381218B (zh) 2020-11-20 2020-11-20 一种用于分布式深度学习训练的本地更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011312705.9A CN112381218B (zh) 2020-11-20 2020-11-20 一种用于分布式深度学习训练的本地更新方法

Publications (2)

Publication Number Publication Date
CN112381218A true CN112381218A (zh) 2021-02-19
CN112381218B CN112381218B (zh) 2022-04-12

Family

ID=74584569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011312705.9A Active CN112381218B (zh) 2020-11-20 2020-11-20 一种用于分布式深度学习训练的本地更新方法

Country Status (1)

Country Link
CN (1) CN112381218B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113469341A (zh) * 2021-07-07 2021-10-01 河海大学 一种基于版本差异的流水线并行训练节点权重分配方法
CN113627519A (zh) * 2021-08-07 2021-11-09 中国人民解放军国防科技大学 具有压缩和延迟补偿的分布式随机梯度下降方法
CN114580578A (zh) * 2022-05-06 2022-06-03 鹏城实验室 具有约束的分布式随机优化模型训练方法、装置及终端
CN114841341A (zh) * 2022-04-25 2022-08-02 北京百度网讯科技有限公司 模型训练及数据处理方法、装置、设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106687995A (zh) * 2014-05-12 2017-05-17 高通股份有限公司 分布式模型学习
CN108829441A (zh) * 2018-05-14 2018-11-16 中山大学 一种分布式深度学习的参数更新优化系统
US20180349313A1 (en) * 2017-06-01 2018-12-06 Electronics And Telecommunications Research Institute Parameter server and method for sharing distributed deep learning parameter using the same
CN110084378A (zh) * 2019-05-07 2019-08-02 南京大学 一种基于本地学习策略的分布式机器学习方法
CN110135575A (zh) * 2017-12-29 2019-08-16 英特尔公司 用于分布式机器学习的通信优化
CN110245743A (zh) * 2019-05-23 2019-09-17 中山大学 一种异步分布式深度学习训练方法、装置及系统
CN111079921A (zh) * 2019-11-29 2020-04-28 杭州电子科技大学舟山同博海洋电子信息研究院有限公司 一种基于异构分布式系统的高效神经网络训练调度方法
CN111882060A (zh) * 2020-07-20 2020-11-03 中国人民解放军国防科技大学 用于机器学习的单步延迟随机梯度下降训练方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106687995A (zh) * 2014-05-12 2017-05-17 高通股份有限公司 分布式模型学习
US20180349313A1 (en) * 2017-06-01 2018-12-06 Electronics And Telecommunications Research Institute Parameter server and method for sharing distributed deep learning parameter using the same
CN110135575A (zh) * 2017-12-29 2019-08-16 英特尔公司 用于分布式机器学习的通信优化
CN108829441A (zh) * 2018-05-14 2018-11-16 中山大学 一种分布式深度学习的参数更新优化系统
CN110084378A (zh) * 2019-05-07 2019-08-02 南京大学 一种基于本地学习策略的分布式机器学习方法
CN110245743A (zh) * 2019-05-23 2019-09-17 中山大学 一种异步分布式深度学习训练方法、装置及系统
CN111079921A (zh) * 2019-11-29 2020-04-28 杭州电子科技大学舟山同博海洋电子信息研究院有限公司 一种基于异构分布式系统的高效神经网络训练调度方法
CN111882060A (zh) * 2020-07-20 2020-11-03 中国人民解放军国防科技大学 用于机器学习的单步延迟随机梯度下降训练方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113469341A (zh) * 2021-07-07 2021-10-01 河海大学 一种基于版本差异的流水线并行训练节点权重分配方法
CN113627519A (zh) * 2021-08-07 2021-11-09 中国人民解放军国防科技大学 具有压缩和延迟补偿的分布式随机梯度下降方法
CN114841341A (zh) * 2022-04-25 2022-08-02 北京百度网讯科技有限公司 模型训练及数据处理方法、装置、设备和存储介质
CN114841341B (zh) * 2022-04-25 2023-04-28 北京百度网讯科技有限公司 图像处理模型训练及图像处理方法、装置、设备和介质
CN114580578A (zh) * 2022-05-06 2022-06-03 鹏城实验室 具有约束的分布式随机优化模型训练方法、装置及终端
CN114580578B (zh) * 2022-05-06 2022-08-23 鹏城实验室 具有约束的分布式随机优化模型训练方法、装置及终端

Also Published As

Publication number Publication date
CN112381218B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN112381218B (zh) 一种用于分布式深度学习训练的本地更新方法
Haveliwala et al. Computing PageRank using power extrapolation
CN112686383B (zh) 一种通信并行的分布式随机梯度下降的方法、系统及装置
CN110363281A (zh) 一种卷积神经网络量化方法、装置、计算机和存储介质
EP3504666A1 (en) Asychronous training of machine learning model
CN111882060A (zh) 用于机器学习的单步延迟随机梯度下降训练方法
CN112463189B (zh) 基于通信操作稀疏化的分布式深度学习多步延迟更新方法
CN110162766B (zh) 词向量更新方法和装置
CN111178486B (zh) 一种基于种群演化的超参数异步并行搜索方法
CN109635922A (zh) 一种分布式深度学习参数量化通信优化方法及系统
CN113159287B (zh) 一种基于梯度稀疏的分布式深度学习方法
CN109514553A (zh) 一种机器人移动控制的方法、系统及设备
CN115577791B (zh) 基于量子系统的信息处理方法及装置
CN107832259A (zh) 一种基于时间序列和卡尔曼滤波的负荷预测方法
CN113962362A (zh) 强化学习模型训练方法、决策方法、装置、设备及介质
CN112183750A (zh) 神经网络模型训练方法、装置、计算机设备及存储介质
CN116205273A (zh) 优化经验存储与经验再利用的多智能体强化学习方法
CN114254117A (zh) 一种基于数据增强和自适应负采样技术的知识图谱推理方法
CN108427773B (zh) 一种分布式知识图谱嵌入方法
CN115374910B (zh) 一种更新深度学习训练超参数的方法、装置及设备
CN116543259A (zh) 一种深度分类网络噪声标签建模与纠正方法、系统及存储介质
CN116033492A (zh) 移动边缘环境中Transformer模型分割方法及装置
CN117035045A (zh) 模型参数更新方法、装置、设备、存储介质和程序产品
CN114841341A (zh) 模型训练及数据处理方法、装置、设备和存储介质
CN113240089A (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