[发明专利]分布式环境中的数据通信方法和设备有效
申请号: | 201410644029.3 | 申请日: | 2014-11-06 |
公开(公告)号: | CN104301440B | 公开(公告)日: | 2018-04-10 |
发明(设计)人: | 段亦涛;孔东营;夏龙;陈少虎 | 申请(专利权)人: | 网易有道信息技术(北京)有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京信远达知识产权代理事务所(普通合伙)11304 | 代理人: | 魏晓波 |
地址: | 100084 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 环境 中的 数据通信 方法 设备 | ||
技术领域
本发明的实施方式涉及通信技术领域,更具体地,本发明的实施方式涉及分布式环境中的数据通信方法和设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本申请的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
在机器学习过程中,需要利用训练数据对目标函数进行训练,最终获得理想的训练模型。为了能够快速地完成对目标函数的训练,通常都是将训练数据放入内存中,以便提高对训练数据的读/写速度。
如果训练所用的是小数据量的训练数据,可以在单台机器上装载所有的训练数据,并由单台机器完成训练任务。如果训练所用的是大数据量的训练数据,例如,在很多应用场景的机器学习中,训练数据的数据量可以达到几百G甚至几T,在这种情况下,单台机器根本无法装载如此大数据量的训练数据,即使可以装载,由于单台机器的CPU的计算能力和内存带宽有限,因此,当由单台机器完成训练任务时,也会影响训练速度,甚至单台机器根本无法完成训练。
为了避免单台机器无法装载大数据量的训练数据,或者,缓解单台机器的工作压力,还可以在分布式环境中完成训练任务。也就是说,每台机器只负责装载一部分训练数据,并完成该部分训练数据的训练任务。
发明内容
但是,本发明人在研究过程中发现,当在分布式环境中完成训练时,各台机器之间需要进行数据通信。例如,在训练过程中,每台机器都需要负责本地训练数据的梯度运算。并且,针对每一次迭代过程,当每台机器计算出梯度值后,就需要将该梯度值发送给其他机器,再由其他机器对接收的梯度值进行聚合。并且,在全部聚合完成后,需要将聚合后的梯度值广播给每台机器,以便每台机器在下一次迭代过程中根据聚合后的梯度值进行梯度运算。现有技术中,每台机器之间通常是通过串行通信方式来进行数据通信的。即,在聚合数据时,一台机器每次只接收一台相邻机器发送的数据(如,梯度值),并进行聚合操作,而其它机器只能排队等待。当最后一台机器对所有机器发送的数据进行聚合后,在广播数据时,也是每次只向一台相邻机器发送聚合后的数据(如,聚合后的梯度值)。
依照现有技术,当机器之间采用串行通信方式进行数据通信时,其通信速度会非常慢,进而会造成大规模的机器学习训练速度也非常慢。特别是在训练数据的数据量非常大的情况下,最终整个训练过程可能会花费几十个小时,甚至是几天的时间。
为此,非常需要一种分布式环境中的数据通信方法和设备,以解决现有技术中由于串行通信方式的通信速度慢而导致的训练速度太慢的问题。
在本上下文中,本发明的实施方式期望提供一种分布式环境中的数据通信方法和设备。
在本发明实施方式的第一方面中,提供了一种分布式环境中的数据通信方法,包括:
a)、在当前一轮聚合中,判断是否存在当前空闲的机器;
b)、如果不存在当前空闲的机器,则重新返回步骤a),如果存在当前空闲的机器,判断在当前空闲的机器中是否存在没有发送过待聚合数据的机器;
c)、如果在当前空闲的机器中存在至少两个没有发送过待聚合数据的机器,在所述至少两个没有发送过待聚合数据的机器中,指定待聚合数据的接收端和发送端,并重新返回步骤a),其中接收端用于对发送端发送的待聚合数据以及自身的待聚合数据进行聚合;
d)、如果在当前空闲的机器中只存在一个没有发送过待聚合数据的机器,判断当前空闲且没有发送过待聚合数据的机器与所有发送过待聚合数据的机器的数目总和是否为所有机器的总数目,如果当前空闲且没有发送过待聚合数据的机器与所有发送过待聚合数据的机器的数目总和为所有机器的总数目,结束当前一轮聚合;如果当前空闲且没有发送过待聚合数据的机器与所有发送过待聚合数据的机器的数目总和不为所有机器的总数目,重新返回步骤a)。
在本发明实施方式的第二方面中,提供了一种分布式环境中的数据通信方法,包括:
a)、在当前一轮广播中,判断是否存在没有接收过待广播数据的机器,其中将当前一轮聚合中唯一没有发送过待聚合数据的机器作为第一个接收过待广播数据的机器;
b)、如果存在没有接收过待广播数据的机器,从接收过待广播数据的机器中选择当前空闲的机器并指定为待广播数据的发送端,指定没有接收过广播数据的机器为待广播数据的接收端,并重新返回步骤a),其中接收端用于接收发送端发送的广播数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易有道信息技术(北京)有限公司,未经网易有道信息技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410644029.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:控制五轴加工机的数值控制装置
- 下一篇:一种家居智能带有报警功能的储物柜