华佗养生网
您的当前位置:首页一种基于采样的分布式机器学习慢节点处理系统及方法[发明专利]

一种基于采样的分布式机器学习慢节点处理系统及方法[发明专利]

来源:华佗养生网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 108446770 A(43)申请公布日 2018.08.24

(21)申请号 201710082939.0(22)申请日 2017.02.16

(71)申请人 中国科学院上海高等研究院

地址 201210 上海市浦东新区海科路99号(72)发明人 田乔 许春玲 李明齐 (74)专利代理机构 上海光华专利事务所(普通

合伙) 31219

代理人 王华英(51)Int.Cl.

G06N 99/00(2010.01)

权利要求书2页 说明书5页 附图2页

CN 108446770 A(54)发明名称

一种基于采样的分布式机器学习慢节点处理系统及方法(57)摘要

本发明提供一种基于采样的分布式机器学习慢节点处理系统及方法,该系统包括多个呈并列分布的机器,每个机器均包括学习器节点和参数服务器节点,每个学习器节点与每个机器内的参数服务器节点分别相连;学习器节点用于获取数据分片,进行模拟训练,向参数服务器节点发起梯度更新请求;参数服务器节点用于判断学习器节点是否为慢节点,根据判断结果决定是否响应学习器节点发起的梯度更新请求并完成全局模型参数更新。本发明通过使用采样训练过程中

并通过丢弃的快慢节点更新延迟来发现慢节点,

慢节点的梯度更新的手段来解决过期梯度问题,提高收敛的准确性与稳定性,能防止丢弃慢节点过多的问题。

CN 108446770 A

权 利 要 求 书

1/2页

1.一种基于采样的分布式机器学习慢节点处理系统,其特征在于,包括多个呈并列分布的机器,每个机器均包括学习器节点和参数服务器节点,每个所述学习器节点与每个所述机器内的所述参数服务器节点分别相连;

所述学习器节点用于获取数据分片,进行模拟训练,向所述参数服务器节点发起梯度更新请求,并且异步获取所述参数服务器节点推送的模型参数;

所述参数服务器节点用于判断所述学习器节点是否为慢节点,根据判断结果决定是否响应所述学习器节点发起的梯度更新请求并完成全局模型参数更新,并被动向所述学习器节点推送更新后的模型参数。

2.根据权利要求1所述的基于采样的分布式机器学习慢节点处理系统,其特征在于:所述参数服务器节点包括滑动采样模块,所述滑动采样模块用于收集所述学习器节点的之前梯度过期程度以及更新延迟样本,并实时更新。

3.根据权利要求2所述的基于采样的分布式机器学习慢节点处理系统,其特征在于:所述学习器节点还用于在异步获取所述参数服务器节点推送的模型参数之后,用当前参数服务器节点的逻辑时钟值更新自己的逻辑时钟值。

4.一种基于采样的分布式机器学习慢节点处理方法,其特征在于:包括以下步骤:1)学习器节点获取数据分片,进行模拟训练,待训练完成后,向参数服务器节点发起梯度更新请求;

2)所述参数服务器节点收到梯度更新请求,然后判断所述学习器节点是否为慢节点,若是,则丢弃梯度更新请求,若否,则响应梯度更新请求,并更新模型参数,然后进行下一步;

3)对更新模型参数后的模型进行收敛性检验,若通过检验则得出训练模型;若未通过则进行下一步;

4)所述学习器节点拉取新的模型参数,重复操作步骤1)、2)和3),直至模型的收敛性检验通过。

5.根据权利要求4所述的基于采样的分布式机器学习慢节点处理方法,其特征在于:所述基于采样的分布式机器学习慢节点处理方法还包括在所述步骤2)之前收集所述学习器节点之前的梯度过期程度以及更新延迟样本的步骤。

6.根据权利要求5所述的基于采样的分布式机器学习慢节点处理方法,其特征在:所述学习器节点的梯度过期程度=所述参数服务器节点的逻辑时钟值–所述学习器节点的逻辑时钟值+1。

