CN108846095A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN108846095A CN108846095A CN201810621153.6A CN201810621153A CN108846095A CN 108846095 A CN108846095 A CN 108846095A CN 201810621153 A CN201810621153 A CN 201810621153A CN 108846095 A CN108846095 A CN 108846095A
- Authority
- CN
- China
- Prior art keywords
- parameter
- sample data
- message queue
- working node
- training
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法,所述方法包括:从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。同时,本发明公开了一种数据处理装置。
Description
技术领域
本申请涉及数据处理技术,尤其涉及一种数据处理方法及装置。
背景技术
在异构环境下使用同步随机梯度下降法(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,Remote Procedure Call)接口获知消息队列的所在位置,并从消息队列中获取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个样本数据进行计算之前,还需要从参数服务器中获取训练模型的模型参数。然后,再使用SGD分别对M个样本数据进行梯度计算,以得到针对训练模型的M个训练参数。
然后,该工作节点再将得到的M个训练参数发送至参数服务器,参数服务器接收到工作节点发送的所有的训练参数后,利用M个训练参数对模型参数进行数据更新,以得到更新后的模型参数。
步骤103,确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。
本申请中,当该工作节点每对一个样本数据计算完成后,都会继续从该消息队列中获取样本数据,当该工作节点从该消息队列中针对样本数据获取失败时,表征该消息队列中的样本数据已为空,则该工作节点会将之前获取到的M个训练参数一并向参数服务器发送。反之,当该工作节点从该消息队列中针对样本数据获取成功时,表征该消息队列中的样本数据不为空,则该工作节点会利用之前获取到的M-1个训练参数在本地更新训练模型的模型参数,以得到该训练模型的M-1个本地模型参数,接着再继续从该消息队列中获取样本数据,直到确定该消息队列中的样本数据为空为止;当该消息队列中的样本数据为空时,该工作节点则计算自身之前得到的针对训练模型的M个本地模型参数之和,并将M个本地模型参数之和作为训练参数向所述参数服务器发送。
当参数服务器接收到工作节点发送的训练参数后,对所有工作节点发送的训练参数进行梯度平均计算,以得到训练参数的梯度平均值,然后利用得到的训练参数的梯度平均值更新模型参数。
本申请中,通过将每一轮需要训练的样本数据配置到消息队列,然后工作节点从消息队列中获取与自身的数据处理能力相匹配的M(M大于等于1)个样本数据,也就是说,数据处理能力强的工作节点多处理样本数据,数据处理能力弱的工作节点就少处理样本数据。然后,当消息队列中的样本数据为空时,各工作节点再同时将自身处理的针对样本数据的训练参数发送给参数服务器,以实现对模型参数进行同步梯度更新的目的,如此,不仅能够节省计算时间,而且能够加快模型参数的更新速度。
下面例用示例代码对本申请中参数服务器和工作节点在执行对训练模型的模型参数进行数据更新的过程进行举例说明:
参数服务器的示例代码:
从上面的参数服务器的示例代码可以看出:
1)参数服务器循环等待收集当前时间id所有工作节点上传的训练参数;
2)参数服务器收到所有工作节点上传的训练参数后,对该训练参数进行合并平均计算,以得到训练参数的梯度平均值;
3)利用训练参数的梯度平均值更新训练模型的模型参数。
之后,参数服务器进入step1以进行下一轮的迭代更新。
工作节点的示例代码:
从上面的工作节点的示例代码可以看出:
1)工作节点从参数服务器获取到当前时间id的模型参数;
2)工作节点从放置样本数据的分布式消息队列(Queue)中获取一个样本数据(mini-batch)开始训练,以得到针对训练模型的训练参数;
3)工作节点对一个样本数据训练完成后,继续从Queue中获取样本数据,根据获取结果判断Queue中的样本数据是否为空;
4)当工作节点从Queue中针对样本数据获取失败时,表征当前Queue中的样本数据已为空,此时,该工作节点对本地计算的训练参数之和上传到参数服务器;或者,
5)当工作节点从Queue中针对样本数据获取成功时,表征当前Queue中的样本数据不为空,则工作节点利用之前获取到的训练参数在本地更新训练模型的模型参数,以延迟向参数服务器发送针对训练模型的梯度更新参数,直到Queue中的样本数据为空为止。
工作节点将训练参数发送至参数服务器后,进入step2,以继续针对数据更新的下一轮迭代。
图2为本申请中数据处理装置的结构组成示意图一;如图2所示,所述装置包括:获取单元201、计算单元202和发送单元203;其中,
获取单元201,用于从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;
计算单元202,用于分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;
发送单元203,用于确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。
本申请中,所述获取单元201,具体用于通过RPC接口获取所述消息队列中的M个样本数据。并且该获取单元201在从消息队列中获取M个样本数据时,并不是一次性获取,而是在获取到一个样本数据之后,再继续从消息队列中获取样本数据,直到消息队列中的样本数据为空为止,此时,获取单元201在当前一轮数据更新过程中一共获取到的样本数据数量为M。
相应地,计算单元202在对M个样本数据进行计算时,也是在获取到一个样本数据后对一个样本数据进行梯度计算,直到消息队列中的样本数据为空为止。
本申请中,所述装置还包括更新单元204;
该更新单元204具体用于确定所述消息队列中的样本数据不为空时,利用所述M个训练参数在本地更新所述训练模型的模型参数,得到所述训练模型的M个本地模型参数。
所述计算单元202,具体还用于计算所述M个本地模型参数之和;所述发送单元203,具体还用于确定所述消息队列中的样本数据为空时,将所述M个本地模型参数之和作为训练参数向所述参数服务器发送。
所述装置还包括:确定单元205和配置单元206;
确定单元205,用于在工作节点被运行时,从运行服务的信息中确定工作节点参数、样本数据参数和迭代更新参数;
配置单元206,用于根据所述工作节点参数、所述样本数据参数和所述迭代更新参数之间的乘积,配置所述消息队列的大小。
需要说明的是:上述实施例提供的数据处理装置在执行对训练模型的参数更新时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将数据处理装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的数据处理装置与数据处理方法实施例二者属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图3为本申请中数据处理***的结构组成示意图,如图3所示,所述***包括:参数服务器301、工作节点集302和消息队列303;
其中,参数服务器301用于接收工作节点集302上传的训练参数,以利用该训练参数对参数服务器301中的训练模型的模型参数进行数据更新。
工作节点集302用于从参数服务器301中获取训练模型的模型参数P,并从消息队列303中获取样本数据。
这里,该工作节点集302具体可以包括有工作节点A、工作节点B和工作节点C;该工作节点A、工作节点B和工作节点C分别从消息队列303中获取样本数据。每个工作节点每次从消息队列303中获取一个样本数据,再使用SGD对获取到的样本数据进行本地梯度计算,然后继续从消息队列303中获取一个样本数据进行本地梯度计算。下面以工作节点A为例进行说明:
工作节点A从消息队列303中获取到的一个样本数据后,对该样本数据进行本地梯度计算,得到该样本数据的梯度值,然后继续从消息队列303中获取样本数据,当针对样本数据获取成功时,表征当前消息队列303中的样本数据不为空,则在对该样本数据进行本地梯度计算,得到该样本数据的梯度值后,利用该梯度值在本地更新模型参数,然后再继续从消息队列303中获取样本数据,直到消息队列303中的样本数据为空为止。当消息队列303中的样本数据为空时,工作节点A将本地更新后的模型参数之和发送给参数服务器301。
工作节点B与工作节点A的处理流程相似,其不同之处在于工作节点B比工作节点A处理的样本数据的数量少。在此不再赘述。
下面以工作节点C为例进行说明:
工作节点C从消息队列303中获取到的一个样本数据后,对该样本数据进行本地梯度计算,得到该样本数据的梯度值,然后继续从消息队列303中获取样本数据,当针对样本数据获取失败时,表征当前消息队列303中的样本数据为空,则将样本数据的梯度值发送给参数服务器301。
通过在当前一轮的数据更新过程中,如图3所示,工作节点A从消息队列303中一共获取了5条样本数据;工作节点B从消息队列303中一共获取了3条样本数据;工作节点C从消息队列303中一共获取了1条样本数据。也就是说,在该工作节点集302中,工作节点A的数据处理能力最强,处理速度最快;工作节点B的数据处理能力相比工作节点A的数据处理能力较弱,处理速度较慢;工作节点C的数据处理能力相比工作节点A和工作节点B的数据处理能力最弱,处理速度最慢。
当消息队列303中的样本数据为空时,工作节点A、工作节点B和工作节点C再一并将样本数据的梯度值或本地的模型更新参数之和作为训练参数上传到参数服务器301中。
参数服务器301接收到工作节点集302发送的训练参数后,将该训练参数添加到计算容器中对该训练参数进行平均计算,以得到训练参数的平均值,然后利用将该平均值更新模型参数P。
本申请中,该消息队列303是一个分布式的消息队列,该消息队列具体可以分布在参数服务器301、工作节点A、工作节点B、工作节点C和/或其他终端中的任一设备中。该消息队列303的具***置可以通过RPC接口获取。
本申请通过将一轮需要训练的样本数据配置到分布式消息队列(Queue)内,然后当queue内无样本数据时,每个工作节点(worker)返回需要更新的梯度到参数服务器,当queue内有样本数据时,则每个工作节点(worker)对模型参数执行本地延迟梯度更新,然后再从Queue中取得1个mini-batch大小的样本数据继续训练,直到Queue中无样本数据为止。
通过将待训练的样本数据均衡负载到各个worker进行梯度计算的方法结合本地延迟梯度更新策略,能够加快分布式同步梯度更新的速度,使得在大规模异构环境中计算力强的工作节点多算,计算力弱的工作节点少算,减少工作节点之间的等待时间,使得最终加快收敛速度。
图4为本发明实施例中数据处理装置的结构组成示意图二;如图4所示,所述数据处理装置400可以是移动电话、计算机、数字广播终端、信息收发设备、游戏控制台、平板设备、个人数字助理、信息推送服务器、内容服务器、身份认证服务器等。图4所示的数据处理装置400包括:至少一个处理器401、存储器402、至少一个网络接口404和用户接口403。数据处理装置400中的各个组件通过总线***405耦合在一起。可理解,总线***405用于实现这些组件之间的连接通信。总线***405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线***405。
其中,用户接口403可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器402可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器402旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器402用于存储各种类型的数据以支持数据处理装置400的操作。这些数据的示例包括:用于在数据处理装置400上操作的任何计算机程序,如操作***4021和应用程序4022;其中,操作***4021包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序4022可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序4022中。
上述本发明实施例揭示的方法可以应用于处理器401中,或者由处理器401实现。处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器401可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器402,处理器401读取存储器402中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,数据处理装置400可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
具体所述处理器401运行所述计算机程序时,执行:从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;
分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;
确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。
所述处理器401运行所述计算机程序时,还执行:确定所述消息队列中的样本数据不为空时,利用所述M个训练参数在本地更新所述训练模型的模型参数,得到所述训练模型的M个本地模型参数。
所述处理器401运行所述计算机程序时,还执行:确定所述消息队列中的样本数据为空时,计算所述M个本地模型参数之和;
将所述M个本地模型参数之和作为训练参数向所述参数服务器发送。
所述处理器401运行所述计算机程序时,还执行:确定工作节点参数、样本数据参数和迭代更新参数;
根据所述工作节点参数、所述样本数据参数和所述迭代更新参数之间的乘积,配置所述消息队列的大小。
所述处理器401运行所述计算机程序时,还执行:通过远程过程调用RPC接口获取所述消息队列中的M个样本数据。
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器402,上述计算机程序可由数据处理装置400的处理器401执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、FlashMemory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器运行时,执行:从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;
分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;
确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。
该计算机程序被处理器运行时,还执行:确定所述消息队列中的样本数据不为空时,利用所述M个训练参数在本地更新所述训练模型的模型参数,得到所述训练模型的M个本地模型参数。
该计算机程序被处理器运行时,还执行:确定所述消息队列中的样本数据为空时,计算所述M个本地模型参数之和;
将所述M个本地模型参数之和作为训练参数向所述参数服务器发送。
该计算机程序被处理器运行时,还执行:确定工作节点参数、样本数据参数和迭代更新参数;
根据所述工作节点参数、所述样本数据参数和所述迭代更新参数之间的乘积,配置所述消息队列的大小。
该计算机程序被处理器运行时,还执行:通过远程过程调用RPC接口获取所述消息队列中的M个样本数据。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
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.一种数据处理装置,所述装置包括:
获取单元,用于从消息队列中获取M个样本数据,M大于等于1,其中,M与工作节点自身的数据处理能力相关联;
计算单元,用于分别对所述M个样本数据进行计算,得到针对训练模型的M个训练参数;
发送单元,用于确定所述消息队列中的样本数据为空时,将所述M个训练参数向参数服务器发送。
7.根据权利要求6所述的装置,所述装置还包括;
更新单元,用于确定所述消息队列中的样本数据不为空时,利用所述M个训练参数在本地更新所述训练模型的模型参数,得到所述训练模型的M个本地模型参数。
8.根据权利要求7所述的装置,所述计算单元,具体还用于计算所述M个本地模型参数之和;
所述发送单元,具体用于确定所述消息队列中的样本数据为空时,将所述M个本地模型参数之和作为训练参数向所述参数服务器发送。
9.根据权利要求6所述的装置,所述装置还包括:
确定单元,用于确定工作节点参数、样本数据参数和迭代更新参数;
配置单元,用于根据所述工作节点参数、所述样本数据参数和所述迭代更新参数之间的乘积,配置所述消息队列的大小。
10.一种数据处理装置,所述装置包括:存储器、处理器以及存储在存储器被处理器运动的可执行程序,其特征在于,所述处理器运行所述可执行程序时执行如权利要求1至5任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810621153.6A CN108846095A (zh) | 2018-06-15 | 2018-06-15 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810621153.6A CN108846095A (zh) | 2018-06-15 | 2018-06-15 | 一种数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108846095A true CN108846095A (zh) | 2018-11-20 |
Family
ID=64202038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810621153.6A Pending CN108846095A (zh) | 2018-06-15 | 2018-06-15 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108846095A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020678A (zh) * | 2019-03-25 | 2019-07-16 | 联想(北京)有限公司 | 一种数据处理方法、电子设备及计算机存储介质 |
CN110084380A (zh) * | 2019-05-10 | 2019-08-02 | 深圳市网心科技有限公司 | 一种迭代训练方法、设备、***及介质 |
CN110502344A (zh) * | 2019-08-26 | 2019-11-26 | 联想(北京)有限公司 | 一种数据调整方法及装置 |
CN111612155A (zh) * | 2020-05-15 | 2020-09-01 | 湖南大学 | 一种分布式机器学习***及适用于其的通信调度方法 |
CN114792125A (zh) * | 2022-04-15 | 2022-07-26 | 北京百度网讯科技有限公司 | 基于分布式训练的数据处理方法、装置、电子设备和介质 |
CN114841016A (zh) * | 2022-05-26 | 2022-08-02 | 北京交通大学 | 一种多模型联邦学习方法、***及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780613A (zh) * | 2012-06-19 | 2012-11-14 | 瑞斯康达科技发展股份有限公司 | 一种分布式设备板间通信的方法与装置 |
CN103745225A (zh) * | 2013-12-27 | 2014-04-23 | 北京集奥聚合网络技术有限公司 | 分布式ctr预测模型训练的方法和*** |
CN104008420A (zh) * | 2014-05-26 | 2014-08-27 | 中国科学院信息工程研究所 | 一种基于自动编码机的分布式离群点检测方法及*** |
CN104143327A (zh) * | 2013-07-10 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 一种声学模型训练方法和装置 |
CN104468250A (zh) * | 2013-09-17 | 2015-03-25 | 深圳市共进电子股份有限公司 | Tr069测试中的消息处理方法和*** |
CN106327251A (zh) * | 2016-08-22 | 2017-01-11 | 北京小米移动软件有限公司 | 模型训练***和方法 |
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学***台 |
CN108154237A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种数据处理***及方法 |
-
2018
- 2018-06-15 CN CN201810621153.6A patent/CN108846095A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780613A (zh) * | 2012-06-19 | 2012-11-14 | 瑞斯康达科技发展股份有限公司 | 一种分布式设备板间通信的方法与装置 |
CN104143327A (zh) * | 2013-07-10 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 一种声学模型训练方法和装置 |
CN104468250A (zh) * | 2013-09-17 | 2015-03-25 | 深圳市共进电子股份有限公司 | Tr069测试中的消息处理方法和*** |
CN103745225A (zh) * | 2013-12-27 | 2014-04-23 | 北京集奥聚合网络技术有限公司 | 分布式ctr预测模型训练的方法和*** |
CN104008420A (zh) * | 2014-05-26 | 2014-08-27 | 中国科学院信息工程研究所 | 一种基于自动编码机的分布式离群点检测方法及*** |
CN106327251A (zh) * | 2016-08-22 | 2017-01-11 | 北京小米移动软件有限公司 | 模型训练***和方法 |
CN108154237A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种数据处理***及方法 |
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学***台 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020678A (zh) * | 2019-03-25 | 2019-07-16 | 联想(北京)有限公司 | 一种数据处理方法、电子设备及计算机存储介质 |
CN110084380A (zh) * | 2019-05-10 | 2019-08-02 | 深圳市网心科技有限公司 | 一种迭代训练方法、设备、***及介质 |
CN110502344A (zh) * | 2019-08-26 | 2019-11-26 | 联想(北京)有限公司 | 一种数据调整方法及装置 |
CN111612155A (zh) * | 2020-05-15 | 2020-09-01 | 湖南大学 | 一种分布式机器学习***及适用于其的通信调度方法 |
CN111612155B (zh) * | 2020-05-15 | 2023-05-05 | 湖南大学 | 一种分布式机器学习***及适用于其的通信调度方法 |
CN114792125A (zh) * | 2022-04-15 | 2022-07-26 | 北京百度网讯科技有限公司 | 基于分布式训练的数据处理方法、装置、电子设备和介质 |
CN114792125B (zh) * | 2022-04-15 | 2023-06-23 | 北京百度网讯科技有限公司 | 基于分布式训练的数据处理方法、装置、电子设备和介质 |
CN114841016A (zh) * | 2022-05-26 | 2022-08-02 | 北京交通大学 | 一种多模型联邦学习方法、***及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108846095A (zh) | 一种数据处理方法及装置 | |
US11106486B2 (en) | Techniques to manage virtual classes for statistical tests | |
US9111232B2 (en) | Portable workload performance prediction for the cloud | |
Du et al. | Learning resource allocation and pricing for cloud profit maximization | |
CN103814358B (zh) | 服务器群内的虚拟机放置 | |
CN109995677A (zh) | 资源分配方法、装置及存储介质 | |
CN110366734A (zh) | 优化神经网络架构 | |
CN108171280A (zh) | 一种分类器构建方法及预测分类的方法 | |
CN110515739A (zh) | 深度学习神经网络模型负载计算方法、装置、设备及介质 | |
CN112433819A (zh) | 异构集群调度的模拟方法、装置、计算机设备及存储介质 | |
CN106803799B (zh) | 一种性能测试方法和装置 | |
CN108431832A (zh) | 利用外部存储器扩增神经网络 | |
CN110083334A (zh) | 模型上线的方法及装置 | |
CN109842563A (zh) | 内容分发网络流量调度方法、装置和计算机可读存储介质 | |
CN105009089B (zh) | 用于促进对指令违反行为的管理的设备和方法 | |
CN108769125A (zh) | 应用推荐方法、装置、存储介质及计算机设备 | |
CN107909141A (zh) | 一种基于灰狼优化算法的数据分析方法及装置 | |
CN112700006A (zh) | 网络架构搜索方法、装置、电子设备及介质 | |
CN107949828A (zh) | 用于将应用中的机器代码的执行动态地卸载至虚拟机的方法和装置 | |
CN109710303A (zh) | 语音交互产品的多版本并行开发方法及*** | |
CN107621980A (zh) | 一种虚拟机迁移方法、集群控制***和控制装置 | |
CN107391539A (zh) | 事务处理方法、服务器和存储介质 | |
CN106933646A (zh) | 一种创建虚拟机的方法及装置 | |
Rekachinsky et al. | Modeling parallel processing of databases on the central processor Intel Xeon Phi KNL | |
CN109308327A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181120 |
|
RJ01 | Rejection of invention patent application after publication |