本发明专利技术实施例提供一种分布式机器学习的参数同步方法及装置,其中方法包括:将用于产生机器学习的参数的N
Parameter synchronization method and device for distributed machine learning
【技术实现步骤摘要】
分布式机器学习的参数同步方法及装置
本专利技术涉及机器学习
,更具体地,涉及分布式机器学习的参数同步方法及装置。
技术介绍
由于多租户数据中心里的流量模式无法预测,因此大多数数据中心网络拓扑采用的是无阻塞的Fat-Tree结构。但是,分布式机器学习节点之间的同步数据大小和模式是规律且可预测的,如果采用Fat-Tree拓扑运行传统参数同步方法,许多链路资源和交换机资源将处于空闲状态。此外,由于Fat-Tree拓扑里节点之间的通信往往需要多跳来实现,如果选择部署RDMA(RemoteDirectMemoryAccess,远程直接数据存取)协议会出现性能下降的问题。传统的参数同步方法有基于参数服务器(ParameterServer)和AllReduce两种。对于PS同步方法,服务器的角色被分为参数服务器和worker(工作服务器)。其中,Worker负责计算,参数服务器负责参数聚合和分发。当PS同步方法部署于Fat-Tree网络里时,参数服务器容易成为瓶颈,对于AllReduce同步方法,当AllReduce同步方法部署于Fat-Tree网络里时,在Fat-Tree拓扑上的参数同步时间也比较长。
技术实现思路
本专利技术实施例提供一种克服上述问题或者至少部分地解决上述问题的分布式机器学习的参数同步方法及装置。第一个方面,本专利技术实施例提供一种分布式机器学习的参数同步方法,包括:将用于产生机器学习的参数的Nk个服务器组建为BCube架构,所述BCube架构共有k层次的交换机,每个交换机中服务器的数量为N个;在每次机器学习训练迭代完成后,将所有参数分为k份参数集合,由服务器开启k个线程对每份参数集合执行参数同步任务;其中,N和k均为大于等于2的整数。进一步地,所述参数同步任务包括聚合任务;所述聚合任务包括:对BCube架构中的所有层级逐层进行参数聚合;其中,在第i次参数聚合时,同一交换机下的每个服务器承担第i-1次参数聚合结果中1/N数量的参数的聚合任务,其中,同一交换机下的每个服务器在第i-1次参数聚合的参数相同而在第i次参数聚合的参数不同;i为整数,且2≤i≤k。进一步地,所述聚合任务还包括:在第1次参数聚合时,同一交换机下的每个服务器承担所述参数集合中1/N数量的参数的聚合任务。进一步地,每个参数同步任务还包括分发任务;所述分发任务包括:在所述BCube架构中的所有层级参数聚合后,对BCube架构中的所有层级逐层进行参数分发,其中所述参数分发的层级顺序与所述参数聚合的层级顺序相反:其中,在第j次参数分发时,每个服务器将第j-1次参数分发结果分发至同一交换机下的其他服务器;j为整数,且2≤j≤k。进一步地,所述分发任务还包括:在第1次参数分发时,每个服务器将自身在最后一层参数聚合时承担的参数的聚合结果分发至同一交换机下的其他服务器,获得每个服务器的第1次参数分发结果。第二个方面,本专利技术实施例还提供一种分布式机器学习的参数同步装置,包括:架构组建模块,用于将用于产生机器学习的参数的Nk个服务器组建为BCube架构,所述BCube架构共有k层次的交换机,每个交换机连接的服务器的数量为N个;同步模块,用于在每次机器学习训练迭代完成后,将所有参数分为k份参数集合,由服务器开启k个线程对每份参数集合执行参数同步任务;其中,N和k均为大于等于2的整数。进一步地,所述同步模块包括用于执行参数同步任务中的聚合任务的聚合单元;所述聚合单元具体用于:对BCube架构中的所有层级逐层进行参数聚合;其中,在第i次参数聚合时,同一交换机下的每个服务器承担第i-1次参数聚合结果中1/N数量的参数的聚合任务,其中,同一交换机下的每个服务器在第i-1次参数聚合的参数相同而在第i次参数聚合的参数不同;i为整数,且2≤i≤k。进一步地,所述同步模块还包括用于执行参数同步任务中的分发任务的分发单元;所述分发单元具体用于:在所述BCube架构中的所有层级参数聚合后,对BCube架构中的所有层级逐层进行参数分发,其中所述参数分发的层级顺序与所述参数聚合的层级顺序相反:其中,在第j次参数分发时,每个服务器将第j-1次参数分发结果分发至同一交换机下的其他服务器;j为整数,且2≤j≤k。第三方面,本专利技术实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。本专利技术实施例提供的分布式机器学习的参数同步方法及装置,利用具有层级结构的BCube架构的网络架构,在进行聚合任务时也是层次化的,在聚合的过程中,参数首先在局部服务器之间进行部分聚合。随着层次的提升,聚合范围逐步扩大,最终实现全局服务器之间的聚合。本专利技术实施例通过在服务器上配置多个线程执行参数同步任务,能够大幅降低通信时间,并且在使用硬件资源上没有交叉,同时利用BCube架构进行参数同步时,由于服务器间的通信都是一跳,能够使得RDMA协议发挥更好的性能。。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例的分布式机器学习的参数同步方法的流程示意图;图2为本专利技术实施例的BCube架构的示意图;图3为本专利技术另一个实施例的BCube架构的示意图;图4为本专利技术实施例在Level-0层级的参数聚合结果的示意图;图5为本专利技术实施例在Level-1层级的参数聚合结果的示意图;图6为本专利技术实施例提供的分布式机器学习的参数同步装置的结构示意图;图7为本专利技术实施例提供的电子设备的实体结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例的分布式机器学习的参数同步方法的流程示意图,如图1所示,该方法包括S101和S102,具体地:S101、将用于产生参数的Nk个服务器组建为BCube架构,所述BCube架构共有k层次的交换机,每个交换机连接的服务器的数量为N个。可以理解的是,本专利技术实施例属于分布式机器学习领域,服务器用于在机器学习训练的过程中产生参数,每个服务器所产生的参数个数是一致的,只本文档来自技高网...
【技术保护点】
1.一种分布式机器学习的参数同步方法,其特征在于,包括:/n将用于产生机器学习的参数的N
【技术特征摘要】
1.一种分布式机器学习的参数同步方法,其特征在于,包括:
将用于产生机器学习的参数的Nk个服务器组建为BCube架构,所述BCube架构共有k层次的交换机,每个交换机连接的服务器的数量为N个;
在每次机器学习训练迭代完成后,将所有参数分为k份参数集合,由服务器开启k个线程对每份参数集合执行参数同步任务;
其中,N和k均为大于等于2的整数。
2.根据权利要求1所述的分布式机器学习的参数同步方法,其特征在于,所述参数同步任务包括聚合任务;
所述聚合任务包括:对BCube架构中的所有层级逐层进行参数聚合;其中,在第i次参数聚合时,同一交换机下的每个服务器承担第i-1次参数聚合结果中1/N数量的参数的聚合任务,其中,同一交换机下的每个服务器在第i-1次参数聚合的参数相同而在第i次参数聚合的参数不同;i为整数,且2≤i≤k。
3.根据权利要求2所述的分布式机器学习的参数同步方法,其特征在于,所述聚合任务还包括:
在第1次参数聚合时,同一交换机下的每个服务器承担所述参数集合中1/N数量的参数的聚合任务。
4.根据权利要求1-3任意一项所述的分布式机器学习的参数同步方法,其特征在于,每个参数同步任务还包括分发任务;
所述分发任务包括:在所述BCube架构中的所有层级参数聚合后,对BCube架构中的所有层级逐层进行参数分发,其中所述参数分发的层级顺序与所述参数聚合的层级顺序相反:
其中,在第j次参数分发时,每个服务器将第j-1次参数分发结果分发至同一交换机下的其他服务器;j为整数,且2≤j≤k。
5.根据权利要求4所述的分布式机器学习的参数同步方法,其特征在于,所述分发任务还包括:
在第1次参数分发时,每个服务器将自身在最后一层参数聚合时承担的参数的聚合结果分发至同一交换机下的其他服务器,获得每个服务器的第1次参数分发结果。
6.一种...
【专利技术属性】
技术研发人员:李丹,王松涛,吴建平,程阳,
申请(专利权)人:清华大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。