CN112333234B - 分布式机器学习训练方法、装置、电子设备及存储介质 - Google Patents
分布式机器学习训练方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112333234B CN112333234B CN202011010636.6A CN202011010636A CN112333234B CN 112333234 B CN112333234 B CN 112333234B CN 202011010636 A CN202011010636 A CN 202011010636A CN 112333234 B CN112333234 B CN 112333234B
- Authority
- CN
- China
- Prior art keywords
- machine learning
- learning model
- priority
- computing 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本发明实施例提供一种分布式机器学习训练方法、装置、电子设备及存储介质,其中方法包括:确定待训练的机器学习模型,以及发往每一计算节点的数据的通信优先级,所述发往每一计算节点的数据的通信优先级是基于所述机器学习模型的模型结构和/或每一计算节点运行所述机器学习模型中对应训练任务的处理速度确定的;基于所述发往每一计算节点的数据的通信优先级,对所述机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练所述机器学习模型。本发明实施例提供的方法、装置、电子设备及存储介质,提高了机器学习模型训练的计算速度,提高了分布式系统中计算资源的利用率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种分布式机器学习训练方法、装置、电子设备及存储介质。
背景技术
当前,以分布式机器学习训练任务为代表的迭代同步应用在数据中心中非常流行。在迭代同步应用中,分布式系统中的多个计算节点以迭代方式执行计算任务,并在每次迭代中对各自的计算结果进行全局同步,只有当全局同步结束后,这些计算节点才能开始下一轮迭代计算。
然而,随着应用复杂度的增加,例如机器学习模型的参数量高达数亿时,分布式系统计算速度慢,计算资源利用率低。
从机器学习模型的训练角度看,机器学习的训练过程是对模型迭代优化,最终使得模型收敛的过程。在每次迭代训练中,使用训练数据进行前向传播计算得到模型在当前次迭代训练中的损失(loss),然后使用该损失进行反向传播计算得到模型的梯度。在下一次迭代训练时,使用被该梯度更新后的模型参数进行计算。机器学习模型通常具有层次化的特点,这就导致下一次迭代训练中的前向传播计算需要的参数顺序和上一次迭代训练中的反向传播计算得到的模型更新顺序是相反的,即下一次迭代训练中前向传播计算最需要的第一层参数在上一次迭代训练的反向传播计算中的最后才会被更新,由此推迟了下一次迭代计算开始的时间,浪费了计算资源。
从分布式系统的计算过程看,分布式机器学习训练一般采用批量同步并行(BulkSynchronous Parallel,BSP)的方式,在每次迭代中,所有计算节点之间都要进行参数同步。这就导致处理速度慢的计算节点成为拖慢整体训练速度的瓶颈,浪费了处理速度快的计算节点的计算资源。
发明内容
本发明实施例提供一种分布式机器学习训练方法、装置、电子设备及存储介质,用以解决现有技术中分布式系统计算速度慢,计算资源利用率低的问题。
第一方面,本发明实施例提供一种分布式机器学习训练方法,包括:
确定待训练的机器学习模型,以及发往每一计算节点的数据的通信优先级,所述发往每一计算节点的数据的通信优先级是基于所述机器学习模型的模型结构和/或每一计算节点运行所述机器学习模型中对应训练任务的处理速度确定的;
基于所述发往每一计算节点的数据的通信优先级,对所述机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练所述机器学习模型。
可选地,所述发往每一计算节点的数据的通信优先级的确定方法包括:
基于所述机器学习模型的模型结构,确定所述机器学习模型的阶段优先级;
和/或,基于每一计算节点运行所述机器学习模型中对应训练任务的处理速度,确定所述每一计算节点的节点优先级;
基于所述机器学习模型的阶段优先级和/或所述每一计算节点的节点优先级,确定所述发往每一计算节点的数据的通信优先级。
可选地,所述基于所述机器学习模型的模型结构,确定所述机器学习模型的阶段优先级,具体包括:
基于所述机器学习模型的模型结构,确定所述机器学习模型在单次迭代训练过程中每个计算阶段的模型参数;
基于每个计算阶段的模型参数与触发下一次迭代训练的关联性,确定所述机器学习模型的阶段优先级。
可选地,所述基于所述机器学习模型的阶段优先级和/或所述每一计算节点的节点优先级,确定所述发往每一计算节点的数据的通信优先级,具体包括:
基于所述机器学习模型的阶段优先级和/或所述每一计算节点的节点优先级,以及二维保序规则,确定发往所述每一计算节点的数据的通信优先级;
其中,所述二维保序规则包括:
所述发往每一计算节点的数据的通信优先级满足所述机器学习模型的阶段优先级和所述每一计算节点的节点优先级所指示的顺序关系。
可选地,所述基于所述发往每一计算节点的数据的通信优先级,对所述机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练所述机器学习模型,具体包括:
确定前一次迭代训练中每一计算节点运行所述机器学习模型中对应训练任务的迭代时间;
基于所述迭代时间,对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整,得到当前次迭代训练中发往每一计算节点的数据的通信优先级;
基于所述当前次迭代训练中发往每一计算节点的数据的通信优先级,对所述机器学习模型在当前次迭代训练过程中产生的数据流进行节点传输,以供每一计算节点基于调整后的数据的通信优先级执行所述机器学习模型的当前次迭代训练。
可选地,所述基于所述迭代时间,对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整,得到当前次迭代训练中发往每一计算节点的数据的通信优先级,具体包括:
根据所述迭代时间,采用贝叶斯优化算法对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整。
可选地,所述待训练的机器学习模型为深度学习模型,当所述深度学习模型采用数据并行的训练方式时,数据流表征所述深度学习模型的参数或者梯度,当所述深度学习模型采用模型并行的训练方式时,数据流表征输入至所述深度学习模型的特征。
第二方面,本发明实施例提供一种分布式机器学习训练装置,包括:
确定单元,用于确定待训练的机器学习模型,以及发往每一计算节点的数据的通信优先级,所述发往每一计算节点的数据的通信优先级是基于所述机器学习模型的模型结构和/或每一计算节点运行所述机器学习模型中对应训练任务的处理速度确定的;
训练单元,用于基于所述发往每一计算节点的数据的通信优先级,对所述机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练所述机器学习模型。
第三方面,本发明实施例提供一种电子设备,包括处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信,处理器可以调用存储器中的逻辑命令,以执行如第一方面所提供的列车制动方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的列车制动方法的步骤。
本发明实施例提供的分布式机器学习训练方法、装置、电子设备及存储介质,通过待训练的机器学习模型的模型结构和/或分布式系统中每一计算节点运行机器学习模型中对应训练任务的处理速度,确定发往每一计算节点的数据的通信优先级,对机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练机器学习模型,利用了分布式机器学习训练依赖于各个计算节点之间的通信,通过发往每一计算节点的数据的通信优先级,对能够促进计算尽早开始的数据流优先传输,减少了分布式系统中计算节点的闲置等待时间和计算完成时间,提高了机器学习模型训练的计算速度,提高了分布式系统中计算资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的分布式机器学习训练方法的流程示意图;
图2为本发明实施例提供的基于二维保序规则确定通信优先级的示意图;
图3为本发明实施例提供的现有技术中的分布式训练方法的效果示意图;
图4为本发明实施例提供的基于阶段优先级的分布式训练方法的效果示意图;
图5为本发明实施例提供的基于阶段优先级和节点优先级的分布式训练方法的效果示意图;
图6为本发明实施例提供的分布式机器学习训练装置的结构示意图;
图7为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的分布式机器学习训练方法的流程示意图,如图1所示,该方法包括:
步骤110,确定待训练的机器学习模型,以及发往每一计算节点的数据的通信优先级,发往每一计算节点的数据的通信优先级是基于机器学习模型的模型结构和/或每一计算节点运行机器学习模型中对应训练任务的处理速度确定的。
具体地,待训练的机器学习模型为具有层次化特点的模型,即模型结构可以分为若干层,每层所实现的功能由对应层的结构以及层内参数确定。机器学习模型的训练过程就是对模型中每层的参数进行调整的过程。常见的机器学习模型实例包括AlexNet、VGG(Visual Geometry Group)、Transformer、BERT(Bidirectional Encoder Representationfrom Transformers)等。可以采用分布式系统执行机器学习模型的训练任务。
分布式系统中的多个计算节点以迭代计算的方式共同执行机器学习模型的训练任务。计算节点为执行模型训练任务的服务器。计算节点可以为GPU(Graphics ProcessingUnit)服务器,也可以为CPU(Central Processing Unit)服务器。
利用分布式机器学习训练过程中,所有承担训练任务的计算节点之间需要进行相互通信的特点,可以设置发往每一计算节点的数据的通信优先级,从而在具体训练过程中基于发往每一计算节点的数据的通信优先级控制数据传输。此处,通信优先级为数据在分布式系统中各个计算节点之间进行传输的优先等级。发往每一计算节点的数据的通信优先级可以根据待训练的机器学习模型的模型结构确定,也可以根据每一计算节点运行机器学习模型中对应训练任务的处理速度确定,也可以结合机器学习模型的模型结构和计算节点的处理速度确定。
步骤120,基于发往每一计算节点的数据的通信优先级,对机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练机器学习模型。
具体地,机器学习模型的训练过程中,每一次迭代训练中机器学习模型都会生成不同的参数,参数的传递是通过计算节点之间的数据流实现的。
通过发往每一计算节点的数据的通信优先级,可以在各个计算节点之间优先传输能够促进下一次迭代训练尽早开始的数据流,保证高优先级的数据流可以尽早地被用来更新参数和高优先级的参数可以尽早地传输至相应的计算节点开始下一次迭代训练。
通过发往每一计算节点的数据的通信优先级,也可以根据分布式系统中每一计算节点运行机器学习模型中对应训练任务的处理速度,使处理速度慢的计算节点可以独享网络传输资源,即向处理速度慢的计算节点优先传输数据流,减少参数传输到处理速度慢的瓶颈计算节点所花费的时间,使其可以尽早地开始计算过程,同时将处理速度快的计算节点的参数传输过程和处理速度慢的计算节点的计算过程重叠起来,最终降低整体迭代训练时间。
本发明实施例提供的分布式机器学习训练方法,通过待训练的机器学习模型的模型结构和/或分布式系统中每一计算节点运行机器学习模型中对应训练任务的处理速度,确定发往每一计算节点的数据的通信优先级,对机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练机器学习模型,利用了分布式机器学习训练依赖于各个计算节点之间的通信,通过发往每一计算节点的数据的通信优先级,对能够促进计算尽早开始的数据流优先传输,减少了分布式系统中计算节点的闲置等待时间和计算完成时间,提高了机器学习模型训练的计算速度,提高了分布式系统中计算资源的利用率。
基于上述实施例,发往每一计算节点的数据的通信优先级的确定方法包括:
基于机器学习模型的模型结构,确定机器学习模型的阶段优先级;
和/或,基于每一计算节点运行机器学习模型中对应训练任务的处理速度,确定每一计算节点的节点优先级;
基于机器学习模型的阶段优先级和/或每一计算节点的节点优先级,确定发往每一计算节点的数据的通信优先级。
具体地,机器学习模型的阶段优先级为根据机器学习模型的模型结构确定的用于调度数据流的优先等级。
机器学习模型的模型结构分为若干层,相应的训练过程是逐层进行的,不同的层对应模型训练过程的不同阶段。按照模型结构,可以确定模型参数的计算阶段。能够促进下一次迭代训练尽早开始的计算阶段的模型参数应当具有较高的阶段优先级,被优先传输至相应的计算节点开始下一次迭代训练。
每一计算节点的节点优先级为根据每一计算节点运行机器学习模型中对应训练任务的处理速度确定的用于调度数据流的优先等级。
分布式系统中包含大量的计算节点。由于这些计算节点可能存在计算能力的差异,或不同计算节点被分配的计算任务量可能存在差异,不同计算节点完成一次迭代训练所需要的时间可能是不同的,即不同节点的处理速度存在差异。可以将传输至处理速度慢的计算节点的数据流设置为较高的节点优先级,即向处理速度慢的计算节点优先传输。
在分布式机器学习训练过程中,发往每一计算节点的数据的通信优先级可以为机器学习模型的阶段优先级,也可以为每一计算节点的节点优先级,也可以根据机器学习模型的阶段优先级和每一计算节点的节点优先级共同确定。
基于上述任一实施例,基于机器学习模型的模型结构,确定每一计算节点的阶段优先级,具体包括:
基于机器学习模型的模型结构,确定机器学习模型在单次迭代训练过程中每个计算阶段的模型参数;
基于每个计算阶段的模型参数与触发下一次迭代训练的关联性,确定机器学习模型的阶段优先级。
具体地,在单次迭代训练过程中,根据机器学习模型的模型结构,确定每个计算阶段的模型参数,即模型结构中每一层生成的参数。
任一计算阶段的模型参数与触发下一次迭代训练的关联性用于衡量该计算阶段的模型参数是否能够触发下一次迭代训练尽早开始。对于任一计算阶段的模型参数,若模型参数能够促进下一次迭代训练尽早开始,则认为该模型参数与下一次迭代训练过程的关联程度很高,则该模型参数对于计算节点具有的较高的阶段优先级。
基于上述任一实施例,基于机器学习模型的阶段优先级和/或每一计算节点的节点优先级,确定发往每一计算节点的数据的通信优先级,具体包括:
基于机器学习模型的阶段优先级和每一计算节点的节点优先级,以及二维保序规则,确定发往每一计算节点的数据的通信优先级;
其中,二维保序规则包括:
发往每一计算节点的数据的通信优先级满足机器学习模型的阶段优先级和每一计算节点的节点优先级所指示的顺序关系。
具体地,机器学习模型的阶段优先级是根据机器学习模型的模型结构确定的,每一计算节点的节点优先级是根据分布式系统中计算节点的处理速度确定的。在分布式机器学习训练过程中,机器学习模型的阶段优先级和每一计算节点的节点优先级可能会导致计算节点之间的数据流传输存在相互影响。
二维保序规则为根据机器学习模型的阶段优先级和每一计算节点的节点优先级确定发往每一计算节点的数据的通信优先级的排序规则表,用于消除阶段优先级和节点优先级之间的数据流传输冲突。
二维保序规则包括:发往每一计算节点的数据的通信优先级满足机器学习模型的阶段优先级的顺序关系,即对于同一计算节点,较早计算阶段的模型参数对应的数据流传输优先级不低于较晚计算阶段的模型参数。
二维保序规则还包括:发往每一计算节点的数据的通信优先级满足每一计算节点的节点优先级的顺序关系,即对于同一计算阶段的模型参数,其对应的数据流传输至处理速度较慢的计算节点的优先级不低于传输至处理速度较快的计算节点的优先级。
图2为本发明实施例提供的基于二维保序规则确定通信优先级的示意图,如图2所示,该分布式机器学习训练中,按照模型结构可以划分为6个阶段优先级,按照优先级高低的顺序分别为阶段优先级1、阶段优先级2、阶段优先级3、阶段优先级4、阶段优先级5和阶段优先级6。按照计算节点的处理速度可以划分为4个节点优先级,按照优先级高低的顺序分别为节点优先级1、节点优先级2、节点优先级3和节点优先级4。根据二维保序规则,发往每一计算节点的数据的通信优先级可以按图中的优先级确定。
基于上述任一实施例,基于发往每一计算节点的数据的通信优先级,对机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练机器学习模型,具体包括:
确定前一次迭代训练中每一计算节点运行机器学习模型中对应训练任务的迭代时间;
基于迭代时间,对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整,得到当前次迭代训练中发往每一计算节点的数据的通信优先级;
基于当前次迭代训练中发往每一计算节点的数据的通信优先级,对机器学习模型在当前次迭代训练过程中产生的数据流进行节点传输,以供每一计算节点基于调整后的通信优先级执行机器学习模型的当前次迭代训练。
具体地,在分布式机器学习训练过程中,机器学习模型的训练过程是通过多次迭代训练实现的。可以根据前一次迭代训练中每一计算节点运行机器学习模型中对应训练任务的迭代时间对当前次迭代训练中发往每一计算节点的数据的通信优先级进行调整。
前一次迭代训练中每一计算节点运行训练任务的迭代时间至少包括每一计算节点的闲置等待时间和计算完成时间,可以用来表征机器学习模型训练的计算速度。
基于迭代时间,对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整,可以得到当前次迭代训练中发往每一计算节点的数据的通信优先级,进而对机器学习模型在当前次迭代训练过程中产生的数据流进行节点传输,以供每一计算节点基于调整后的通信优先级执行机器学习模型的当前次迭代训练。
基于上述任一实施例,基于迭代时间,对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整,得到当前次迭代训练中发往每一计算节点的数据的通信优先级,具体包括:
根据迭代时间,采用贝叶斯优化算法对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整。
具体地,采用贝叶斯优化算法对前一次迭代训练中发往每一计算节点的数据的通信优先级进行优化,当迭代时间收敛或探索次数超过预设值时,将所探索到的最终结果作为当前次迭代训练中发往每一计算节点的数据的通信优先级,对机器学习模型在当前次迭代训练过程中产生的数据流进行节点传输,以供每一计算节点基于调整后的通信优先级执行机器学习模型的当前次迭代训练。
除采用贝叶斯优化算法外,还可以自定义优化规则,对前一次迭代训练中发往每一计算节点的数据的通信优先级进行优化,将优化后得到的发往每一计算节点的数据的通信优先级作为当前次迭代训练中发往每一计算节点的数据的通信优先级。
基于上述任一实施例,待训练的机器学习模型为深度学习模型,当深度学习模型采用数据并行的训练方式时,数据流表征深度学习模型的参数或者梯度,当深度学习模型采用模型并行的训练方式时,数据流表征输入至深度学习模型的特征。
具体地,将深度学习模型用于执行图像识别任务时,模型种类可以选择卷积神经网络。该卷积神经网络的模型结构可以分为3层,即输入层、隐藏层和输出层,此处输入层的输入为待分类的图像,输出为图像的编码特征,隐藏层的输入为图像的编码特征,输出为图像的隐层特征,输出层的输入为图像的隐层特征,输出为图像的分类结果。
当采用数据并行的训练方式时,数据流表征卷积神经网络的参数或者梯度,当采用模型并行的训练方式时,数据流表征输入至卷积神经网络的图像的编码特征和图像的隐层特征。
下面通过对采用卷积神经网络的图像识别模型进行分布式机器学习训练的示例来说明。训练方式为数据并行。在该模型的训练中,每一层会生成图像特征的参数和梯度。其中,每一层生成的参数向前传递,每一层生成的梯度向后传递。执行训练任务的分布式系统包括2个计算节点,共同使用一个带宽进行数据流传递。
该模型的分布式机器学习训练共采用3种方法进行,分别为现有技术中的分布式训练方法、基于阶段优先级的分布式训练方法,以及基于阶段优先级和节点优先级的分布式训练方法。
图3为本发明实施例提供的现有技术中的分布式训练方法的效果示意图,如图3所示,计算节点1执行训练任务的过程用实线表示,计算节点2执行训练任务的过程用虚线表示。采用现有技术中的分布式训练方法,下一次迭代训练中的前向计算需要的参数和当前次迭代训练中的后向传播计算得到的梯度的传输顺序是相反的,即下一次迭代训练中前向计算最需要的第3层梯度在当前次迭代训练的反向计算结束后才会被更新,由此推迟了下一次迭代训练开始的时间,浪费了计算资源,使得单次迭代训练时间超过了20秒。
图4为本发明实施例提供的基于阶段优先级的分布式训练方法的效果示意图,如图4所示,计算节点1执行训练任务的过程用实线表示,计算节点2执行训练任务的过程用虚线表示。采用基于阶段优先级的分布式训练方法,根据图像识别模型的阶段优先级确定发往每一计算节点的数据的通信优先级。通过对模型结构进行分析,确定第1层前向计算阶段的参数能够促进下一次迭代训练尽早开始,第2层前向计算阶段次之。因此,可以确定图像识别模型的阶段优先级,对当前次迭代训练过程中产生的数据流进行节点传输,以供计算节点1和2基于接收到的数据流训练模型,最终使得单次迭代训练时间缩短至17秒。
图5为本发明实施例提供的基于阶段优先级和节点优先级的分布式训练方法的效果示意图,如图5所示,计算节点1执行训练任务的过程用实线表示,计算节点2执行训练任务的过程用虚线表示。由上述训练过程可知,计算节点1执行训练任务的处理速度慢于计算节点2。因此,可以设置计算节点1的节点优先级高于计算节点2。根据二维保序规则,以及图像识别模型的阶段优先级和每一计算节点的节点优先级,确定发往每一计算节点的数据的通信优先级。在执行当前次迭代训练任务时,计算节点1可以占用所有带宽,优先接收数据流,尽早开始计算过程,最终使得单次迭代训练时间缩短至16秒。
基于上述任一实施例,本发明实施例提供一种迭代同步应用,该应用采用TensorFlow框架实现,采用上述任一实施例中的分布式机器学习训练方法,分别对AlexNet、VGG-16、VGG-19和OverFeat等常见的机器学习模型进行测试,并和标准的TensorFlow分布式训练以及两种端主机侧调度方案TicTac和ByteScheduler进行比较,即对于上述任一机器学习模型,分别采用本发明实施例提供的分布式机器学习训练方法、标准的TensorFlow分布式训练方法、端主机侧调度方案TicTac和端主机侧调度方案ByteScheduler进行模型训练。
运行该迭代同步应用的分布式系统为使用RoCEv2传输协议互联的16台服务器组成的GPU集群,其中12台服务器上均采用1块Nvidia Tesla K40 GPU,另外4台服务器上均采用1块Nvidia Tesla P100 GPU。
上述模型训练方法均采用相同的超参数设置,保证模型的收敛性不受影响。对比指标为不同方法的训练吞吐,即单位时间内训练的图片数量,以及分布式系统的扩展效率。
实验结果表明,在25G网络环境下,相比于标准的TensorFlow分布式训练,本发明实施例提供的分布式机器学习训练方法可将训练吞吐提高98%~253%;相比于端主机侧调度方案TicTac和ByteScheduler,本发明实施例提供的分布式机器学习训练方法分别将训练吞吐提高97%~252%和15%~47%。扩展效率方面,相比于标准的TensorFlow分布式训练,本发明实施例提供的分布式机器学习训练方法可将16节点的扩展效率从50%以下提高至90%以上。
基于上述任一实施例,图6为本发明实施例提供的分布式机器学习训练装置的结构示意图,如图6所示,该装置包括:
确定单元610,用于确定待训练的机器学习模型,以及发往每一计算节点的数据的通信优先级,发往每一计算节点的数据的通信优先级是基于机器学习模型的模型结构和/或每一计算节点运行机器学习模型中对应训练任务的处理速度确定的;
训练单元620,用于基于发往每一计算节点的数据的通信优先级,对机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练机器学习模型。
具体地,确定单元610用于根据待训练的机器学习模型的模型结构和/或每一计算节点运行机器学习模型中对应训练任务的处理速度确定运行机器学习模型的发往每一计算节点的数据的通信优先级。训练单元620根据确定单元610确定的发往每一计算节点的数据的通信优先级,对机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练机器学习模型。
本发明实施例提供的分布式机器学习训练装置,通过待训练的机器学习模型的模型结构和/或分布式系统中每一计算节点运行机器学习模型中对应训练任务的处理速度,确定发往每一计算节点的数据的通信优先级,对机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练机器学习模型,利用了分布式机器学习训练依赖于各个计算节点之间的通信,通过发往每一计算节点的数据的通信优先级,对能够促进计算尽早开始的数据流优先传输,减少了分布式系统中计算节点的闲置等待时间和计算完成时间,提高了机器学习模型训练的计算速度,提高了分布式系统中计算资源的利用率。
基于上述任一实施例,确定单元610包括阶段优先级确定子单元、节点优先级确定子单元和通信优先级确定子单元,其中:
阶段优先级确定子单元,用于基于机器学习模型的模型结构,确定机器学习模型的阶段优先级;
节点优先级确定子单元,用于基于每一计算节点运行机器学习模型中对应训练任务的处理速度,确定每一计算节点的节点优先级;
通信优先级确定子单元,用于基于机器学习模型的阶段优先级和/或每一计算节点的节点优先级,确定发往每一计算节点的数据的通信优先级。
基于上述任一实施例,阶段优先级确定子单元,具体用于:
基于机器学习模型的模型结构,确定机器学习模型在单次迭代训练过程中每个计算阶段的模型参数;
基于每个计算阶段的模型参数与触发下一次迭代训练的关联性,确定机器学习模型的阶段优先级。
基于上述任一实施例,通信优先级确定子单元,具体用于:
基于机器学习模型的阶段优先级和每一计算节点的节点优先级,以及二维保序规则,确定发往每一计算节点的数据的通信优先级;
其中,二维保序规则包括:
发往每一计算节点的数据的通信优先级满足机器学习模型的阶段优先级和每一计算节点的节点优先级所指示的顺序关系。
基于上述任一实施例,训练单元620具体包括:
迭代时间确定子单元,用于确定前一次迭代训练中每一计算节点运行机器学习模型中对应训练任务的迭代时间;
通信优先级调整子单元,用于基于迭代时间,对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整,得到当前次迭代训练中发往每一计算节点的数据的通信优先级;
节点传输子单元,用于基于当前次迭代训练中发往每一计算节点的数据的通信优先级,对机器学习模型在当前次迭代训练过程中产生的数据流进行节点传输,以供每一计算节点基于调整后的数据的通信优先级执行机器学习模型的当前次迭代训练。
基于上述任一实施例,通信优先级调整子单元具体用于:
根据迭代时间,采用贝叶斯优化算法对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整。
基于上述任一实施例,待训练的机器学习模型为深度学习模型,当深度学习模型采用数据并行的训练方式时,数据流表征深度学习模型的参数或者梯度,当深度学习模型采用模型并行的训练方式时,数据流表征输入至深度学习模型的特征。
图7为本发明实施例提供的电子设备的结构示意图,如图7所示,该电子设备可以包括:处理器(Processor)710、通信接口(Communications Interface)720、存储器(Memory)730和通信总线(Communications Bus)740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑命令,以执行如下方法:
确定待训练的机器学习模型,以及发往每一计算节点的数据的通信优先级,发往每一计算节点的数据的通信优先级是基于机器学习模型的模型结构和/或每一计算节点运行机器学习模型中对应训练任务的处理速度确定的;基于发往每一计算节点的数据的通信优先级,对机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练机器学习模型。
此外,上述的存储器730中的逻辑命令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:
确定待训练的机器学习模型,以及发往每一计算节点的数据的通信优先级,发往每一计算节点的数据的通信优先级是基于机器学习模型的模型结构和/或每一计算节点运行机器学习模型中对应训练任务的处理速度确定的;基于发往每一计算节点的数据的通信优先级,对机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练机器学习模型。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种分布式机器学习训练方法,其特征在于,包括:
确定待训练的机器学习模型,以及发往每一计算节点的数据的通信优先级,所述发往每一计算节点的数据的通信优先级是基于所述机器学习模型的模型结构和/或每一计算节点运行所述机器学习模型中对应训练任务的处理速度确定的;
基于所述发往每一计算节点的数据的通信优先级,对所述机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练所述机器学习模型;
所述发往每一计算节点的数据的通信优先级的确定方法包括:
基于所述机器学习模型的模型结构,确定所述机器学习模型的阶段优先级;
和/或,基于每一计算节点运行所述机器学习模型中对应训练任务的处理速度,确定所述每一计算节点的节点优先级;
基于所述机器学习模型的阶段优先级和/或所述每一计算节点的节点优先级,确定所述发往每一计算节点的数据的通信优先级;
所述基于所述机器学习模型的模型结构,确定所述机器学习模型的阶段优先级,具体包括:
基于所述机器学习模型的模型结构,确定所述机器学习模型在单次迭代训练过程中每个计算阶段的模型参数;
基于每个计算阶段的模型参数与触发下一次迭代训练的关联性,确定所述机器学习模型的阶段优先级。
2.根据权利要求1所述的分布式机器学习训练方法,其特征在于,所述基于所述机器学习模型的阶段优先级和/或所述每一计算节点的节点优先级,确定所述发往每一计算节点的数据的通信优先级,具体包括:
基于所述机器学习模型的阶段优先级和所述每一计算节点的节点优先级,以及二维保序规则,确定发往所述每一计算节点的数据的通信优先级;
其中,所述二维保序规则包括:
所述发往每一计算节点的数据的通信优先级满足所述机器学习模型的阶段优先级和所述每一计算节点的节点优先级所指示的顺序关系。
3.根据权利要求1或2所述的分布式机器学习训练方法,其特征在于,所述基于所述发往每一计算节点的数据的通信优先级,对所述机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练所述机器学习模型,具体包括:
确定前一次迭代训练中每一计算节点运行所述机器学习模型中对应训练任务的迭代时间;
基于所述迭代时间,对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整,得到当前次迭代训练中发往每一计算节点的数据的通信优先级;
基于所述当前次迭代训练中发往每一计算节点的数据的通信优先级,对所述机器学习模型在当前次迭代训练过程中产生的数据流进行节点传输,以供每一计算节点基于调整后的数据的通信优先级执行所述机器学习模型的当前次迭代训练。
4.根据权利要求3所述的分布式机器学习训练方法,其特征在于,所述基于所述迭代时间,对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整,得到当前次迭代训练中发往每一计算节点的数据的通信优先级,具体包括:
根据所述迭代时间,采用贝叶斯优化算法对前一次迭代训练中发往每一计算节点的数据的通信优先级进行调整。
5.根据权利要求1或2所述的分布式机器学习训练方法,其特征在于,所述待训练的机器学习模型为深度学习模型,当所述深度学习模型采用数据并行的训练方式时,数据流表征所述深度学习模型的参数或者梯度,当所述深度学习模型采用模型并行的训练方式时,数据流表征输入至所述深度学习模型的特征。
6.一种分布式机器学习训练装置,其特征在于,包括:
确定单元,用于确定待训练的机器学习模型,以及发往每一计算节点的数据的通信优先级,所述发往每一计算节点的数据的通信优先级是基于所述机器学习模型的模型结构和/或每一计算节点运行所述机器学习模型中对应训练任务的处理速度确定的;
训练单元,用于基于所述发往每一计算节点的数据的通信优先级,对所述机器学习模型在训练过程中产生的数据流进行节点传输,以供每一计算节点基于接收到的数据流训练所述机器学习模型;
所述确定单元,包括阶段优先级确定子单元、节点优先级确定子单元和通信优先级确定子单元;
阶段优先级确定子单元,用于基于所述机器学习模型的模型结构,确定所述机器学习模型的阶段优先级;
节点优先级确定子单元,用于基于每一计算节点运行所述机器学习模型中对应训练任务的处理速度,确定所述每一计算节点的节点优先级;
通信优先级确定子单元,用于基于所述机器学习模型的阶段优先级和/或所述每一计算节点的节点优先级,确定所述发往每一计算节点的数据的通信优先级;
所述阶段优先级确定子单元,具体用于基于所述机器学习模型的模型结构,确定所述机器学习模型在单次迭代训练过程中每个计算阶段的模型参数;基于每个计算阶段的模型参数与触发下一次迭代训练的关联性,确定所述机器学习模型的阶段优先级。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的分布式机器学习训练方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的分布式机器学习训练方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011010636.6A CN112333234B (zh) | 2020-09-23 | 2020-09-23 | 分布式机器学习训练方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011010636.6A CN112333234B (zh) | 2020-09-23 | 2020-09-23 | 分布式机器学习训练方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112333234A CN112333234A (zh) | 2021-02-05 |
CN112333234B true CN112333234B (zh) | 2021-09-24 |
Family
ID=74303993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011010636.6A Active CN112333234B (zh) | 2020-09-23 | 2020-09-23 | 分布式机器学习训练方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112333234B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568586B (zh) * | 2021-09-17 | 2021-12-17 | 支付宝(杭州)信息技术有限公司 | 用于分布式图学习架构的数据存取方法及装置 |
CN116596091B (zh) * | 2022-11-08 | 2024-02-02 | 北京百度网讯科技有限公司 | 模型训练方法、装置、设备以及存储介质 |
JP7331288B1 (ja) | 2023-06-20 | 2023-08-22 | 株式会社インターネットイニシアティブ | 通信制御装置および通信制御方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107169513B (zh) * | 2017-05-05 | 2019-10-18 | 第四范式(北京)技术有限公司 | 控制数据使用顺序的分布式机器学习系统及其方法 |
CN111210020B (zh) * | 2019-11-22 | 2022-12-06 | 清华大学 | 一种加速分布式机器学习的方法及系统 |
-
2020
- 2020-09-23 CN CN202011010636.6A patent/CN112333234B/zh active Active
Non-Patent Citations (1)
Title |
---|
Rima: An RDMA-Accelerated Model-Parallelized Solution to Large-Scale Matrix Factorization;Jinkun Geng, Dan Li,Shuai Wang;《2019 IEEE 35th International Conference on Data Engineering (ICDE)》;20191231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112333234A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112333234B (zh) | 分布式机器学习训练方法、装置、电子设备及存储介质 | |
US20220391771A1 (en) | Method, apparatus, and computer device and storage medium for distributed training of machine learning model | |
CN113950066B (zh) | 移动边缘环境下单服务器部分计算卸载方法、系统、设备 | |
CN112561078B (zh) | 分布式的模型训练方法及相关装置 | |
US11531926B2 (en) | Method and apparatus for generating machine learning model by using distributed computing framework | |
US20190279088A1 (en) | Training method, apparatus, chip, and system for neural network model | |
CN106503791A (zh) | 用于有效神经网络部署的系统和方法 | |
US20210295168A1 (en) | Gradient compression for distributed training | |
EP4016398A1 (en) | Apparatus and method for distributed training model, and computer program product | |
US11676021B1 (en) | Multi-model training pipeline in distributed systems | |
CN111210020B (zh) | 一种加速分布式机器学习的方法及系统 | |
US11948352B2 (en) | Speculative training using partial gradients update | |
CN116450312A (zh) | 面向流水线并行训练的调度策略确定方法及系统 | |
CN110795235A (zh) | 一种移动web深度学习协作的方法及系统 | |
CN114841315A (zh) | 混合专家模型实现方法、系统、电子设备及存储介质 | |
JP2023526883A (ja) | タスクのためのスケジューリング方法、コンピューティングデバイス、およびストレージ媒体 | |
CN115357351A (zh) | 算力网络调度方法、装置、系统、设备及介质 | |
US20210097396A1 (en) | Neural network training in a distributed system | |
WO2023284347A1 (zh) | 任务执行方法及装置 | |
CN114492787A (zh) | 自适应的神经网络训练方法、电子设备、介质和程序产品 | |
WO2021244203A1 (zh) | 参数优化的方法、电子设备和存储介质 | |
CN115292044A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110928683B (zh) | 基于两类密集型虚拟机的边缘计算资源分配方法 | |
CN114818863A (zh) | 一种模型训练方法及装置 | |
CN112261023A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |