当前位置: 首页 > 专利查询>广州大学专利>正文

一种加速分布式机器学习的自适应同步机制制造技术

技术编号:35181934 阅读:24 留言:0更新日期:2022-10-12 17:51
本发明专利技术涉及分布式机器学习技术领域,且公开了一种加速分布式机器学习的自适应同步机制,该机制在改善梯度过时的目标下,对不同训练速度的工作节点自适应地采用不同的并行训练方案,改进了现有的BSP和ASP方案。基于最快工作节点和最慢工作节点间的过时值,本机制自适应地为更快的工作节点添加松弛的同步屏障,以限制或减小该过时值,从而改善梯度过时,为减少此同步中慢梯度的影响,使用了一种差异化加权的梯度聚合方法用于聚合梯度,在限制快工作节点的同时,机制对慢工作节点采用异步并行训练方案,以加快慢工作节点的训练速度,通过以上策略,本机制改善了ASP中的梯度过时问题,克服了BSP的“掉队者”问题,能够提高分布式机器学习训练的速度。器学习训练的速度。器学习训练的速度。

【技术实现步骤摘要】
International Conference on Distributed Computing Systems.
[0010][6].Hongyi Zhang,Moustapha Cisse,Yann N.Dauphin,and David Lopez

Paz.mixup:Beyond empirical risk minimization.arXiv preprint arXiv:1710.09412,2017.
[0011][7].S.Ioffe and C.Szegedy.Batch normalization:Accelerating deep network training by reducing internal covariate shift.In Proceedings of ICML,pages448

456,2015.
[0012]J.Hu,L.Shen,and G.Sun.Squeeze

and

excitation networks.arXiv preprint arXiv:1709.01507,2017。
[0013][3][4][5]尝试去改进BSP和ASP。文献[3]提出的Local

SGD通过减少BSP中通信同步的频率来减少通信等待的时间,但是该方法可能会损害模型精度,而且通信同步的频率阈值难以确定。文献[4]提出的SSP通过指定训练速度最快的工作节点和训练速度最慢的工作节点间的梯度过时不超过某一个阈值来改善ASP中存在的梯度过时问题。然而,该方法需要用户指定过时阈值。用户往往不知道如何设置该过时阈值,通常需要频繁的调试才能确定出一个最佳的过时阈值,这是很耗时的。文献[5]提出的DSSP将SSP中的过时阈值改为动态变化,从而解决了SSP人为指定过时阈值的问题。然而,该动态阈值是根据工作节点的迭代时间间隔来估计出来的,当网络发生较大变化时,过时阈值的估计可能会产生较大的误差。
[0014]本专利技术类似于SSP和DSSP,都是控制训练速度最快的工作节点和最慢的工作节点间的过时不能相差太多,不同的是本专利技术不会强制最快的工作节点停下来等待最慢的工作节点,因为在这段强制等待的过程中,昂贵的计算资源会被闲置。本专利技术采用了一种自适应同步的方法来避免最快的工作节点和最慢的工作节点间的过时相差过大,具体来说,本专利技术基于最快的工作节点和最慢的工作节点间的过时值,对训练速度较快的工作节点采用松弛的同步并行训练策略,而对剩余速度较慢的工作节点则采用完全异步并行训练策略。同时,在该松弛的同步并行训练策略中,由于被同步的工作节点间的训练迭代数可能会存在差异,所以在该同步中,不能采用传统的平均的方法聚合梯度,而是应该考虑工作节点间的迭代数的差异进行加权聚合。因此,本专利技术在该同步的聚合过程中采用了一种差异化加权的梯度聚合方法,有效地降低了慢梯度的影响,提高了模型性能。
[0015]由于对较快的工作节点采用了松弛的同步并行训练策略,相当于在它们中增加了一个松弛的同步屏障,这样它们的速度会慢下来,由于该同步是松弛的,所以它们的训练速度也不会被减慢很多(以尽量少的同步实现更轻微的梯度过时),而对剩余速度较慢的工作节点采用异步并行训练策略,让它们可以保持较快的速度。该过程是朝着改善梯度过时的目标自适应变化的,且这是一种同步和异步混合的方式,所以可以实现较高的稳定性和较快的训练速度。

技术实现思路

[0016](一)解决的技术问题
[0017]本专利技术的目的在于提供了一种加速分布式机器学习的自适应同步机制,达到了提高并行训练效率、改善ASP中的梯度过时问题的目的。
[0018](二)技术方案
[0019]本申请提供如下技术方案:一种加速分布式机器学习的自适应同步机制,包括以下步骤:
[0020]S1、在训练初始阶段各个工作节点采用ASP方案进行训练;
[0021]S2、服务器在每一个epoch中检测最快工作节点和最慢工作节点间的过时值s,当s大于1个epoch时,服务器对排名前s名工作节点采用松弛的BSP方案,与BSP不同,松弛的BSP方案允许服务器松弛同步条件,即允许服务器等待一定迭代次数后,可以直接对已收到的梯度做聚合,而不需要等待收到所有梯度才进行聚合,且在该松弛的BSP方案中采用差异化加权的梯度聚合方法聚合梯度,而对于剩余的工作节点,因为它们的排名靠后,训练速度较慢,服务器对它们采用ASP方案;
[0022]S3、在训练的每一轮中检测s,根据s以及工作节点训练速度的变化,针对各个工作节点自适应地采用不同并行训练方案(松弛的BSP或ASP)。
[0023]优选的1,实现自适应同步机制的步骤如下:
[0024]S11、工作节点的实现步骤:
[0025](1)各个工作节点独立加载一部分数据集,并计算损失(Cost)、准确度(Accuracy)以及梯度(Gradient);
[0026](2)工作节点通过TCP通信协议推送梯度到参数服务器中;
[0027](3)等待接收来自参数服务器返回的最新的模型参数;
[0028](4)将最新的模型参数替换本地的模型参数,从而进行下一次迭代训练,即循环执行(1)(2)(3)(4)步骤。
[0029]S11、参数服务器的实现分为两个阶段:初始阶段和自适应同步阶段,参数服务器的运行由初始阶段起始,其后逐步过渡到自适应同步阶段,且根据梯度过时的严重程度,初始阶段和自适应同步阶段会自适应地相互切换:
[0030]初始阶段:
[0031](1)等待接收来自工作节点的梯度,同时记录其迭代次数和训练轮数(训练轮数是指epoch,一次数据集的完整遍历记为一个epoch);
[0032](2)依据迭代次数,参数服务器检测是否所有工作节点都已经完成了一个完整的epoch,如果否,执行以下1)和2)步骤后,然后返回初始阶段步骤(1);
[0033]1)参数服务器直接使用收到的梯度更新全局的模型参数,更新的方法使用随机梯度下降(SGD,Stochastic Gradient Descent),随机梯度下降如公式(1)所示:
[0034]W
t+1
=W
t

decay_α*g
i
ꢀꢀ
(1)
[0035]其中,W
t+1
表示保存在参数服务器中第t+1次迭代的全局模型参数,decay_α表示衰减的学习率,g
i
表示来自第i个工作节点的梯度;
[0036]2)将最新的全局模型参数W
t+1
单播给对应的第i个工作节点;
[0037]继上述步骤(2),如果是(即所有工作节点都已经完成了一个完整epoch),参数服务器依据记录的训练epoch对所有工作节点进行排名,并计算最快工作节点和最慢工作节点的epoch差值s,其中:
[0038]3本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种加速分布式机器学习的自适应同步机制,其特征在于,包括以下步骤:S1、在训练初始阶段各个工作节点采用ASP方案进行训练;S2、服务器在每一个epoch中检测最快工作节点和最慢工作节点间的过时值s,当s大于1个epoch时,服务器对排名前s名工作节点采用松弛的BSP方案,与BSP不同,松弛的BSP方案允许服务器松弛同步条件,即允许服务器等待一定迭代次数后,可以直接对已收到的梯度做聚合,而不需要等待收到所有梯度才进行聚合,且在该松弛的BSP方案中采用差异化加权的梯度聚合方法来聚合梯度,而对于剩余的工作节点,因为它们的排名靠后,训练速度较慢,服务器对它们采用ASP方案;S3、在训练的每一轮中检测s,根据s以及工作节点训练速度的变化,针对各个工作节点自适应地采用不同的并行训练方案(松弛的BSP或ASP)。2.根据权利要求1所述的一种加速分布式机器学习的自适应同步机制,其特征在于,实现自适应同步机制的具体步骤如下:S11、工作节点的实现步骤:(1)各个工作节点独立加载一部分数据集,并计算损失(Cost)、准确度(Accuracy)以及梯度(Gradient);(2)工作节点通过TCP通信协议推送梯度到参数服务器中;(3)等待接收来自参数服务器返回的最新的模型参数;(4)将最新的模型参数替换本地的模型参数,从而进行下一次迭代训练,即循环执行(1)(2)(3)(4)步骤。S11、参数服务器的实现分为两个阶段:初始阶段和自适应同步阶段,参数服务器的运行由初始阶段起始,其后逐步过渡到自适应同步阶段,且根据梯度过时的严重程度,初始阶段和自适应同步阶段会自适应地相互切换:初始阶段:(1)等待接收来自工作节点的梯度,同时记录其迭代次数和训练轮数(训练轮数是指epoch,一次数据集的完整遍历记为一个epoch);(2)依据迭代次数,参数服务器检测是否所有工作节点都已经完成了一个完整的epoch,如果否,执行以下1)和2)步骤后,然后返回初始阶段步骤(1);1)参数服务器直接使用收到的梯度更新全局的模型参数,更新的方法使用随机梯度下降SGD(Stochastic Gradient Descent),随机梯度下降如公式(1)所示:W
t+1
=W
t

decay_α*g
i
ꢀꢀ
(1)其中,W
t+1
表示保存在参数服务器中第t+1次迭代的全局模型参数,decay_α表示衰减的学习率,g
i
表示来自第i个工作节点的梯度;2)将最新的全局模型参数W
t+1
单播给对应的第i个工作节点;继步骤(2),如果是(即所有工作节点都已经完成了一个完整epoch),参数服务器依据记录的训练epoch对所有工作节点进行排名,并计算最快工作节点和最慢工作节点的epoch差值s,其中:3)如果s<=1,参数服务器直接执行1)和2)步骤,然后返回初始阶段步骤(1);如果s>1,服务器将排名前s名的工作节点放入同步组,而将剩余的工作节点放入异步组,接着执行(2)中的1)和2)步骤后,参数服务器进入自适应同步阶段:
自适应同步阶段:(3)等待接收来自工作节点的梯度,在继承初始阶段的同时,继续记录工作节点的迭代次数和训练轮数(epoch);(4)如果此时聚合列表(即权利要求3中所述的聚合列表)中已存在至少一份梯度,参数服务器启动松弛计数器,每收到一份梯度则松弛计数器计数加1;(5)判断接收到的梯度是否来自于同步组中的工作节点;(6)如果该份梯度来自于同步组中的工作节点,则按下面权利要求3、4、5、6和7所述过程执行;(7)如果该份梯度是来自于异步组中的工作节点,则执行初始阶段中的步骤1)和2);(8)循环执行步骤(3)(4)(5)(6)(7),直到工作节点训练结束。3.根据权利要求2所述的一种加速分布式机器学习的自适应同步机制,其特征在于,继自适应同步阶段步骤(5),如果该份梯度来自于同步组中的工作节点,则执行以下操作:1)参数服务器不会立刻更新全局模型参数,而是将这份梯度添加到一个聚合列表。2)如果聚合列表中梯度份数不等于同步组中所有工作节点个数或者松弛计数器计数小于或等于预设的松弛因子,返回到自适应同步阶段的步骤(3)。4.根据权利要求3所述的一种加速分布式机器学习的自适应同步机制,其特征在于,继权利要求3中的步骤2),否则(即满足聚合列表中的梯度份数等于同步组中所有工作节点个数或者满足松弛计数器计数大于预设的松弛因子),此时对聚合列表中的梯度做聚合,执行
①②③④
步骤:

采用一种差异化加权的梯度聚合方法用于聚合梯度,该方法如公式(2)(3)所示:采用一种差异化加权的梯度聚合方法用于聚合梯度,该方法如公式(2)(3)所示:其中,iteration
i
表示第i个工作节点的迭代次数,s

表示参数服务器已收到的需要进行同步聚合的梯度份数,其...

【专利技术属性】
技术研发人员:刘外喜谭淼泉罗钧明蔡君陈庆春
申请(专利权)人:广州大学
类型:发明
国别省市:

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

1