7.根据权利要求4所述的基于采样的分布式机器学习慢节点处理方法,其特征在于:所述步骤1)中,所述学习器节点向参数服务器节点发起梯度更新请求后,用当前所述服务器节点的逻辑时钟值更新自己的逻辑时钟值。

8.根据权利要求6所述的基于采样的分布式机器学习慢节点处理方法,其特征在于:在所述步骤2)中,判断所述学习器节点是否为慢节点包括以下进程:

a)所述参数服务器节点上采用一个固定大小的队列来保存所述学习器节点之前发起梯度更新请求时的梯度过期程度;

b)所述参数服务器节点计算当前所述学习器节点的更新的梯度过期程度,去除队列中梯度过期程度最大的数据,并将所述学习器节点的更新的梯度过期程度插入队列中,如果

2

CN 108446770 A

权 利 要 求 书

2/2页

梯度过期程度排名大于预设的阈值,则判断学习器节点为慢节点,若否,则不是慢节点。

9.根据权利要求4所述的基于采样的分布式机器学习慢节点处理方法,其特征在于,在所述步骤2)中,当所述参数服务器节点响应梯度更新请求后,所述参数服务器节点的逻辑时钟值加1。

10.根据权利要求4所述的基于采样的分布式机器学习慢节点处理方法,其特征在于:在所述步骤2)中,所述模型参数更新公式为

其中,Wi代表第i次训练后的参数,ΔWi,j代表第i次训练后,第j个学习器的梯度贡献,i、j均为不小于0的整数,λ代表学习率,λ的范围为0-1的小数,N代表有N个学习器,N为不小于1的整数。

3

CN 108446770 A

说 明 书

1/5页

一种基于采样的分布式机器学习慢节点处理系统及方法

技术领域[0001]本发明涉及通信技术领域,特别是涉及一种基于采样的分布式机器学习慢节点处理系统及方法。

背景技术[0002]在大数据集上进行训练的现代神经网络架构可以跨广泛的多种领域获取可观的结果,领域涵盖从语音和图像认知、自然语言处理、到业界关注的诸如欺诈检测和推荐系统这样的应用等各个方面。但是训练这些神经网络模型在计算上有严格要求。尽管近些年来GPU硬件、网络架构和训练方法上均取得了重大的进步,但事实是在单一机器上,网络训练所需要的时间仍然长得不切实际。幸运的是,我们不仅限于单个机器:大量工作和研究已经使有效的神经网络分布式训练成为了可能。分布式训练中的数据并行方法在每一个机器上都有一套完整的模型,但分别对训练数据集的不同子集进行处理。数据并行毫无争议是分布式系统中最适的方法,而且也一直是更多研究的焦点。在数据并行中,不同的机器有着整个模型的完全拷贝;每个机器只获得整个数据的不同部分。计算的结果通过某些方法结合起来。数据并行训练方法均需要一些整合结果和在各工作器间同步模型参数的方法。现有的分布式机器学习训练方法一般为SGD,为了获得更快地训练速度,目前常用的SGD算法为异步SGD即Async SGD,然而它们存在以下一些问题:[0003]Async SGD是一种全异步参数同步优化算法,每个学习器节点学习,在每轮训练完毕时向参数服务器节点发起参数更新梯度请求,参数服务器节点响应请求并完成参数的全局更新,学习器节点向参数服务器节点拉取最新的参数,开始下一轮训练。由于分布式环境计算效率、通信延迟,稀疏样本均衡性等影响,每个计算节点可能会训练轮次差异过大的情况,即出现可能存在滞后等现象,比如极端情况下N个节点的任务,N-1个节点已经完成当前轮的梯度更新,甚至已经进入下一轮梯度更新,但是第N个的慢节点梯度没有来得及更新,可能对训练的收敛性等造成影响。这时过期梯度可能会导致训练收敛慢、收敛结果不稳定等问题。

发明内容[0004]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于采样的分布式机器学习慢节点处理系统及方法,通过使用采样训练过程中的快慢节点更新延迟来发现慢节点,并通过丢弃慢节点梯度更新的手段来解决过期梯度问题,提高模型收敛的准确性与稳定性。[0005]为实现上述目的及其他相关目的,本发明提供一种基于采样的分布式机器学习慢节点处理系统,其特征在于,包括多个呈并列分布的机器,每个机器均包括学习器节点和参数服务器节点,每个所述学习器节点与每个所述机器内的所述参数服务器节点分别相连;所述学习器节点用于获取数据分片,进行模拟训练,向所述参数服务器节点发起梯度更新请求,并且异步获取所述参数服务器节点推送的模型参数;所述参数服务器节点用于判断

4

CN 108446770 A

说 明 书

2/5页

所述学习器节点是否为慢节点,根据判断结果决定是否响应所述学习器节点发起的梯度更新请求并完成全局模型参数更新,并被动向所述学习器节点推送更新后的模型参数。[0006]于本发明的一实施方式中,所述参数服务器节点包括滑动采样模块,所述滑动采样模块用于收集所述学习器节点的之前梯度过期程度以及更新延迟样本,并实时更新。[0007]于本发明的一实施方式中,所述学习器节点还用于在异步获取所述参数服务器节点推送的模型参数之后,用当前参数服务器节点的逻辑时钟值更新自己的逻辑时钟值。[0008]本发明公开了一种基于采样的分布式机器学习慢节点处理方法,包括以下步骤:[0009]1)学习器节点获取数据分片,进行模拟训练,待训练完成后,向参数服务器节点发起梯度更新请求;[0010]2)所述参数服务器节点收到梯度更新请求,然后判断所述学习器节点是否为慢节点,若是,则丢弃梯度更新请求,若否,则响应,并更新模型参数,然后进行下一步;[0011]3)对更新模型参数后的模型进行收敛性检验,若通过检验则得出训练模型;若未通过则进行下一步;[0012]4)所述学习器节点拉取新的模型参数,重复操作步骤1)、2)和3),直至模型的收敛性检验通过。[0013]于本发明的一实施方式中,所述基于采样的分布式机器学习慢节点处理方法还包括在所述步骤2)之前收集所述学习器节点之前的梯度过期程度以及更新延迟样本的步骤。[0014]于本发明的一实施方式中,所述学习器节点的梯度过期程度=所述参数服务器节点的逻辑时钟值–所述学习器节点的逻辑时钟值+1。[0015]于本发明的一实施方式中,所述步骤1)中,所述学习器节点向参数服务器节点发起梯度更新请求后,用当前所述服务器节点的逻辑时钟值更新自己的逻辑时钟值。[0016]于本发明的一实施方式中,在所述步骤2)中,判断所述学习器节点是否为慢节点包括以下进程:[0017]a)所述参数服务器节点上采用一个固定大小的队列来保存所述学习器节点之前发起梯度更新请求时的梯度过期程度;[0018]b)所述参数服务器节点计算当前所述学习器节点的更新的梯度过期程度,去除队列中梯度过期程度最大的数据,并将所述学习器节点的更新的梯度过期程度插入队列中,如果梯度过期程度排名大于预设的阈值,则判断学习器节点为慢节点,若否,则不是慢节点。[0019]于本发明的一实施方式中,在所述步骤2)中,当所述参数服务器节点响应梯度更新请求后,所述参数服务器节点的逻辑时钟值加1。[0020]于本发明的一实施方式中,在所述步骤2)中,所述模型参数更新公式为

[0021]

其中,Wi代表第i次训练后的参数,ΔWi,j代表第i次训练后,第j个学习器的梯度贡献,i、j均为不小于0的整数,λ代表学习率,λ的范围为0-1的小数,N代表有N个学习器,N为不小于1的整数。[0023]如上所述,本发明的基于采样的分布式机器学习慢节点处理系统及方法,具有以

5

[0022]

CN 108446770 A

说 明 书

3/5页

下有益效果:[0024]通过使用采样训练过程中的快慢节点更新延迟来发现慢节点,并通过丢弃慢节点梯度更新的手段来解决过期梯度问题,提高收敛的准确性与稳定性,同时相比常规基于阈值发现慢节点的训练方法,能防止丢弃慢节点过多,导致训练变慢等问题。附图说明[0025]图1显示为本发明基于采样的分布式机器学习慢节点处理系统的结构示意图。[0026]图2显示为本发明基于采样的分布式机器学习慢节点处理方法的流程示意图。[0027]元件标号说明[0028]S1~S6 步骤具体实施方式[0029]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。[0030]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。[0031]本发明提供了一种基于采样的分布式机器学习慢节点处理系统。该系统能够发现训练过程中慢节点,并通过丢弃慢节点梯度更新的手段来解决过期梯度问题,提高收敛的准确性与稳定性;该系统可应用于实际的通用机器学习、深度学习算法的分布式训练过程,非常适用于数据并行的大规模机器学习系统、深度学习系统等应用场景。图1显示为本发明的基于采样的分布式机器学习慢节点处理系统的示意图。如图所示,基于采样的分布式机器学习慢节点处理系统包括多个呈并列分布的机器,每个机器包括学习器节点和与学习器节点对应的参数服务器节点,每个所述参数服务器节点与每个所述学习器节点分别相连。[0032]其中,学习器节点用于获取数据分片,进行模拟训练,向参数服务器节点发起梯度更新请求,并且异步获取参数服务器节点推送的模型参数;学习器节点还在发起梯度更新请求后,将用当前参数服务器节点的逻辑时钟更新自己的逻辑时间,同时保存前N-1次更新时的梯度过期程度。[0033]参数服务器节点用于判断学习器节点是否为慢节点,根据判断结果决定是否响应学习器节点发起的梯度更新请求并完成全局模型参数更新,并被动向学习器节点推送模型参数。[0034]参数服务器节点包括滑动采样模块,滑动采样模块用于收集学习器节点的前若干轮梯度过期程度及更新延迟样本,并实时更新。优选的,若干轮为大于1轮,增加判断的准确性;1轮可能造成判断不准。[0035]所述学习器节点还用于向所述服务器节点发起梯度更新请求后,用当前参数服务

6

CN 108446770 A

说 明 书

4/5页

器的逻辑时钟值更新自己的逻辑时钟值。[0036]每个学习器节点把模型参数更新到对应的参数服务器节点,不同参数分片到不同的参数服务器节点上。作为示例,如图1所示,设置四个参数服务器节点和四个与其分别对应的学习器节点,每个学习器节点每轮训练完毕,学习器节点把参数更新到对应的参数服务器节点,不同参数通过散列(hash)等办法分片到不同的参数服务器节点上。[0037]请参阅图2,图2显示为基于采样的分布式机器学习慢节点处理方法的流程示意图,如图所示,本发明提供了一种基于采样的分布式机器学习慢节点处理方法,包括以下步骤:[0038]S1:学习器节点获取数据分片,进行模拟训练,待训练完成后,向参数服务器节点发起梯度更新请求;[0039]S2:收集所述学习器节点之前梯度过期程度及更新延迟样本;[0040]S3:所述参数服务器节点判断所述学习器节点是否为慢节点,若是,则丢弃梯度更新请求,若否,则响应,并更新模型参数,然后进行步骤S4;[0041]S4:对更新模型参数后的模型进行收敛性检验,若未通过则进行步骤S5;若通过检验则进行步骤S6。[0042]S5:所述学习器节点拉取新的模型参数,重复操作步骤S1、S2、S3和S4,直至模型的收敛性检验通过。[0043]S6:得出训练模型。[0044]具体来讲,首先执行步骤S1,每个学习器节点获取所有数据的一个分片,进行模型训练,在每次训练完成后,向参数服务器节点发起梯度更新请求。于本实施例中,学习器节点向参数服务器节点发起梯度更新请求时,获取服务器节点的当前参数值,采用当前服务器节点的逻辑时钟值更新自己的逻辑时钟值。[0045]然后执行步骤S2,滑动采样模板收集学习器节点前若干轮梯度过期程度-更新延迟样本,并实时更新。所述学习器节点的梯度过期程度=所述参数服务器节点的逻辑时钟值–所述学习器节点的逻辑时钟值+1。[0046]该步骤S2可以在步骤S1之前也可以在步骤S1之后。在本实施例中,是将本步骤设于步骤S1之后。[0047]执行步骤S3,判断所述学习器节点是否为慢节点,其包括以下进程:[0048]S31:所述参数服务器节点上采用一个固定大小的队列来保存所述学习器节点前若干轮发起梯度更新时梯度过期程度,这是由滑动采样模板采样获得的;[0049]S32:所述参数服务器节点计算当前所述学习器节点的更新的梯度过期程度,去除队列中梯度过期程度最大的数据,并将所述学习器节点的更新的梯度过期程度插入队列中,如果梯度过期程度排名大于预设的阈值(队列按从大往小排列)或者如果梯度过期程度大于预设的阈值,则判断学习器节点为慢节点,若否,则不是慢节点。[0050]具体来讲,判断慢节点发现方法包括以下步骤:[0051]首先对于每个学习器保存每次更新参数时的逻辑时钟值,每个参数服务器节点维护一个逻辑时钟,每一次学习器节点更新请求到来时,参数服务器节点的逻辑时钟值加1;每个学习器节点初始更新梯度时,记录参数服务器节点的逻辑时钟值为本地变量,用其标志当前逻辑时钟值的步长逻辑时钟值,且与上次记录的步长比较,计算两者差距步长delta

7

CN 108446770 A

说 明 书

5/5页

(Δ);在参数服务器节点上使用一个固定大小的队列来保存N个来自学习器节点发起更新时的更新延迟—参数服务器节点与学习器节点上逻辑时钟的差值,当每次学习器节点发起更新时,参数服务器节点去掉队列中最老的数据,插入该学习器节点延迟值,并更新该学习器节点延迟值大小的排名,当延迟值排名大于预设的阈值,则判断学习器节点为慢节点。[0052]作为示例,预设一个阈值R%,R%为20%,将延迟值队列从大往小排列,当前更新延迟值大小排名在前20%时,判定该节点为慢节点,丢弃梯度更新请求,否则,判断该学习器节点不是慢节点,并响应梯度更新请求。这样处理可以防止丢弃慢节点过多的风险。[0053]在所述步骤S3中,所述模型参数更新公式为

[0054]

其中,Wi代表第i次训练后的参数,ΔWi,j代表第i次训练后,第j个学习器的梯度贡献,i、j均为不小于0的整数,λ代表学习率,λ的范围为0-1的小数,N代表有N个学习器,N为不小于1的整数。[0056]下一步执行步骤S4,对更新模型参数后的模型进行收敛性检验,若未通过则执行步骤S5,步骤S5为学习器节点拉取新的模型参数,重复操作步骤S1、S2、S3和S4,直至模型的收敛性检验通过。[0057]若对更新模型参数后的模型进行收敛性检验通过,则执行步骤S6,得出训练模型,训练完毕。[0058]综上所述,本发明通过使用采样训练过程中的快慢节点更新延迟来发现慢节点,并通过丢弃慢节点梯度更新的手段来解决过期梯度问题,提高收敛的准确性与稳定性,同时相比常规基于阈值发现慢节点的训练方法,能防止丢弃慢节点过多,导致训练变慢等问题。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。[0059]上述实施例仅例示性说明本发明的原理及其功效,而非用于本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

[0055]

8

CN 108446770 A

说 明 书 附 图

1/2页

图1

9

CN 108446770 A

说 明 书 附 图

2/2页

图2

10

因篇幅问题不能全部显示,请点此查看更多更全内容