CN111444021A - 基于分布式机器学习的同步训练方法、服务器及系统 - Google Patents
基于分布式机器学习的同步训练方法、服务器及系统 Download PDFInfo
- Publication number
- CN111444021A CN111444021A CN202010254049.5A CN202010254049A CN111444021A CN 111444021 A CN111444021 A CN 111444021A CN 202010254049 A CN202010254049 A CN 202010254049A CN 111444021 A CN111444021 A CN 111444021A
- Authority
- CN
- China
- Prior art keywords
- server
- state
- message
- training
- global
- 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.)
- Granted
Links
Images
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于分布式机器学习的同步训练方法、服务器及系统,状态查询服务器的训练方法包括监听来自计算服务器的状态消息,更新状态数据库中当前计算服务器的状态,根据状态数据库中所有计算服务器的实时状态和任务进度决策当前计算服务器的下一动作,并将携带下一动作的状态响应消息发送给当前计算服务器;计算服务器的训练方法包括循环执行以下动作:向状态查询服务器发送状态消息,根据状态查询服务器反馈的状态响应消息决定下一动作:继续本地计算,或立即全局聚合。服务器系统由通过广域网互联的中心机构与若干参与机构的服务器构成;中心机构包括参数服务器和状态查询服务器;参与机构包括数据库服务器和计算服务器。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及基于分布式机器学习的同步训练方法、服务器及系统。
背景技术
联邦学习是业界公认的能有效应对数据孤岛的技术,也是一种数据隐私保护的分布式机器学习技术,不直接交互数据,而是在云端参数服务器的协调下交互模型,在不暴露数据的情况下协同完成模型训练。根据应用场景的不同,联邦学习分为面向用户的联邦学习和面向机构的联邦学习。面向用户的联邦学习以用户终端(如移动手机、笔记本电脑等智能设备)为单位参与模型训练,参与的用户数量巨大,甚至可达百亿级。面向机构的联邦学习以机构为单位参与模型训练,参与的机构数量较少,通常仅有2~100个。
联邦学习是一种典型的具有异构且动态集群环境的场景,因此面临着系统异构性和系统动态性带来的严峻挑战。以面向机构的联邦学习为例,系统异构性主要体现在参与机构间的计算能力差异,这种差异将为联邦学习的同步算法带来同步阻塞难题,即最慢的参与机构会阻塞整个集群的训练进程,导致严重的训练低效。同时,系统异构性也为联邦学习的异步算法带来延迟梯度难题,引起模型梯度和模型参数的失配,使得异步算法需要更多迭代才能达到理想性能。此外,由于联邦学习与其它计算业务间的计算资源竞争,参与机构的计算能力随时间动态变化,给同步阻塞和延迟梯度难题带来更多不确定的影响,可能进一步劣化训练效率。
为解决异构且动态集群环境下的同步阻塞难题,现有技术主要有三种:异步算法、基于接受条件或截止期限的算法、基于计算量协调的同步优化算法。
异步算法允许参数服务器在接收到任一参与机构提交的模型更新时立即更新全局模型,而无需等待其它较慢的参与机构,使得各参与机构可以在不同的步调下执行计算和通信,从而避免同步阻塞,提高训练效率。这类算法同时引入了延迟梯度难题,容易对模型质量和收敛性造成损伤,虽然部分改进方法可以抑制延迟梯度的影响,但这些方法仅适用于弱异构集群环境,在强异构的联邦学习集群环境下增益甚微,甚至可能进一步劣化模型质量和收敛性。
部分方法通过设置接受条件或截止期限来解决掉队者(Straggler)问题,例如设置截止期限,参与机构只能在截止期限之前执行计算,否则将被丢弃,或只接收前M个到达的模型,丢弃掉队者的延迟模型,以保证掉队者不会拖慢训练进程,从而缓解同步阻塞难题。这些方法简单丢弃了掉队者的数据,在强异构的集群环境中,计算能力弱的机构将没有机会参与联邦学习,等价于丢弃这些机构的数据,会损伤模型质量,然而,获得优质模型是联邦学习的根本目的,因此,这些方法不可用于联邦学习。
部分方法尝试协调各参与机构的本地计算量以平衡计算时间。例如一些研究在每个参与机构各引入一个超参数以控制各参与机构的子问题的求解难度,或根据各参与机构的计算能力调整批数据大小,以减少同步阻塞时延。这些方法引入了额外的超参数,选择这些超参数需综合考虑任务难度、计算能力、通信能力等多种因素,且部分因素是动态变化的,难以建模分析,使得有效的超参数难以设置。并且,静态的计算量平衡方法不适用于动态变化的集群环境。
发明内容
针对现有技术中的上述不足,本发明提供的基于分布式机器学习的同步训练方法、服务器及系统通过状态查询服务器监测所有参与机构内计算服务器的实时能力和任务进度,并为每个计算服务器决策下一动作,能够自适应地协调计算服务器间的本地计算次数,以降低计算服务器的同步阻塞时延,实现分布式机器学习的高效同步训练。
为了达到上述发明目的,本发明采用的技术方案为:
第一方面,基于分布式机器学习的同步训练方法,其应用于状态查询服务器,实现时包括如下步骤:
B1、监听来自参与机构的计算服务器的状态查询消息,若接收到,解析消息中的节点状态,并执行B2。
B2、更新状态数据库中当前计算服务器的状态,并检索状态数据库,找到最慢的参与机构s,读取其计算服务器的状态;
B3、判断当前计算服务器的本地更新计数器是否为零,或者其记录的全局训练轮数是否大于参与机构s的计算服务器的全局训练轮数,若是,进入步骤B7,否则执行步骤B4;
B5、判断当前计算服务器是否就是参与机构s的计算服务器,参与机构s的计算服务器的下一动作是否为立即全局聚合,参与机构s的计算服务器的本地更新计数器是否为1,当前计算服务器完成一次本地计算所需的时间是否大于若四个条件中任一成立,则进入步骤B6,否则执行步骤B7;
B6、更新状态数据库中当前计算服务器的下一动作为立即全局聚合,并将下一动作返回给当前计算服务器,之后进入步骤B1;
B7、更新状态数据库中当前计算服务器的下一动作为继续本地计算,并将下一动作返回给当前计算服务器,之后进入步骤B1。
第二方面,提供一种基于分布式机器学习的同步训练方法,其应用于计算服务器,实现时包括如下步骤:
S1、初始化计算服务器的节点状态,并读取中心机构的参数服务器中的全局模型参数作为初始本地模型参数;
S2、向中心机构的状态查询服务器发送状态查询消息,并接收状态查询服务器采用用于状态查询服务器的同步训练方法输出的下一动作;
S3、判断下一动作是否为继续本地计算,若是,记录当前系统时间,并进入步骤S4,否则执行步骤S6;
S4、在参与机构的数据库服务器中顺序采样若干训练样本,并使用小批量随机梯度下降法更新本地模型参数,在执行本步骤设定次数后进入步骤S5;
S5、记录当前系统时间为完成上一次本地更新的时间,并将本步骤与步骤S3的时间差作为计算服务器的实时计算能力,之后将本地更新计数器累加一次,并返回步骤S2;
S6、根据本地模型参数和初始本地模型参数计算模型更新,并发送给参数服务器用于计算全局模型更新;
S7、将全局训练轮数累加一次,重置本地更新计数器为0,之后判断全局训练轮数是否达到设定最大训练轮数,若是结束算法,否则进入步骤S8;
S8、读取参数服务器中最新的全局模型参数作为初始本地模型参数,并记录当前系统时间后向状态查询服务器发送状态报告消息,之后返回步骤S2。
第三方面,提供一种基于分布式机器学习的同步训练方法,其应用于参数服务器,实现时包括如下步骤:
A1、初始化全局训练轮数为0,随机初始化全局模型参数,清除全局模型更新缓存;
A2、发送全局模型参数至所有参与机构的计算服务器,并接收计算服务器采用用于计算服务器的同步训练方法输出的模型更新,每接收到一个模型更新,将其聚合到全局模型更新,当所有计算服务器均已上传模型更新时,进入步骤A3;
A3、根据当前全局模型参数和全局模型更新,计算新的全局模型参数,之后将全局训练轮数累加一次;
A4、判断全局训练轮数是否达到设定最大训练轮数,若是,输出最新全局模型参数,否则返回步骤A2;
聚合到全局模型更新的计算公式为:
其中,Δwr为全局模型更新;r为参数服务器记录的全局训练轮数;n为全局的训练样本数量;nk为参与机构k拥有的训练样本数量;为参与机构k的计算服务器上传的模型参数;rk为参与机构k的计算服务器记录的全局训练轮数。
第四方面,提供一种状态查询服务器,状态查询服务器上存储有基于分布式机器学习的同步训练程序,所述基于分布式机器学习的同步训练程序被执行时实现相应的基于分布式机器学习的同步训练方法的步骤。
第五方面,提供一种计算服务器,计算服务器上存储有基于分布式机器学习的同步训练程序,所述基于分布式机器学习的同步训练程序被执行时实现相应的基于分布式机器学习的同步训练方法的步骤。
第六方面,提供一种基于分布式机器学习的同步训练服务器系统,其包括中心机构和与所述中心机构通过广域网连接的若干参与机构;中心机构包括一个或多个参数服务器和一个状态查询服务器;参与机构包括存储有训练数据集的数据库服务器和计算服务器。
本发明的有益效果为:本方案应用于状态查询服务器的同步训练方法能够通过状态查询服务器统一维护所有参与机构的计算服务器的实时能力和任务进度,能够通过状态查询服务器下发的下一动作统一调度各计算服务器的本地计算次数,通过该种方式,本发明无需引入新的超参数,可以自适应动态变化的集群环境,有效平衡各计算服务器的计算时间,显著提高计算服务器的资源利用率,消除同步阻塞,加速模型训练。
本方案应用于计算服务器的同步训练方法能够根据状态查询服务器下发的下一动作灵活协调本地计算次数,在计算能力强时,计算服务器执行更多次的本地模型计算,利用同步阻塞的等待时间来探索更优质量的模型。通过该种方式,在异构且动态的集群环境下,可以实现数十倍的训练加速,同时保障模型性能无损。
本方案应用于计算服务器的同步训练方法能够根据状态查询服务器的协调,在训练初期,计算能力强的计算服务器快速将计算能力弱的计算服务器的本地模型拉到全局最优解附近,在训练后期,计算能力弱的计算服务器能够将计算能力强的计算服务器的本地模型推出局部最优解,并在全局最优解附近达到动态平衡,直至收敛。通过该种方式,在集群的异构程度持续增大时,计算能力强的计算服务器提交的模型更新趋于饱和,其对全局模型的影响也趋于饱和,使得计算能力弱的计算服务器仍能将全局模型推出局部最优,因此,该种方式可以适应强异构的集群环境。
本方案应用于计算服务器的同步训练方法能够根据状态查询服务器的协调,通过本地累积并延迟传输计算结果,该种方式可以有效减小网络中每秒需要传输的数据量,减小网络的传输压力,提高通信效率,从而加速模型训练。
附图说明
下图中ESync代表本方案中基于分布式机器学习的同步训练方法。
图1为状态查询服务器执行的基于分布式机器学习的同步训练方法的流程图。
图2为计算服务器执行的基于分布式机器学习的同步训练方法的流程图。
图3为参数服务器执行的基于分布式机器学习的同步训练方法的流程图。
图4为基于分布式机器学习的同步训练服务器系统的原理框图。
图5为状态查询服务器的原理框图。
图6为状态消息的结构示意图。
图7为不同算法在AlexNet模型上的测试精度随时间变化曲线对比。
图8为不同算法的计算时间占总时间的比例分布对比。
图9为ESync在训练初期(左2)和后期(左3)的训练过程示意图。
图10为不同异构程度下ESync的加速效果对比。
图11为不同算法每秒传输的平均流量大小对比。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
参考图1,图1示出了状态查询服务器执行的基于分布式机器学习的同步训练方法的流程图;如图1所示,该方法B包括步骤B1至步骤B8。
在步骤B1中,监听来自参与机构的计算服务器的状态查询消息,若接收到,解析消息中的节点状态,并执行B2。
在步骤B2中,更新状态数据库中当前计算服务器的状态,并检索状态数据库,找到最慢的参与机构s,读取其计算服务器的状态;
实施时,本方案优选节点状态包括k,tk,Ck,Tk,rk,其分别为参与机构的编号、本地更新次数、计算能力(完成一次本地计算所需的时间)、完成上一次本地更新时的时间戳和全局训练轮数;
如图6所示,状态查询消息结构包括发送方标识(sender_id)、接收方标识(receiver_id)、消息类型(msg_type)、节点状态(state_msg)以及下一动作(action)。
所述发送方标识字段用于消息发送器确定接收方地址。所述接收方标识字段用于消息接收器确认自己是否为正确的接收方。所述消息类型字段用于消息路由器正确转发消息到对应的处理器,可选值包括reset、report、query、response,分别对应状态重置消息、状态报告消息、状态查询消息、状态响应消息。
状态报告消息、状态重置消息和状态响应消息的结构与状态查询消息的结构相同。
下一动作字段用于状态响应消息中告知查询机构的计算服务器下一执行的操作,可选值包括compute、aggregate、null,分别对应继续本地计算、立即全局聚合、无动作。所述消息类型字段为reset、report或query时,下一动作字段默认为null。所述消息类型字段为response时,下一动作字段可为compute或aggregate。
所述节点状态字段用于状态报告处理器和状态查询处理器更新状态数据库信息,用于状态查询处理器决策查询机构的计算服务器的下一动作。所述节点状态字段包括参与机构标识(rank)、本地更新次数(iteration)、全局训练轮数(round)、计算能力(capacity)以及上一次本地更新的完成时间(timestamp)。
所述参与机构标识字段用于记录发送该消息的计算服务器所在参与机构的编号。所述本地更新次数字段用于记录上述计算服务器的当前本地更新次数。所述全局训练轮数字段用于记录上述计算服务器的当前全局训练轮数。所述计算能力字段用于记录上述计算服务器处理一个小批量数据所需的时间。所述完成时间字段用于记录上述计算服务器完成上一次本地更新的时间。
在步骤B3中,判断当前计算服务器的本地更新计数器是否为零,或者其记录的全局训练轮数是否大于参与机构s的计算服务器的全局训练轮数,若是,进入步骤B7,否则执行步骤B4;
在步骤B4中,记录当前系统时间,并估计参与机构s的计算服务器完成本地计算还需要的时间Tc为记录的当前系统时间;Cs为参与机构s的计算服务器完成一次本地更新所需的时间;Ts为参与机构s的计算服务器完成上一次本地更新的时间;
在步骤B5中,判断当前计算服务器是否就是参与机构s的计算服务器,参与机构s的计算服务器的下一动作是否为立即全局聚合,参与机构s的计算服务器的本地更新计数器是否为1,当前计算服务器完成一次本地计算所需的时间是否大于若四个条件中任一成立,则进入步骤B6,否则执行步骤B7;
在步骤B6中,更新状态数据库中当前计算服务器的下一动作为立即全局聚合,并将下一动作返回给当前计算服务器,之后进入步骤B1;
在步骤B7中,更新状态数据库中当前计算服务器的下一动作为继续本地计算,并将下一动作返回给当前计算服务器,之后进入步骤B1。
实施时,本方案优选当状态查询服务器监听的消息为计算服务器的状态报告消息时,其还包括:
解析状态报告消息中的节点状态,若当前计算服务器第一个进入新的训练轮数,则更新状态数据库中所有计算服务器的本地更新次数为零,下一动作为继续本地计算;
之后,使用接收的状态报告消息中的节点状态更新状态数据库中当前计算服务器的全局训练轮数和完成上一次本地更新时的时间戳;
当状态查询服务器监听的消息为计算服务器的状态重置消息时,其还包括:
解析状态重置消息中的机构数量K,在状态数据库中创建K个计算服务器的状态记录,初始化第k(k=1,2,…,K)个计算服务器的状态记录为:参与机构标识Rank=k,本地更新次数Iteration=0,计算能力Capacity=0,上一次本地更新的完成时间Timestamp=0,全局训练轮数Round=0,下一动作为继续本地计算。
参考图2,图2示出了计算服务器执行的基于分布式机器学习的同步训练方法的流程图;如图2所示,该方法S包括步骤S1至步骤S8。
在步骤S1中,初始化计算服务器的节点状态,并读取中心机构的参数服务器中的全局模型参数作为初始本地模型参数;
在步骤S2中,向中心机构的状态查询服务器发送状态查询消息,并接收状态查询服务器采用用于状态查询服务器的同步训练方法输出的下一动作;
在步骤S3中,判断下一动作是否为继续本地计算,若是,记录当前系统时间,并进入步骤S4,否则执行步骤S6;
在步骤S4中,在参与机构的数据库服务器中顺序采样若干训练样本,并使用小批量随机梯度下降法更新本地模型参数,在执行本步骤设定次数后进入步骤S5;其中的设定次数为1次或者为Enk/b次,b为每次采样的训练样本数;E为遍历整个训练数据集的次数;nk为参与机构k的训练样本总数量。
在步骤S5中,记录当前系统时间为完成上一次本地更新的时间,并将本步骤与步骤S3的时间差作为计算服务器的实时计算能力Ck=Tk-Tc,Tk为本步骤记录的当前系统时间;Tc为步骤S3记录的当前系统时间;之后将本地更新计数器累加一次,并返回步骤S2;
在步骤S7中,将全局训练轮数累加一次,重置本地更新计数器为0,之后判断全局训练轮数是否达到设定最大训练轮数,若是结束算法,否则进入步骤S8;
在步骤S8中,读取参数服务器中最新的全局模型参数作为初始本地模型参数,并记录当前系统时间后向状态查询服务器发送状态报告消息,之后返回步骤S2。
参考图3,图3示出了参数服务器执行的基于分布式机器学习的同步训练方法的流程图;如图3所示,该方法A包括步骤A1至步骤A4。
在步骤A1中,初始化全局训练轮数为0,随机初始化全局模型参数,清除全局模型更新缓存;
在步骤A2中,发送全局模型参数至所有参与机构的计算服务器,并接收计算服务器采用用于计算服务器的同步训练方法输出的模型更新,每接收到一个模型更新,将其聚合到全局模型更新,当所有计算服务器均已上传模型更新时,进入步骤A3;
在步骤A3中,根据当前全局模型参数wr和全局模型更新Δwr,计算新的全局模型参数wr+1=wr+∈Δwr,ε为全局学习率;之后将全局训练轮数累加一次。
在步骤A4中,判断全局训练轮数是否达到设定最大训练轮数,若是,输出最新全局模型参数,否则返回步骤A2;
聚合到全局模型更新的计算公式为:
其中,Δwr为全局模型更新;r为参数服务器记录的全局训练轮数;n为全局的训练样本数量;nk为参与机构k拥有的训练样本数量;为参与机构k的计算服务器上传的模型参数;rk为参与机构k的计算服务器记录的全局训练轮数。
上述执行同步训练方法的参数服务器还用于执行向状态查询服务器发送状态重置消息,初始化状态查询服务器。
本方案还提供一种状态查询服务器,其上存储有基于分布式机器学习的同步训练程序,基于分布式机器学习的同步训练程序被执行时实现对应的基于分布式机器学习的同步训练方法的步骤。
本方案还提供一种计算服务器,其上存储有基于分布式机器学习的同步训练程序,基于分布式机器学习的同步训练程序被执行时实现对应的基于分布式机器学习的同步训练方法的步骤。
如图4所示,本方案还提供一种基于分布式机器学习的同步训练服务器系统,其包括中心机构和与所述中心机构通过广域网连接的若干参与机构;所述中心机构包括若干参数服务器和一个状态查询服务器;所述参与机构包括存储有训练数据集的数据库服务器和计算服务器。
如图5所示,在本发明的一个实施例中,状态查询服务器包括:
消息接收器,用于接收参与机构的计算服务器的状态查询消息、状态报告消息或状态重置消息,并对消息进行转换后发送给FIFO消息队列;
FIFO消息队列,用于缓存来自消息接收器转换后的消息,并在接收到新消息时通知消息路由器取出消息;
消息路由器,用于监听FIFO消息队列的新消息,取出FIFO消息队列中队头的消息,之后基于取出消息的类型,路由消息至相应处理器;
状态查询处理器,根据状态查询消息,实现用于状态查询服务器的基于分布式机器学习的同步训练方法的步骤;
状态报告处理器,用于处理状态报告消息,并将状态报告消息中的最新计算服务器状态写入状态数据库中;
状态重置处理器,用于处理状态重置消息,并重置状态数据库中记录的计算服务器状态;
消息发送器,用于接收状态查询处理器决策的下一动作,并封装下一动作到状态响应消息中,之后发送状态响应消息到查询机构的计算服务器。
本方案的状态数据库包括状态存储表、多线程异步任务引擎以及任务队列;任务队列用于缓存状态报告处理器、状态重置处理器以及状态查询处理器提交的任务;多线程异步任务引擎用于取出与处理任务队列中的任务,用于更新或重置状态存储表中记录的状态,以及用于返回读出的状态记录给状态查询处理器。
多线程异步任务引擎启用多个线程并行处理多个任务,线程间无读写锁。在读出的状态记录中,若部分字段在读出前未更新,另一部分字段在读出前已更新,不会混淆状态查询处理器决策的下一动作;状态数据库的状态存储表包括所述状态消息结构中节点状态字段下的所有字段,并且额外包括一个动作字段(action),该动作字段用于记录上一次查询时状态查询处理器决策的下一动作。
本方案提供的同步训练方法、服务器及系统可以部署在下面两种实施部署环境,第一种实施部署环境为:
当设定次数为Enk/b次时,本方案的系统可以部署在跨地理域分布的多个机构的服务器中,服务器间通过广域网互联。在这些机构中,存在一个中心机构和多个参与机构,每个机构提供至少一台服务器,中心机构的服务器需要和所有参与机构的服务器能够相互通信。这些服务器可以是通用服务器或高性能计算服务器,服务器间的计算能力可以不同。这些服务器需部署有深度学习软件,且参与机构的服务器能够从所在机构的数据库服务器获取训练数据。
本发明实施部署环境时,中心机构部署有一个或多个参数服务器,以及一个状态查询服务器。参与机构部署有一个计算服务器,以及存储有训练数据集的数据库服务器。若某机构同时为中心机构和参与机构,则该机构应部署一个或多个参数服务器、一个状态查询服务器、一个计算服务器以及存储有训练数据集的数据库服务器。
第二种实施部署环境为:
当设定次数为1次时,本方案的系统可以部署在一个机构的多个服务器中,服务器间通过域内网络互连。该机构至少需要有两台服务器,其中至少一台服务器为中心节点,其它服务器为参与节点,中心节点需要能够和所有参与节点相互通信。这些服务器可以是通用服务器或高性能计算服务器,服务器间的计算能力可以不同。这些服务器需部署有深度学习软件,且作为参与节点的服务器能够从数据库服务器获取训练数据。
本发明实施部署环境时,一个机构内包括若干中心节点,其中一个中心节点部署状态查询服务器,其它中心节点分别部署一个参数服务器。若仅有一个中心节点,可在该中心节点上同时部署一个参数服务器和一个状态查询服务器。参与节点部署有一个计算服务器,以及存储有训练数据集的数据库服务器。若某服务器同时为中心节点和参与节点,则该服务器应部署一个参数服务器、一个计算服务器以及存储有训练数据集的数据库服务器,若仅有一个中心节点,该服务器也需要部署一个状态查询服务器。
下面结合具体的实例对本方案提供的同步训练方法、服务器及系统的效果进行说明:
本实例使用了3台服务器来开展上述实验,每台服务器配备有2张GTX 1080TI GPU计算卡,以及Intel E5-2650v4 CPU计算卡,服务器之间通过局域网内千兆带宽互联。使用Docker容器技术部署实验环境,并使用MXNET分布式深度学习框架搭建实验测试平台。
实验在每个服务器上启动4个Docker容器来分别运行4个计算服务器,其中包括2个GPU计算服务器和2个CPU计算服务器,共计12个计算能力不同的计算服务器。实验选择一个服务器额外启动2个Docker容器来分别运行1个参数服务器和1个状态查询服务器。
实验采用Fashion-MNIST和CIFAR10数据集,并将上述两个数据集均匀随机切分到12个计算服务器上;实验采用AlexNet和ResNet18模型参与训练;实验采用SSGD、ASGD以及DC-ASGD作为本方案所提算法ESync的对比算法,并测试了单机训练Standalone可达到的最高测试精度。实验统一采用超参数设置η=0.0005,∈=1,b=64,R=+∞,并设置ESync每1次本地模型更新即执行查询。
在上述实验环境中,采用本方案的同步训练方法及现有技术中的对比算法SSGD、ASGD和DC-ASGD对多种经典人工智能模型进行训练,以对本方案能够达到大幅提高人工智能模型的训练效率,且不损伤模型质量的效果进行说明:
图7示出了不同算法在AlexNet模型上的测试精度随时间变化曲线对比,从图7可以看出,相比于对比算法SSGD、ASGD以及DC-ASGD,本方案所提出的应用于计算服务器的同步训练方法ESync能显著提高AlexNet模型的训练效率,且可达到单机训练Standalone可达到的最高测试精度,能够保证模型质量无损。实验另外采用ResNet系列模型和Inception-v3模型与Fashion-MNIST数据集测试ESync相对SSGD的加速效果和收敛精度,参见表1:
由表1可知,ESync可达到25倍加速比,同时收敛精度不差于单机训练的最高精度。
本方案能够达到大幅提高人工智能模型的训练效率,且不损伤模型质量,主要原因是计算能力强的计算服务器在状态查询服务器的协调下执行了更多次的本地模型计算,利用了同步阻塞的等待时间来探索更优质量的人工智能模型,从而实现训练加速。
接着对本方案的同步训练方法能够实现自适应的计算协调的效果进行说明:
本方案所提出的应用于状态查询服务器的同步训练方法ESync无需引入新的超参数,而是通过状态查询服务器统一维护各计算服务器的实时能力和任务进度,并通过状态查询服务器下发的下一动作统一调度各计算服务器的本地计算次数,使得该种方法可以自适应动态变化的集群环境,平衡各计算服务器的计算时间,提高计算服务器的资源利用率,消除同步阻塞,加速模型训练。
实验采样了3个GPU计算服务器和3个CPU计算服务器,并统计了所述ESync算法和SSGD、ASGD、DC-ASGD对比算法下不同的计算服务器的计算时间和通信时间,计算时间占比分布如图8所示。数据表明,ESync能够有效平衡算力差异显著的计算服务器间的计算时间,使得计算能力强的计算服务器更加充分地利用本地丰富的计算资源,从而消除同步阻塞问题,加速训练过程。
接着对本方案的同步训练方法能够实现适用于强异构集群环境的效果进行说明:
如图9所示,在训练初期,计算服务器实现的同步训练方法ESync能使计算能力强的计算服务器快速将计算能力弱的计算服务器拉到全局最优解附近,而在训练后期,计算能力弱的计算服务器能够将计算能力强的计算服务器的本地模型推出局部极优解,并在全局最优解附近达到动态平衡,直至收敛。通过该种方式,在集群的异构程度持续增大时,计算能力强的计算服务器提交的模型更新趋于饱和,其对全局模型的影响也趋于饱和,使得计算能力弱的计算服务器仍能将全局模型推出局部最优,因此,该种方式可以适应强异构的集群环境。
实验采用AlexNet模型和Fashion-MNIST数据集,通过增强GPU计算服务器的计算能力,控制GPU计算服务器和CPU计算服务器的计算能力比(从1:1增大至300:1),对比了不同异构程度下ESync的加速效果。如图10所示,将异构程度从1:1(等价于SSGD)增大至150:1时,ESync的加速效果不断提高,在异构程度继续增大至300:1时,训练曲线相比150:1没有明显变化,加速效果趋于饱和。结果表明,集群的异构程度越高,本方案所提的服务器系统及所有同步训练方法取得的加速效果越明显,因此适用于强异构的集群环境。
最后对本方案的同步训练方法能够显著减小网络传输压力的效果进行说明:
现有的ASGD和DC-ASGD等异步方法在完成计算后即时传输数据,通信频率高,给网络带来较高的传输压力。本方案基于计算服务器实现的同步训练方法ESync通过本地累积并延迟传输计算结果,可以有效减小网络中每秒需要传输的数据量,减小网络的传输压力,提高通信效率,从而加速模型训练。
实验统计并比较了ESync算法与SSGD、ASGD以及DC-ASGD对比算法每秒传输的平均流量大小,图11表明,ESync能够有效减少每秒需要传输的数据量,从而减小网络的传输压力。
Claims (10)
1.基于分布式机器学习的同步训练方法,其特征在于,该训练方法应用于状态查询服务器,其包括:
B1、监听来自参与机构的计算服务器的状态查询消息,若接收到,解析消息中的节点状态,并执行B2。
B2、更新状态数据库中当前计算服务器的状态,并检索状态数据库,找到最慢的参与机构s,读取其计算服务器的状态;
B3、判断当前计算服务器的本地更新计数器是否为零,或者其记录的全局训练轮数是否大于参与机构s的计算服务器的全局训练轮数,若是,进入步骤B7,否则执行步骤B4;
B5、判断当前计算服务器是否就是参与机构s的计算服务器,参与机构s的计算服务器的下一动作是否为立即全局聚合,参与机构s的计算服务器的本地更新计数器是否为1,当前计算服务器完成一次本地计算所需的时间是否大于若四个条件中任一成立,则进入步骤B6,若均不成立则执行步骤B7;
B6、更新状态数据库中当前计算服务器的下一动作为立即全局聚合,并将下一动作返回给当前计算服务器,之后进入步骤B1;
B7、更新状态数据库中当前计算服务器的下一动作为继续本地计算,并将下一动作返回给当前计算服务器,之后进入步骤B1。
2.根据权利要求1所述的基于分布式机器学习的同步训练方法,其特征在于,所述节点状态包括k,tk,Ck,Tk,rk,其分别为参与机构的编号、本地更新次数、计算能力、完成上一次本地更新时的时间戳和全局训练轮数;
所述状态查询消息的结构包括发送方标识、接收方标识、消息类型、节点状态以及下一动作;消息类型为状态重置消息reset、状态报告消息report、状态查询消息query或状态响应消息response;
下一动作为继续本地计算compute、立即全局聚合aggregate或无动作null;节点状态包括参与机构标识rank、本地更新次数iteration、全局训练轮数round、计算能力capacity和上一次本地更新的完成时间timestamp;
状态报告消息、状态重置消息和状态响应消息的结构与状态查询消息的结构相同。
3.根据权利要求1或2所述的基于分布式机器学习的同步训练方法,其特征在于,当状态查询服务器监听的消息为计算服务器的状态报告消息时,其还包括:
解析状态报告消息中的节点状态,若当前计算服务器第一个进入新的训练轮数,则更新状态数据库中所有计算服务器的本地更新次数为零,下一动作为继续本地计算;
之后,使用接收的状态报告消息中的节点状态更新状态数据库中当前计算服务器的全局训练轮数和完成上一次本地更新时的时间戳;
当状态查询服务器监听的消息为计算服务器的状态重置消息时,其还包括:
解析状态重置消息中的机构数量K,在状态数据库中创建K个计算服务器的状态记录,初始化第k(k=1,2,…,K)个计算服务器的状态记录为:参与机构标识Rank=k,本地更新次数Iteration=0,计算能力Capacity=0,上一次本地更新的完成时间Timestamp=0,全局训练轮数Round=0,下一动作为继续本地计算。
4.基于分布式机器学习的同步训练方法,其特征在于,该训练方法应用于计算服务器,其包括:
S1、初始化计算服务器的节点状态,并读取中心机构的参数服务器中的全局模型参数作为初始本地模型参数;
S2、向中心机构的状态查询服务器发送状态查询消息,并接收状态查询服务器采用权利要求1或2所述同步训练方法输出的下一动作;
S3、判断下一动作是否为继续本地计算,若是,记录当前系统时间,并进入步骤S4,否则执行步骤S6;
S4、在参与机构的数据库服务器中顺序采样若干训练样本,并使用小批量随机梯度下降法更新本地模型参数,在执行本步骤设定次数后进入步骤S5;
S5、记录当前系统时间为完成上一次本地更新的时间,并将本步骤与步骤S3的时间差作为计算服务器的实时计算能力,之后将本地更新计数器累加一次,并返回步骤S2;
S6、根据本地模型参数和初始本地模型参数计算模型更新,并发送给参数服务器用于计算全局模型更新;
S7、将全局训练轮数累加一次,重置本地更新计数器为0,之后判断全局训练轮数是否达到设定最大训练轮数,若是结束算法,否则进入步骤S8;
S8、读取参数服务器中最新的全局模型参数作为初始本地模型参数,并记录当前系统时间后向状态查询服务器发送状态报告消息,之后返回步骤S2。
5.根据权利要求4所述的基于分布式机器学习的同步训练方法,其特征在于,所述设定次数为1次或者为Enk/b次,b为每次采样的训练样本数;E为遍历整个训练数据集的次数;nk为参与机构k的训练样本总数量。
6.基于分布式机器学习的同步训练方法,其特征在于,该训练方法应用于参数服务器,其包括:
A1、初始化全局训练轮数为0,随机初始化全局模型参数,清除全局模型更新缓存;
A2、发送全局模型参数至所有参与机构的计算服务器,并接收计算服务器根据权利要求4或5所述的同步训练方法输出的模型更新,每接收到一个模型更新,将其聚合到全局模型更新,当所有计算服务器均已上传模型更新时,进入步骤A3;
A3、根据当前全局模型参数和全局模型更新,计算新的全局模型参数,之后将全局训练轮数累加一次;
A4、判断全局训练轮数是否达到设定最大训练轮数,若是,输出最新全局模型参数,否则返回步骤A2;
聚合到全局模型更新的计算公式为:
7.状态查询服务器,其特征在于,状态查询服务器上存储有基于分布式机器学习的同步训练程序,所述基于分布式机器学习的同步训练程序被执行时实现权利要求1-3任一所述的基于分布式机器学习的同步训练方法的步骤。
8.计算服务器,其特征在于,计算服务器上存储有基于分布式机器学习的同步训练程序,所述基于分布式机器学习的同步训练程序被执行时实现权利要求4或5所述的基于分布式机器学习的同步训练方法的步骤。
9.基于分布式机器学习的同步训练服务器系统,其特征在于,包括中心机构和与所述中心机构通过广域网连接的若干参与机构;所述中心机构包括执行权利要求6所述的一个或多个参数服务器和权利要求7所述的一个状态查询服务器;所述参与机构包括存储有训练数据集的数据库服务器和权利要求8所述的计算服务器。
10.根据权利要求9所述的基于分布式机器学习的同步训练服务器系统,其特征在于,所述状态查询服务器包括:
消息接收器,用于接收参与机构的计算服务器的状态查询消息、状态报告消息或状态重置消息,并对消息进行转换后发送给FIFO消息队列;
FIFO消息队列,用于缓存来自消息接收器转换后的消息,并在接收到新消息时通知消息路由器取出消息;
消息路由器,用于监听FIFO消息队列的新消息,取出FIFO消息队列中队头的消息,之后基于取出消息的类型,路由消息至相应处理器;
状态查询处理器,根据状态查询消息,实现权利要求1-3任一所述的基于分布式机器学习的同步训练方法的步骤;
状态报告处理器,用于处理状态报告消息,并将状态报告消息中的最新计算服务器状态写入状态数据库中;
状态重置处理器,用于处理状态重置消息,并重置状态数据库中记录的计算服务器状态;
消息发送器,用于接收状态查询处理器决策的下一动作,并封装下一动作到状态响应消息中,之后发送状态响应消息到查询机构的计算服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010254049.5A CN111444021B (zh) | 2020-04-02 | 2020-04-02 | 基于分布式机器学习的同步训练方法、服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010254049.5A CN111444021B (zh) | 2020-04-02 | 2020-04-02 | 基于分布式机器学习的同步训练方法、服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111444021A true CN111444021A (zh) | 2020-07-24 |
CN111444021B CN111444021B (zh) | 2023-03-24 |
Family
ID=71654901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010254049.5A Active CN111444021B (zh) | 2020-04-02 | 2020-04-02 | 基于分布式机器学习的同步训练方法、服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444021B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111967613A (zh) * | 2020-08-24 | 2020-11-20 | 浙江百应科技有限公司 | Nlp模型训练发布识别系统 |
CN113033712A (zh) * | 2021-05-21 | 2021-06-25 | 华中科技大学 | 一种基于联邦学习的多用户协同训练人流统计方法及系统 |
CN113128700A (zh) * | 2021-03-23 | 2021-07-16 | 同盾控股有限公司 | 安全多方计算的联邦模型训练加速的方法和系统 |
CN113391897A (zh) * | 2021-06-15 | 2021-09-14 | 电子科技大学 | 一种面向异构场景的联邦学习训练加速方法 |
CN113656494A (zh) * | 2021-07-27 | 2021-11-16 | 中南大学 | 参数服务器的同步方法、系统及可读存储介质 |
CN114418127A (zh) * | 2022-03-23 | 2022-04-29 | 阿里云计算有限公司 | 机器学习计算优化方法和平台 |
CN114547690A (zh) * | 2022-02-24 | 2022-05-27 | 深圳市裕熙科技有限公司 | 基于大数据和边缘计算的信息安全风险管理系统 |
CN114866429A (zh) * | 2022-04-28 | 2022-08-05 | 中国科学技术大学苏州高等研究院 | 联合路由决策和网内聚合的分布式模型训练方法和装置 |
WO2023030221A1 (zh) * | 2021-08-30 | 2023-03-09 | 华为技术有限公司 | 一种通信方法及装置 |
CN113656494B (zh) * | 2021-07-27 | 2024-06-07 | 中南大学 | 参数服务器的同步方法、系统及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714852A (zh) * | 2015-03-17 | 2015-06-17 | 华中科技大学 | 一种适用于分布式机器学习的参数同步优化方法及其系统 |
US20180018590A1 (en) * | 2016-07-18 | 2018-01-18 | NantOmics, Inc. | Distributed Machine Learning Systems, Apparatus, and Methods |
CN109325541A (zh) * | 2018-09-30 | 2019-02-12 | 北京字节跳动网络技术有限公司 | 用于训练模型的方法和装置 |
CN110084378A (zh) * | 2019-05-07 | 2019-08-02 | 南京大学 | 一种基于本地学习策略的分布式机器学习方法 |
US20200027022A1 (en) * | 2019-09-27 | 2020-01-23 | Satish Chandra Jha | Distributed machine learning in an information centric network |
US20200034747A1 (en) * | 2018-07-25 | 2020-01-30 | Kabushiki Kaisha Toshiba | System and method for distributed learning |
-
2020
- 2020-04-02 CN CN202010254049.5A patent/CN111444021B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714852A (zh) * | 2015-03-17 | 2015-06-17 | 华中科技大学 | 一种适用于分布式机器学习的参数同步优化方法及其系统 |
US20180018590A1 (en) * | 2016-07-18 | 2018-01-18 | NantOmics, Inc. | Distributed Machine Learning Systems, Apparatus, and Methods |
US20200034747A1 (en) * | 2018-07-25 | 2020-01-30 | Kabushiki Kaisha Toshiba | System and method for distributed learning |
CN109325541A (zh) * | 2018-09-30 | 2019-02-12 | 北京字节跳动网络技术有限公司 | 用于训练模型的方法和装置 |
CN110084378A (zh) * | 2019-05-07 | 2019-08-02 | 南京大学 | 一种基于本地学习策略的分布式机器学习方法 |
US20200027022A1 (en) * | 2019-09-27 | 2020-01-23 | Satish Chandra Jha | Distributed machine learning in an information centric network |
Non-Patent Citations (1)
Title |
---|
赵健 等: "群体智能2.0研究综述", 《计算机工程》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111967613A (zh) * | 2020-08-24 | 2020-11-20 | 浙江百应科技有限公司 | Nlp模型训练发布识别系统 |
CN113128700A (zh) * | 2021-03-23 | 2021-07-16 | 同盾控股有限公司 | 安全多方计算的联邦模型训练加速的方法和系统 |
CN113033712A (zh) * | 2021-05-21 | 2021-06-25 | 华中科技大学 | 一种基于联邦学习的多用户协同训练人流统计方法及系统 |
CN113033712B (zh) * | 2021-05-21 | 2021-09-14 | 华中科技大学 | 一种基于联邦学习的多用户协同训练人流统计方法及系统 |
CN113391897A (zh) * | 2021-06-15 | 2021-09-14 | 电子科技大学 | 一种面向异构场景的联邦学习训练加速方法 |
CN113656494A (zh) * | 2021-07-27 | 2021-11-16 | 中南大学 | 参数服务器的同步方法、系统及可读存储介质 |
CN113656494B (zh) * | 2021-07-27 | 2024-06-07 | 中南大学 | 参数服务器的同步方法、系统及可读存储介质 |
WO2023030221A1 (zh) * | 2021-08-30 | 2023-03-09 | 华为技术有限公司 | 一种通信方法及装置 |
CN114547690A (zh) * | 2022-02-24 | 2022-05-27 | 深圳市裕熙科技有限公司 | 基于大数据和边缘计算的信息安全风险管理系统 |
CN114547690B (zh) * | 2022-02-24 | 2024-05-14 | 深圳市裕熙科技有限公司 | 基于大数据和边缘计算的信息安全风险管理系统 |
CN114418127A (zh) * | 2022-03-23 | 2022-04-29 | 阿里云计算有限公司 | 机器学习计算优化方法和平台 |
CN114866429A (zh) * | 2022-04-28 | 2022-08-05 | 中国科学技术大学苏州高等研究院 | 联合路由决策和网内聚合的分布式模型训练方法和装置 |
CN114866429B (zh) * | 2022-04-28 | 2023-07-18 | 中国科学技术大学苏州高等研究院 | 联合路由决策和网内聚合的分布式模型训练方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111444021B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111444021B (zh) | 基于分布式机器学习的同步训练方法、服务器及系统 | |
US11411825B2 (en) | In intelligent autoscale of services | |
US20190065954A1 (en) | Memory bandwidth management for deep learning applications | |
US7739331B2 (en) | Method and apparatus for providing load diffusion in data stream correlations | |
CN109885397B (zh) | 一种边缘计算环境中时延优化的负载任务迁移算法 | |
US9354938B2 (en) | Sequential cooperation between map and reduce phases to improve data locality | |
Subramanya et al. | Machine learning-driven scaling and placement of virtual network functions at the network edges | |
CN114039918B (zh) | 一种信息年龄优化方法、装置、计算机设备及存储介质 | |
CN108491255B (zh) | 自助式MapReduce数据优化分配方法及系统 | |
US10521258B2 (en) | Managing test services in a distributed production service environment | |
US11233704B2 (en) | Machine learning based end to end system for tcp optimization | |
US11695674B2 (en) | Estimation of network quality metrics from network request data | |
CN112148484A (zh) | 一种基于耦合度的微服务在线分配方法与系统 | |
CN113515351A (zh) | 一种基于能耗与QoS协同优化的资源调度实现方法 | |
Liu et al. | Glint: Decentralized federated graph learning with traffic throttling and flow scheduling | |
CN112258321B (zh) | 区块链分片的交易放置方法 | |
Mays et al. | Decentralized data allocation via local benchmarking for parallelized mobile edge learning | |
CN114866489A (zh) | 拥塞控制方法和装置及拥塞控制模型的训练方法和装置 | |
Wu et al. | KAFL: achieving high training efficiency for fast-k asynchronous federated learning | |
CN102158357B (zh) | 水平分解的单类闭合分叉汇集排队网络性能的分析方法 | |
Liu et al. | On the performance of a hybrid network traffic model | |
CN115396319B (zh) | 数据流分片方法、装置、设备及存储介质 | |
CN115774736B (zh) | 一种数据延迟发送的numa架构时变图处理方法与装置 | |
De Aquino et al. | On the use data reduction algorithms for real-time wireless sensor networks | |
Byholm et al. | Cost-efficient, utility-based caching of expensive computations in the cloud |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |