一种分布式集群训练方法和装置制造方法及图纸

技术编号:16345828 阅读:24 留言:0更新日期:2017-10-03 22:18
本申请实施例提供了一种分布式集群训练方法和装置,涉及机器学习技术领域。所述方法包括:读取样本集;所示样本集包括至少一条样本数据;在接收到汇集指令之前,利用所述样本数据和当前权重,代入目标模型训练函数进行迭代训练,得到第一梯度,并且如果有多轮迭代训练,则基于前一次训练得到的第一梯度生成第一权重作为后一轮迭代训练的当前权重;如果接收到汇集指令,则将所述第一梯度发送至汇集服务器;所述汇集指令由调度服务器在集群系统环境符合阈值条件时发出;所述汇集服务器汇总各第一梯度并计算第二权重;接收汇集服务器发送的第二权重以更新当前权重。本申请降低了网络通信量,降低对交换机的影响,避免影响整个集群的使用。

【技术实现步骤摘要】
一种分布式集群训练方法和装置
本申请涉及机器学习
,特别是涉及一种分布式集群训练方法和一种分布式集群训练装置。
技术介绍
随着大数据的应用,很多基于大数据的目标模型,比如预测用户对商品的喜好的目标模型,都需要利用相应的样本数据对目标模型中的权重进行训练。该权重可以理解为目标模型的参数,比如以一个简单的模型y=ax1+bx2+cx3,其中的a、b、c为权重,x1、x2、x3为输入量,y为输出量。而上述目标模型都需要利用机器学习训练。机器学习训练一般包括单机训练和集群训练,单机训练就是利用所有样本,计算F(X)(F为损失函数,X为权重)的梯度:▽F(Xt-1),然后更新权重:Xt=Xt-1-α▽F(Xt-1),一直这样迭代,直到收敛;而集群训练,就是先按照一定规则,将训练样本分到各个机器上(各机器上数据都不一样),每个机器计算出梯度,然后利用reduce技术,将梯度汇总,并进行权重更新。重复上述过程,直到收敛。事实上,由于现在数据量巨大,集群训练已经成为工业界标配。而单机上进行训练,当样本数据的数据量很大时,会出现因为数据量太大导致内存加载不下,导致无法进行训练。在单机上训练,没有通信(网络)代价,但无法支撑大数据(比如所有用户在最近2周内的浏览日志数据)。基于单机训练的上述问题,在先技术中采用了在分布式集群中执行机器学习任务。现有集群训练方案:(1)将数据集T,按照一定规则,切分成N份,得到T={T1,T2,…,Tn};(2)每个训练服务器得到一份数据,设为Tx;(3)每个训练服务器利用得到的数据,计算对应的梯度▽FTx;(4)进行梯度汇总得到总梯度:totalgradient=∑1nFi;(5)根据规则更新权重(类似单机训练的更新权重方法),并将新权重发给所有机器;(6)判定是否训练结束,如果没有结束,返回第三步。在集群上训练,能利用更多的训练数据,取得更好的预测效果。由于每轮计算梯度后,都需要将梯度汇总,通信量巨大且频繁,可能导致集群中网络流量爆满,而影响交换机,甚至整个集群的使用。
技术实现思路
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种分布式集群训练方法和相应的一种分布式集群训练装置。为了解决上述问题,本申请公开了一种分布式集群训练方法,包括:读取样本集;所示样本集包括至少一条样本数据;在接收到汇集指令之前,利用所述样本数据和当前权重,代入目标模型训练函数进行迭代训练,得到第一梯度;所述汇集指令由调度服务器在集群系统环境符合阈值条件时发出;其中,如果在接收到汇集指令之前,有多轮迭代训练,则基于前一次训练得到的第一梯度生成第一权重作为后一轮迭代训练的当前权重;如果接收到汇集指令,则将所述第一梯度发送至汇集服务器;所述汇集服务器汇总各第一梯度并计算第二权重;接收汇集服务器发送的第二权重以更新当前权重。本申请还公开了一种分布式集群训练装置,包括:样本读取模块,用于读取样本集;所示样本集包括至少一条样本数据;迭代训练模块,用于在接收到汇集指令之前,利用所述样本数据和当前权重,代入目标模型训练函数进行迭代训练,得到第一梯度;所述汇集指令由调度服务器在集群系统环境符合阈值条件时发出;其中,如果在接收到汇集指令之前,有多轮迭代训练,则基于前一次训练得到的第一梯度生成第一权重作为后一轮迭代训练的当前权重;结果发送模块,用于如果接收到汇集指令,则将所述第一梯度发送至汇集服务器;所述汇集服务器汇总各第一梯度并计算第二权重;更新模块,用于接收汇集服务器发送的第二权重以更新当前权重。本申请实施例包括以下优点:本申请实施例,训练服务器可以利用其读取的样本集,在接收到汇集指令之前,利用该样本集中的样本数据和当前权重,不断迭代训练第一梯度;同时,调度服务器可以监控集群系统环境是否符合阈值条件,当系统监控到集群系统环境符合阈值条件时,则可以发送汇集指令给各个训练服务器,各个训练服务器则将训练得到的第一梯度发送到汇集服务器;该汇集服务器汇总各第一梯度并计算第二权重,在各个训练服务器还未对其样本数据训练结束前,将该第二权重发送到各个训练服务器,更新期当前权重。如此,由于系统监控何时系统环境,控制何时发出汇集指令,相应的,训练服务器则在收到汇集指令后才将第一梯度发送到汇集服务器。不会在整个过程中每轮训练结束都将训练结果发送至服务器,降低了网络通信量,降低对交换机的影响,避免影响整个集群的使用。附图说明图1是本申请的一种分布式集群训练方法实施例的步骤流程图;图2是本申请的另一种分布式集群训练方法实施例的步骤流程图;图3是本申请的另一种分布式集群训练方法实施例的步骤流程图;图4是本申请的另一种分布式集群训练方法实施例的步骤流程图;图5是本申请的一种分布式集群训练装置实施例的结构框图;图6是本申请的一种分布式集群训练系统实施例的结构框图。具体实施方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。本申请实施例的核心构思之一在于,由于在先技术中在集群中训练目标模型时,每轮训练完毕之后,都直接将集群中各训练服务器训练得到的梯度进行汇总,导致通信量巨大而且频繁,可能导致集群中网络流量爆满,从而影响交换机甚至整个集群的使用。本申请实施例中,训练服务器可以利用其读取的样本集,在接收到汇集指令之前,利用该样本集中的样本数据和当前权重,不断迭代训练第一梯度;同时,系统可以监控集群系统环境是否符合阈值条件,该阈值条件可以避免集群系统环境出现网络流量爆满,当系统监控到集群系统环境符合阈值条件时,则可以发送汇集指令给各个训练服务器,各个训练服务器则将训练得到的第一梯度发送到汇集服务器;该汇集服务器汇总各第一梯度并计算第二权重,在各个训练服务器还未对其样本数据训练结束前,将该第二权重发送到各个训练服务器,更新其当前权重。如此,由于系统监控何时系统环境,控制何时发出汇集指令,相应的,训练服务器则在收到汇集指令后才将第一梯度发送到汇集服务器。不会在整个过程中每轮训练结束都将训练结果发送至服务器,降低了网络通信量,降低对交换机的影响,避免影响整个集群的使用。实施例一参照图1,示出了本申请的一种分布式集群方法实施例的步骤流程图,具体可以包括如下步骤:步骤110,读取样本集;所示样本集包括至少一条样本数据;在本申请实施例中,整个集群可以包括多台训练服务器、至少一台调度服务器、至少一台汇集服务器。该训练服务器可以获取其负责的样本集进行迭代训练,以得到第一梯度,调度服务器可以监控整个系统的集群系统环境情况,并根据集群系统环境决定是否发出汇集指令到训练服务器。汇集服务器可以接收各个训练服务器发送的第一梯度并计算第二权重。在本申请实施例中,训练服务器、调度服务器、汇集服务器之间的通信数据都通过集群中的交换机传输。可以理解,本申请实施例的调度服务器可以将各训练服务器需要获取的样本集的获取参数发送给各个训练服务器。那么,对于一台训练服务器来说,其收到获取参数后,可以根据该获取参数,从指定位置读取其需要的样本集。比如从交易日志服务器获取该参数规定的一批交易日志数据作为样本集。当然,本申请实施例还可以从其他服务器获取相应样本集,可以按照需求设定,本文档来自技高网
...
一种分布式集群训练方法和装置

【技术保护点】
一种分布式集群训练方法,其特征在于,包括:读取样本集;所示样本集包括至少一条样本数据;在接收到汇集指令之前,利用所述样本数据和当前权重,代入目标模型训练函数进行迭代训练,得到第一梯度;所述汇集指令由调度服务器在集群系统环境符合阈值条件时发出;其中,如果在接收到汇集指令之前,有多轮迭代训练,则基于前一次训练得到的第一梯度生成第一权重作为后一轮迭代训练的当前权重;如果接收到汇集指令,则将所述第一梯度发送至汇集服务器;所述汇集服务器汇总各第一梯度并计算第二权重;接收汇集服务器发送的第二权重以更新当前权重。

【技术特征摘要】
1.一种分布式集群训练方法,其特征在于,包括:读取样本集;所示样本集包括至少一条样本数据;在接收到汇集指令之前,利用所述样本数据和当前权重,代入目标模型训练函数进行迭代训练,得到第一梯度;所述汇集指令由调度服务器在集群系统环境符合阈值条件时发出;其中,如果在接收到汇集指令之前,有多轮迭代训练,则基于前一次训练得到的第一梯度生成第一权重作为后一轮迭代训练的当前权重;如果接收到汇集指令,则将所述第一梯度发送至汇集服务器;所述汇集服务器汇总各第一梯度并计算第二权重;接收汇集服务器发送的第二权重以更新当前权重。2.根据权利要求1所述的方法,其特征在于,所述汇集指令由调度服务器在集群系统环境符合阈值条件时发出,包括:所述汇集指令由调度服务器在整个集群的集群网络利用率符合第一阈值条件时发出,和/或由调度服务器在整个集群的集群故障率符合第二阈值条件时发出。3.根据权利要求2所述的方法,其特征在于:所述第一阈值条件包括:集群网络利用率低于第一阈值;所述第二阈值条件包括:集群故障率低于第二阈值。4.根据权利要求1所述的方法,其特征在于,所述样本数据包括时间信息,在读取样本集的步骤之后,还包括:利用每条样本数据的时间信息,计算所述样本数据的第三权重;当所述第三权重小于第三阈值,则丢弃相应的样本数据。5.根据权利要求4所述的方法,其特征在于,所述利用每条样本数据的时间信息,计算所述样本数据的第三权重的步骤包括:将每条样本数据的时间信息,代入指数函数的负的指数参数,计算第三权重。6.根据权利要求4所述的方法,其特征在于,在利用每条样本数据的时间信息,计算所述样本数据的第三权重的步骤之前,还包括:对样本集中的各样本数据进行归并;对归并后的样本数据,记录所述样本数据的归并数量。7.根据权利要求6所述的方法,其特征在于,所述利用每条样本数据的时间信息,计算所述样本数据的第三权重的步骤,包括:利用每条样本数据的时间信息,计算降权系数;计算所述降权系数与归并数量之积,得到第三权重。8.根据权利要求4所述的方法,其特征在于,如果接收到汇集指令,还包括:将各个样本数据的第三权重进行汇总得到的第一系数发送至汇集服务器;则,所述汇集服务器汇总各第一梯度并计算第二权重包括:根据各第一梯度及与各第一梯度相应的第一系数,进行加权计算得到第二梯度;根据第二梯度计算第二权重。9.根据权利要求1-8其中之一所述的方法,其特征在于,所述汇集服务器汇总各第一梯度并计算第二权重之后,还包括:所述汇集服务器将新得到的第二权重进行备份。10.根据权利要求9所述的方法,其特征在于,所述汇集服务器将新得到的第二权重进行备份包括:所述汇集服务器判断新得到的第二权重与至少前一次备份的第二权重之间的变化量是否超过变化阈值;如果超过变化阈值,则对所述新得到的第二权重进行备份。11.根据权利要求9所述的方法,其特征在于,所述汇集服务器将新得到的第二权重进行备份之后,还包括:将所述第二权重代入目标模型,并输出至业务服务器。12.一种分布式集群训练装置,其特征在...

【专利技术属性】
技术研发人员:周俊
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1