一种数据处理方法及装置制造方法及图纸

技术编号:19511542 阅读:52 留言:0更新日期:2018-11-21 07:55
本发明专利技术公开了一种数据处理方法,所述方法包括:从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。同时,本发明专利技术公开了一种数据处理装置。

【技术实现步骤摘要】
一种数据处理方法及装置
本申请涉及数据处理技术,尤其涉及一种数据处理方法及装置。
技术介绍
在异构环境下使用同步随机梯度下降法(SGD,Synchronous)训练数据时,由每个工作节点对各自分配的样本数据进行并行梯度计算,待每个工作节点完成各自分配的样本数据的梯度计算后,再一起将各自计算得到的梯度参数向参数服务器发送,然后由参数服务器对接收到的所有工作节点上传的梯度参数进行合并和/或累加平均计算,利用得到的针对梯度参数的平均值更新应用到模型。但是,对于异构硬件服务器,各个工作节点的参数指标性能各有不同,性能瓶颈就会出现在性能差的工作节点上,计算较快的工作节点必须等待计算较慢的工作节点对分配的样本数据计算完毕后,才能一起将计算得到的所有梯度参数发送给参数服务器,之后,参数服务器才能利用所有工作节点上传的梯度参数更新当前的训练模型,也才能执行下一轮的更新迭代,如此,现有技术中针对训练模型的梯度更新方法,不仅浪费工作节点的计算力,而且拖慢了针对训练模型的训练时间。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种数据处理方法及装置。为达到上述目的,本专利技术实施例的技术方案是这样实现的:根据本专利技术实施例中的一方面,提供一种数据处理方法,所述方法包括:从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。上述方案中,所述方法还包括:确定所述消息队列中的样本数据不为空时,利用所述M个训练参数在本地更新所述训练模型的模型参数,得到所述训练模型的M个本地模型参数。上述方案中,确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送,包括:确定所述消息队列中的样本数据为空时,计算所述M个本地模型参数之和;将所述M个本地模型参数之和作为训练参数向所述参数服务器发送。上述方案中,从消息队列中获取M个样本数据之前,所述方法还包括:确定工作节点参数、样本数据参数和迭代更新参数;根据所述工作节点参数、所述样本数据参数和所述迭代更新参数之间的乘积,配置所述消息队列的大小。上述方案中,从消息队列中获取M个样本数据,包括:通过远程过程调用RPC接口获取所述消息队列中的M个样本数据。根据本专利技术实施例中的另一方面,提供一种数据处理装置,所述装置包括:获取单元,用于从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;计算单元,用于分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;发送单元,用于确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。上述方案中,所述装置还包括;更新单元,用于确定所述消息队列中的样本数据不为空时,利用所述M个训练参数在本地更新所述训练模型的模型参数,得到所述训练模型的M个本地模型参数。上述方案中,所述计算单元,具体还用于计算所述M个本地模型参数之和;所述发送单元,具体用于确定所述消息队列中的样本数据为空时,将所述M个本地模型参数之和作为训练参数向所述参数服务器发送。上述方案中,所述装置还包括:确定单元,用于确定工作节点参数、样本数据参数和迭代更新参数;配置单元,用于根据所述工作节点参数、所述样本数据参数和所述迭代更新参数之间的乘积,配置所述消息队列的大小。上述方案中,所述获取单元,具体用于通过RPC接口获取所述消息队列中的M个样本数据。根据本专利技术实施例中的第三方面,提供一种数据处理装置,所述装置包括:存储器、处理器以及存储在存储器被处理器运动的可执行程序,其特征在于,所述处理器运行所述可执行程序时执行上述信息处理方法中任一项所述的数据处理方法的步骤。本专利技术所提供的数据处理方法及装置,通过从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。如此,通过将一轮需要训练的样本数据放置在一个消息队列中,根据每个工作节点的数据处理能力将消息队列中的样本数据均衡负载到各个工作节点上,不仅加快了对样本数据进行梯度计算的速度,而且还使得在大规模的异构环境中计算能力强的工作节点多处理样本数据,计算能力弱的工作节点少处理样本数据,减少了工作节点之间的等待时间。附图说明图1为本专利技术实施例中数据处理方法的流程示意图;图2为本申请中数据处理装置的结构组成示意图一;图3为本申请中数据处理系统的结构组成示意图;图4为本专利技术实施例中数据处理装置的结构组成示意图二。具体实施方式为了能够更加详尽地了解本专利技术的特点与
技术实现思路
,下面结合附图对本专利技术的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本专利技术。图1为本专利技术实施例中数据处理方法的流程示意图,如图1所示,所述方法包括:步骤101,从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;本申请中,该工作节点具体可以是具有数据处理能力的终端。该工作节点可以通过远程过程调用(RPC,RemoteProcedureCall)接口获知消息队列的所在位置,并从消息队列中获取M个样本数据,其中,M与自身的数据处理能力相关联。这里,工作节点在从消息队列中获取M个样本数据时,并不是一次性从消息队列中获取M个样本数据,而是在每获取一个样本数据之后,会继续从消息队列获取样本数据,直到消息队列中的样本数据为空为止。当该消息队列中的样本数据为空时,该工作节点一共获取的样本数据的数量M则表示为与该工作节点自身的数据处理能力相关联。例如,工作节点A在当前一轮的数据更新过程中一共处理了5个样本数据,则M=5;例如,工作节点B在当前一轮的数据更新过程中一共处理2个样本数据,则M=2。此时,工作节点A在当前一轮的数据更新过程中处理的样本数据量比工作节点B处理的样本数据量大,则确定工作节点A的数据处理能力强、处理速度快,而工作节点B的数据处理能力弱,处理速度慢。本申请中,该消息队列具体还可以是分布式的消息队列。也就是说,该消息队列可以分布在该工作节点上,也可以分布在用于接收该工作节点发送的数据的参数服务器上,还可以分布在除参数服务器和该工作节点以外的设备上。这里不对消息队列的分布位置进行限定。本申请中,当该消息队列分布在该工作节点中时,该工作节点在从消息队列中获取M个样本数据之前,还需要确定工作节点参数、样本数据参数和迭代更新参数;然后,根据所述工作节点参数、所述样本数据参数和所述迭代更新参数之间的乘积,配置所述消息队列的大小。具体地,所述工作节点参数、样本数据参数和所述迭代更新参数分别可以是在该工作节点被运行之前预先设置好的,而当该工作节点被启动时,在该工作节点的运行信息中携带有该工作节点参数、样本数据参数和迭代更新参数。步骤102,分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;本申请中,该工作节点具体可以使用SGD分别对M个样本数据进行梯度计算,以得到针对训练模型的M个训练参数。这里,M个训练参数对应M个样本数据。本申请中,该工作节点在对M个样本数本文档来自技高网
...

【技术保护点】
1.一种数据处理方法,所述方法包括:从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。

【技术特征摘要】
1.一种数据处理方法,所述方法包括:从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。2.根据权利要求1所述方法,所述方法还包括:确定所述消息队列中的样本数据不为空时,利用所述M个训练参数在本地更新所述训练模型的模型参数,得到所述训练模型的M个本地模型参数。3.根据权利要求2所述的方法,确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送,包括:确定所述消息队列中的样本数据为空时,计算所述M个本地模型参数之和;将所述M个本地模型参数之和作为训练参数向所述参数服务器发送。4.根据权利要求1所述的方法,从消息队列中获取M个样本数据之前,所述方法还包括:确定工作节点参数、样本数据参数和迭代更新参数;根据所述工作节点参数、所述样本数据参数和所述迭代更新参数之间的乘积,配置所述消息队列的大小。5.根据权利要求1所述的方法,从消息队列中获取M个样本数据,包括:通过远程过程调用RPC接口获取所述消息队列中的M个样本数据。6.一种数据处理装置,所述装置包括:获取...

【专利技术属性】
技术研发人员:向辉王奇刚王鹏胡文晖李梅
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:北京,11

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

1