CN117118928A - 一种基于通信优化的分布式训练方法、装置及设备 - Google Patents
一种基于通信优化的分布式训练方法、装置及设备 Download PDFInfo
- Publication number
- CN117118928A CN117118928A CN202311262674.4A CN202311262674A CN117118928A CN 117118928 A CN117118928 A CN 117118928A CN 202311262674 A CN202311262674 A CN 202311262674A CN 117118928 A CN117118928 A CN 117118928A
- Authority
- CN
- China
- Prior art keywords
- training
- parameter
- target
- parameter server
- bandwidth
- 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
- 238000012549 training Methods 0.000 title claims abstract description 297
- 238000005457 optimization Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004891 communication Methods 0.000 title claims abstract description 40
- 230000005540 biological transmission Effects 0.000 claims abstract description 198
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000003860 storage Methods 0.000 claims description 16
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000009826 distribution Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 abstract description 76
- 238000010801 machine learning Methods 0.000 abstract description 30
- 238000004590 computer program Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000015654 memory Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000002776 aggregation Effects 0.000 description 6
- 238000004220 aggregation Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- BULVZWIRKLYCBC-UHFFFAOYSA-N phorate Chemical class CCOP(=S)(OCC)SCSCC BULVZWIRKLYCBC-UHFFFAOYSA-N 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/783—Distributed allocation of resources, e.g. bandwidth brokers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/10015—Access to distributed or replicated servers, e.g. using brokers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种基于通信优化的分布式训练方法、装置及设备,可以应用于机器学习领域。该方法包括:获取等待时长大于或等于第一预设阈值的训练任务;基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到第一参数比例;根据多个初始参数服务器各自的第一参数比例,从多个初始参数服务器中确定至少一个目标参数服务器;基于第二目标优化函数处理目标参数服务器和工作节点之间的第二收发数据量信息,得到第二参数比例和最小传输时长;根据目标参数服务器的第二参数比例和最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长;基于最小剩余完成时长优先原则得到带宽分配方案,以便于执行训练任务得到训练结果。
Description
技术领域
本公开涉及机器学习领域,具体涉及一种基于通信优化的分布式训练方法、装置及设备。
背景技术
随着机器学习技术的不断进步,超大规模机器学习模型的训练已超出单机能力的范畴,分布式机器学习开始发挥关键作用,其中,参数服务器架构是一种最为常用的通信架构。参数服务器架构包含多种功能不同的节点,从而形成用于训练机器学习模型的分布式训练架构,分布式训练架构中的节点可以通过数据交互来执行针对机器学习模型的训练任务,从而得到训练后的模型。而相关的分布式训练过程中,节点之间的数据传输速度成为影响机器学习模型训练效率的关键因素。
发明内容
鉴于上述问题,本公开提供了一种基于通信优化的分布式训练方法、装置及设备。
根据本公开的第一个方面,提供了一种基于通信优化的分布式训练方法,包括:
响应于数据处理请求,获取等待时长大于或等于第一预设阈值的训练任务;
针对每一训练任务,基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到初始参数服务器的第一参数比例,其中,初始参数服务器和工作节点配置为执行每一训练任务的至少一个训练回合,第一参数比例表征初始参数服务器持有的参数与被训练的模型的总参数之间的比例;
根据多个初始参数服务器各自的第一参数比例,从多个初始参数服务器中确定至少一个目标参数服务器;
针对每一训练任务,基于第二目标优化函数处理目标参数服务器和工作节点之间的第二收发数据量信息,得到目标参数服务器的第二参数比例和传输子回合的最小传输时长,其中,传输子回合表征训练回合中的数据传输过程;
针对每一训练任务,根据目标参数服务器的第二参数比例和最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长,其中,第一带宽值表征与目标参数服务器对应的带宽资源,第二带宽值表征与工作节点对应的带宽资源;
基于最小剩余完成时长优先原则处理每个训练任务的剩余完成时长,得到带宽方案;以及
根据带宽分配方案分别向目标参数服务器和工作节点分配带宽资源,以便于执行训练任务,得到训练结果。
根据本公开的实施例,针对每一训练任务,基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到初始参数服务器的第一参数比例,包括:
针对每一训练任务,基于与第一目标优化函数对应的第一约束条件处理多个初始参数服务器和多个工作节点的收发数据量信息,得到第一参数比例,其中,第一约束条件包括以下至少一项:
第一约束条件包括第一约束子条件,第一约束子条件表征每个工作节点的节点发送数据量小于或等于每个工作节点的额定发送数据量,工作节点的额定发送数据量基于节点发送带宽与中间传输时长之间的乘积得到,第一目标优化函数的优化目标为最小化中间传输时长;
第一约束条件包括第二约束子条件,第二约束子条件表征每个工作节点的节点接收数据量小于或等于每个工作节点的额定接收数据量,工作节点的额定接收数据量基于节点接收带宽与中间传输时长之间的乘积得到;
第一约束条件包括第三约束子条件,第三约束子条件表征每个初始参数服务器的接收数据量小于或等于每个初始参数服务器的额定接收数据量,初始参数服务器的额定接收数据量基于初始参数服务器接收带宽与中间传输时长之间的乘积得到;
第一约束条件包括第四约束子条件,第四约束子条件表征每个初始参数服务器的发送数据量小于或等于每个初始参数服务器的额定发送数据量,初始参数服务器的额定发送数据量基于初始参数服务器发送带宽与中间传输时长之间的乘积得到。
根据本公开的实施例,根据多个初始参数服务器各自的第一参数比例,从多个初始参数服务器中确定至少一个目标参数服务器,包括:
将多个第一参数比例按照第一参数比例表征的数值由大至小进行排序,得到第一参数比例序列;
将第一参数比例序列中排序前n的第一参数比例确定为目标第一参数比例,n≥1;以及
根据目标第一参数比例从多个初始参数服务器中确定目标参数服务器。
根据本公开的实施例,针对每一训练任务,基于第二目标优化函数处理目标参数服务器和工作节点之间的第二收发数据量信息,得到目标参数服务器的第二参数比例和传输子回合的最小传输时长,包括:
针对每一训练任务,基于与第二目标优化函数对应的第二约束条件处理多个目标参数服务器和多个工作节点的收发数据量信息,得到第二参数比例,其中,第二约束条件包括以下至少一项:
第二约束条件包括第五约束子条件,第五约束子条件表征每个工作节点的节点发送数据量小于或等于每个工作节点的额定发送数据量,工作节点的额定发送数据量基于节点发送带宽与传输时长之间的乘积得到,第二目标优化函数的优化目标为最小化传输时长;
第二约束条件包括第六约束子条件,第六约束子条件表征每个工作节点的节点接收数据量小于或等于每个工作节点的额定接收数据量,工作节点的额定接收数据量基于节点接收带宽与与传输时长之间的乘积得到;
第二约束条件包括第七约束子条件,第七约束子条件表征每个目标参数服务器的接收数据量小于或等于每个目标参数服务器的额定接收数据量,目标参数服务器的额定接收数据量基于目标参数服务器接收带宽与传输时长之间的乘积得到;
第二约束条件包括第八约束子条件,第八约束子条件表征每个目标参数服务器的发送数据量小于或等于每个目标参数服务器的额定发送数据量,目标参数服务器的额定发送数据量基于目标参数服务器发送带宽与传输时长之间的乘积得到。
根据本公开的实施例,针对每一训练任务,根据目标参数服务器的第二参数比例和最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长,包括:
针对每一训练任务,根据目标参数服务器的第二参数比例,生成传输子回合中的数据量;
根据传输子回合中的接收数据量和最小传输时长,生成第一带宽值和第二带宽值;
根据传输子回合的最小传输时长,生成剩余完成时长。
根据本公开的实施例,根据传输子回合的最小传输时长,生成剩余完成时长,包括:
针对每一训练任务,根据目标训练回合数量,得到剩余训练回合数量;
针对每一训练任务,根据当前回合剩余数据量,得到当前回合剩余完成时长;
针对每一训练任务,根据剩余训练回合数量、当前回合剩余完成时长和传输子回合的最小传输时长,生成剩余完成时长。
根据本公开的实施例,针对每一训练任务,根据目标训练回合数量,得到剩余训练回合数量,包括:
在目标训练回合数量为未知数的情况下,利用损失函数处理历史训练回合数量,生成损失函数曲线;
在损失函数曲线收敛的情况下,根据损失函数曲线确定目标训练回合数量;以及
根据目标训练回合数量,得到剩余训练回合数量。
根据本公开的实施例,基于最小剩余完成时长优先原则处理每个训练任务的剩余完成时长,得到带宽分配方案,包括:
基于最小剩余完成时长优先原则,根据多个训练任务各自的剩余完成时长,从多个训练任务中确定第一训练任务;
根据与第一训练任务所对应的第一带宽值和第二带宽值,得到带宽分配方案。
本公开的第二方面提供了一种基于通信优化的分布式训练装置,包括:
获取模块,用于响应于数据处理请求,获取等待时长大于或等于第一预设阈值的训练任务;
第一处理模块,用于针对每一训练任务,基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到初始参数服务器的第一参数比例,其中,初始参数服务器和工作节点配置为执行每一训练任务的至少一个训练回合,第一参数比例表征初始参数服务器持有的参数与被训练的模型的总参数之间的比例;
第一确定模块,用于根据多个初始参数服务器各自的第一参数比例,从多个初始参数服务器中确定至少一个目标参数服务器;
第二处理模块,用于针对每一训练任务,基于第二目标优化函数处理目标参数服务器和工作节点之间的第二收发数据量信息,得到目标参数服务器的第二参数比例和传输子回合的最小传输时长,其中,传输子回合表征训练回合中的数据传输过程;
生成模块,用于针对每一训练任务,根据目标参数服务器的第二参数比例和最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长,其中,第一带宽值表征与目标参数服务器对应的带宽资源,第二带宽值表征与工作节点对应的带宽资源;
第二确定模块,用于基于最小剩余完成时长优先原则处理每个训练任务的剩余完成时长,得到带宽分配方案;
训练模块,用于根据带宽分配方案分别向目标参数服务器和工作节点分配带宽资源,以便于执行训练任务,得到训练结果。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述基于通信优化的分布式训练方法。
根据本公开提供的基于通信优化的分布式训练方法、装置及设备,通过获取整个机器学习集群中大于或等于第一预设阈值的训练任务,利用第一目标优化函数求解初始参数服务器持有的第一参数比例,从而计算出每个训练任务中需要的目标参数服务器;进而结合第二目标优化函数求解目标参数服务器持有的第二参数比例和传输子回合的最小传输时长,并计算出为其分配的带宽资源,同时根据传输子回合的最小传输时长得到每个训练任务的剩余完成时长,从而基于最小剩余完成时长优先原则确定优先任务分配带宽方案。由于调度了整个机器学习集群中的训练任务,实现了整体优化每个训练任务的先后执行顺序,并以此顺序分配资源,同时结合了目标优化函数的调度方法,动态调整每个参数服务器持有的参数比例,使具有较多带宽资源的参数服务器持有更多的参数,减少通信时间,解决了机器学习集群的最小化平均任务完成时间问题。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的执行基于通信优化的分布式训练方法的原理示意图;
图2示意性示出了根据本公开实施例的基于通信优化的分布式训练方法的流程图;
图3示意性示出了根据本公开实施例的生成剩余完成时长的方法流程图;
图4示意性示出了根据本公开实施例的基于通信优化的分布式训练装置的结构框图;以及
图5示意性示出了根据本公开实施例的适于实现基于通信优化的分布式训练方法的电子设备方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在实现本公开的过程中发现,参数服务器架构可以包含多种功能不同的节点:参数服务器和工作节点。出于计算资源和网络资源的限制,此架构中需要引入多个参数服务器来分担计算资源和网络资源的压力。然而工作节点与参数服务器之间的通信时间并不会随着参数服务器数量的增加而一直减少,阻碍了模型训练的速度。相关机构提供的云平台训练服务场景中,一般仅关注单个训练任务的数据传输加速,而忽略减小任务的平均完成时间以致无法提高整个集群资源的利用率,所以,如何可以优化整个分布式机器学习集群的任务调度流程是亟需解决的难题。
有鉴于此,本公开的实施例提供了一种基于通信优化的分布式训练方法、装置及设备。该方法包括:响应于数据处理请求,获取等待时长大于或等于第一预设阈值的训练任务;针对每一训练任务,基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到初始参数服务器的第一参数比例,其中,初始参数服务器和工作节点配置为执行每一训练任务的至少一个训练回合,第一参数比例表征初始参数服务器持有的参数与被训练的模型的总参数之间的比例;根据多个初始参数服务器各自的第一参数比例,从多个初始参数服务器中确定至少一个目标参数服务器;针对每一训练任务,基于第二目标优化函数处理目标参数服务器和工作节点之间的第二收发数据量信息,得到目标参数服务器的第二参数比例和传输子回合的最小传输时长,其中,传输子回合表征训练回合中的数据传输过程;针对每一训练任务,根据目标参数服务器的第二参数比例和最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长,其中,第一带宽值表征与目标参数服务器对应的带宽资源,第二带宽值表征与工作节点对应的带宽资源;基于最小剩余完成时长优先原则处理每个训练任务的剩余完成时长,得到带宽分配方案;以及根据带宽分配方案分别向目标参数服务器和工作节点分配带宽资源,以便于执行训练任务,得到训练结果。
在本发明的技术方案中,所涉及的用户信息(包括但不限于用户个人信息、用户图像信息、用户设备信息,例如位置信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、存储、使用、加工、传输、提供、公开和应用等处理,均遵守相关国家和地区的相关法律法规和标准,采取了必要保密措施,不违背公序良俗,并提供有相应的操作入口,供用户选择授权或者拒绝。
图1示意性示出了根据本公开实施例的执行基于通信优化的分布式训练方法的原理示意图。
如图1所示,根据该实施例的原理示意图可以包括m+1个工作节点和s+1个参数服务器,具体执行至少一个训练回合的步骤包括:
工作节点m基于分布式机器学习模型训练自己的数据,即进行局部训练数据,针对本地模型参数{w1,w2,…,wn},得到所对应的模型梯度
工作节点m把模型梯度推送给所有参数服务器,即每个工作节点都会把本地训练得到的模型梯度推送给所有参数服务器。
每个参数服务器负责更新的模型参数不同,因此,每个参数服务器仅聚合来自每个工作节点训练其负责的模型参数所对应的模型梯度,例如,参数服务器s负责更新的模型参数为{wls+1,wls+2,…,wn},其中,1<s<n,则参数服务器s聚合来自m+1个工作节点训练其负责的模型参数所对应的模型梯度聚合得到从而进行模型参数{wls+1,wls+2,…,wn}的更新。
每个工作节点从所有参数服务器中拉取更新后的模型参数,然后更新训练的模型。
图2示意性示出了根据本公开实施例的基于通信优化的分布式训练方法的流程图。
如图2所示,该方法200包括操作S210~操作S260。
在操作S210,响应于数据处理请求,获取等待时长大于或等于第一预设阈值的训练任务。
在操作S220,针对每一训练任务,基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到初始参数服务器的第一参数比例,其中,初始参数服务器和工作节点配置为执行每一训练任务的至少一个训练回合,第一参数比例表征初始参数服务器持有的参数与被训练的模型的总参数之间的比例。
根据本公开的实施例,用户可以在应用平台上传多个数据集,应用平台可以设置有初始参数服务器和工作节点,初始参数服务器和工作节点可以用多个数据集中的至少一个来训练机器学习模型,训练任务可以表征训练机器学习模型的过程。
根据本公开的实施例,第一预设阈值表征用户可以等待的最长时间,例如第一预设阈值为1天,从应用平台获取等待时间大于或等于1天的多个训练任务,优先调度训练这些任务。当不存在大于或等于第一预设阈值的训练任务时,直接调度训练小于第一预设阈值的所有任务。
根据本公开的实施例,在机器学习模型的训练过程中,可以基于包含两种不同功能的分布式节点的参数服务器架构来执行训练任务,两种不同功能的分布式节点例如可以包括初始参数服务器和工作节点,多个初始参数服务器和多个工作节点并行计算可以加速机器学习任务的训练过程,初始参数服务器和工作节点间需要进行数据通信以完成模型参数的同步。
根据本公开的实施例,整个机器学习集群可以包含多个训练任务,每个训练任务可以包含多个训练回合,多个初始参数服务器和多个工作节点可以配置为执行每一训练任务的至少一个训练回合。
根据本公开的实施例,在参数服务器架构中一个训练回合的训练流程可以包含四个步骤:一是每个工作节点基于机器学习模型输出的计算结果来计算得到模型梯度;二是每个工作节点把模型梯度推送给初始参数服务器;三是初始参数服务器聚合来自所有工作节点的模型梯度,进行模型参数的更新;四是每个工作节点从初始参数服务器拉取更新后的模型参数,然后更新进行训练的模型。
根据本公开的实施例,收发数据量信息表征在一个训练回合中,每个工作节点的模型梯度的发送量和参数的接收量,每个初始参数服务器的模型梯度的接收量和参数的发送量。
根据本公开的实施例,第一参数比例表征初始参数服务器持有的模型参数比例,即初始参数服务器持有的参数与被训练的模型的总参数之间的比例,多个初始参数服务器对应多个第一参数比例。
根据本公开的实施例,机器集群中可以包含多个物理服务器,每一初始参数服务器放置于对应的一个物理服务器上,物理服务器用来执行此初始参数服务器持有参数部分的梯度聚合与参数更新操作。
根据本公开的实施例,机器集群中的多个物理服务器是异构的,可以具有不同的出入带宽,因此,在多个初始参数服务器中选择哪些参数服务器进行梯度聚合与参数更新对通信时间会产生影响,即当具有较多可出入带宽资源的初始参数服务器持有较多的参数时可较大程度减少通信时间,提高数据传输效率。
在操作S230,根据多个初始参数服务器各自的第一参数比例,从多个初始参数服务器中确定至少一个目标参数服务器。
根据本公开的实施例,根据多个初始参数服务器各自的第一参数比例,从多个初始参数服务器中选取此训练任务所需要的n个参数服务器,得到n个目标参数服务器,其中,n个参数服务器分别放置到n个物理服务器上。
在操作S240,针对每一训练任务,基于第二目标优化函数处理目标参数服务器和工作节点之间的第二收发数据量信息,得到目标参数服务器的第二参数比例和传输子回合的最小传输时长,其中,传输子回合表征训练回合中的数据传输过程。
根据本公开的实施例,在单个训练回合中,对于参数服务器,模型梯度的接收和模型参数的发送可以同时执行,因此,单个训练回合的时长可以由工作节点的梯度推送时长最大值和参数拉取时长最大值共同决定。
根据本公开的实施例,传输子回合可以是工作节点进行梯度推送或者工作节点进行参数拉取的过程,梯度推送时长和参数拉取时长均不能超过传输子回合的传输时长。
根据本公开的实施例,获得传输子回合的最小传输时长,即降低了数据传输通信时间,进而可以得到单个训练回合的最小传输时长。
在操作S250,针对每一训练任务,根据目标参数服务器的第二参数比例和最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长,其中,第一带宽值表征与目标参数服务器对应的带宽资源,第二带宽值表征与工作节点对应的带宽资源。
根据本公开的实施例,第一带宽值表征在传输子回合中此参数服务器需要的可用出入带宽资源。
根据本公开的实施例,第一带宽值表征在传输子回合中此工作节点需要的可用出入带宽资源。
根据本公开的实施例,剩余完成时长表征每一训练任务的剩余训练回合的完成时长。
在操作S260,基于最小剩余完成时长优先原则处理每个训练任务的剩余完成时长,得到带宽分配方案。
在操作S270,根据带宽分配方案分别向目标参数服务器和工作节点分配带宽资源,以便于执行训练任务,得到训练结果。
根据本公开的实施例,遵循最小剩余完成时长优先的原则进行任务的调度。对于具有最小剩余完成时长的任务,如果机器学习集群中还有足够的可用资源,则调度器为这个任务优先分配相应的带宽资源使其完成剩余回合训练。
根据本公开的实施例,通过获取整个机器学习集群中大于或等于第一预设阈值的训练任务,利用第一目标优化函数求解初始参数服务器持有的第一参数比例,从而计算出每个训练任务中需要的目标参数服务器子集;进而结合第二目标优化函数求解目标参数服务器持有的第二参数比例和传输子回合的最小传输时长,并计算出为其分配的带宽资源,同时根据传输子回合的最小传输时长得到每个训练任务的剩余完成时长,从而基于最小剩余完成时长优先原则确定优先任务分配带宽方案。
根据本公开的实施例,由于调度了整个机器学习集群中的训练任务,实现了整体优化每个训练任务的先后执行顺序,并以此顺序分配资源,同时结合了目标优化函数的调度方式,动态调整每个参数服务器持有的参数比例,使具有较多带宽资源的参数服务器持有更多的参数,减少通信时间,解决了机器学习集群的最小化平均任务完成时间问题。
根据本公开的实施例,针对每一训练任务,基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到初始参数服务器的第一参数比例,包括:
针对每一训练任务,基于与第一目标优化函数对应的第一约束条件处理多个初始参数服务器和多个工作节点的收发数据量信息,得到第一参数比例,其中,第一约束条件包括以下至少一项:第一约束子条件、第二约束子条件、第三约束子条件、第四约束子条件。
第一约束子条件表征每个工作节点的节点发送数据量小于或等于每个工作节点的额定发送数据量,工作节点的额定发送数据量基于节点发送带宽与中间传输时长之间的乘积得到,第一目标优化函数的优化目标为最小化中间传输时长。
第二约束子条件表征每个工作节点的节点接收数据量小于或等于每个工作节点的额定接收数据量,工作节点的额定接收数据量基于节点接收带宽与中间传输时长之间的乘积得到。
第三约束子条件表征每个初始参数服务器的接收数据量小于或等于每个初始参数服务器的额定接收数据量,初始参数服务器的额定接收数据量基于初始参数服务器接收带宽与中间传输时长之间的乘积得到。
第四约束子条件表征每个初始参数服务器的发送数据量小于或等于每个初始参数服务器的额定发送数据量,初始参数服务器的额定发送数据量基于初始参数服务器发送带宽与中间传输时长之间的乘积得到。
根据本公开的实施例,针对每一训练任务,在一个训练回合中,基于与第一目标优化函数对应的第一约束条件处理多个初始参数服务器和多个工作节点的收发数据量信息,得到第一参数比例,其中第一约束条件包括第一约束子条件、第二约束子条件、第三约束子条件和第四约束子条件。
在一实施例中,第一子约束条件1a公式如(1)所示:
其中,u表征模型参数的数据量,W表征工作节点的集合,表征工作节点w的节点发送带宽,T1表征传输子回合中的中间传输时长。
根据本公开的实施例,第一约束子条件1a表征在时间T1内,工作节点w至少要发送的数据量为u,即该工作节点将模型梯度发送给所有参数服务器时产生的数据传输量。
第二子约束条件1b公式如(2)所示:
其中,u表征模型参数的数据量,W表征工作节点的集合,表征工作节点w的节点接收带宽。
根据本公开的实施例,第二约束子条件1b表征在时间T1内,工作节点w至少要接收的参数数据量为u,即该工作节点接收所有参数服务器时产生的参数数据量。
根据本公开的实施例,每个工作节点向所有参数服务器发送训练得到的模型梯度,由于各参数服务器负责聚合的模型参数不重叠,所以传输子回合中工作节点w向所有参数服务器发送的模型梯度数据量为u,则传输子回合中工作节点w的参数接收量可以为u。
在一实施例中,第三约束子条件1c公式如(3)所示:
其中,Ps表征初始参数服务器s持有的模型参数比例,S表征多个初始参数服务器的集合,m表征工作节点的数量,表征初始参数服务器s的接收带宽。
根据本公开的实施例,第三子约束条件1c表征在时间T1内,初始参数服务器s至少要接收的数据量为umPs,即该初始参数服务器接收来自所有工作节点的梯度时产生的数据传输量。
第四约束子条件1d公式如(4)所示:
其中,Ps表征初始参数服务器s持有的模型参数比例,S表征多个初始参数服务器的集合,m表征工作节点的数量,表征初始参数服务器s的发送带宽。
根据本公开的实施例,第四约束子条件1d表征在时间T1内,初始参数服务器s至少要发送的的参数数据量为umPs,即该初始参数服务器发送给所有工作节点时产生的参数数据量。
根据本公开的实施例,在参数服务器架构中,每个初始参数服务器需要向所有工作节点发送自己负责聚合的参数。初始参数服务器s需要向一个工作节点发送ups大小的模型参数,则传输子回合中初始参数服务器s向所有工作节点参数发送量可以计算为umps,所以传输子回合中初始参数服务器s接收所有工作节点的模型梯度数据量可以为umps。
在一实施例中,第一目标优化函数如(5)所示:
Minimize T1 (1)
Subject to:
其中,第一约束子条件1a和第三约束子条件1c是在工作节点将模型梯度发送到初始参数服务器时产生的;第二约束子条件1b和第四约束子条件1d是在初始参数服务器将模型参数发回工作节点时产生的;约束1e表征所有初始参数服务器持有的参数比例之和为1;约束1f表示初始参数服务器持有的参数比例区间为[0,1]。
根据本公开的实施例,对第一目标优化函数的目标(1)进行优化求解,得到多个初始参数服务器各自的第一参数比例(p1,…,ps,…,pS)。
根据本公开的实施例,根据多个初始参数服务器各自的第一参数比例,从多个初始参数服务器中确定至少一个目标参数服务器,包括:
将多个第一参数比例按照第一参数比例表征的数值由大至小进行排序,得到第一参数比例序列;将第一参数比例序列中排序前n的第一参数比例确定为目标第一参数比例,n≥1;以及根据目标第一参数比例从多个初始参数服务器中确定目标参数服务器。
根据本公开的实施例,将多个初始参数服务器各自的第一参数比例(p1,…,ps,…,ps)由大至小进行排序,得到第一参数比例序列。
根据本公开的实施例,假设针对一训练任务需要n个参数服务器(1≤n≤S)。
根据本公开的实施例,选取第一参数比例序列排序前n所对应的初始参数服务器,得到n个目标参数服务器,并且将n个目标参数服务器分别放置到所对应的n个物理服务器上,由物理服务器来执行此目标参目标参数服务器的数服务器持有参数部分的梯度聚合与参数更新操作。
根据本公开的实施例,通过求解第一目标优化函数得到多个初始参数服务器各自的第一参数比例,进而得到n个目标参数服务器,即动态调整了每个参数服务器持有的参数比例,具有较多带宽资源的参数服务器持有更多的参数,基于此目标参数服务器的放置的物理服务器执行参数更新等,可以缓解训练任务过程中的的数据通信时间瓶颈。
根据本公开的实施例,针对每一训练任务,基于第二目标优化函数处理目标参数服务器和工作节点之间的第二收发数据量信息,得到目标参数服务器的第二参数比例和传输子回合的最小传输时长,包括:
针对每一训练任务,基于与第二目标优化函数对应的第二约束条件处理多个目标参数服务器和多个工作节点的收发数据量信息,得到第二参数比例,其中,第二约束条件包括以下至少一项:第五约束子条件、第六约束子条件、第七约束子条件、第八约束子条件。
第五约束子条件表征每个工作节点的节点发送数据量小于或等于每个工作节点的额定发送数据量,工作节点的额定发送数据量基于节点发送带宽与传输时长之间的乘积得到,第二目标优化函数的优化目标为最小化传输时长。
第六约束子条件表征每个工作节点的节点接收数据量小于或等于每个工作节点的额定接收数据量,工作节点的额定接收数据量基于节点接收带宽与与传输时长之间的乘积得到。
第七约束子条件表征每个目标参数服务器的接收数据量小于或等于每个目标参数服务器的额定接收数据量,目标参数服务器的额定接收数据量基于目标参数服务器接收带宽与传输时长之间的乘积得到。
第八约束子条件表征每个目标参数服务器的发送数据量小于或等于每个目标参数服务器的额定发送数据量,目标参数服务器的额定发送数据量基于目标参数服务器发送带宽与传输时长之间的乘积得到。
根据本公开的实施例,针对每一训练任务,在一个训练回合中,基于与第二目标优化函数对应的第二约束条件处理多个目标参数服务器和多个工作节点的收发数据量信息,得到第二参数比例,其中第二约束条件包括第五约束子条件、第六约束子条件、第七约束子条件和第八约束子条件。
在一实施例中,第五约束子条件2a公式如(6)所示:
其中,表征工作节点w的节点发送带宽,T表征传输子回合中的传输时长。
第六约束子条件2b公式如(7)所示:
其中,表征工作节点w的节点接收带宽
根据本公开的实施例,将多个初始参数服务器替换为n个目标参数服务器,根据传输子回合中目标参数服务器进行参数更新,得到第七约束子条件和第八约束子条件。
在一实施例中,第七约束子条件2c公式如(8)所示:
其中,Sa表征替换后的n个目标参数服务器的集合,表征目标参数服务器s的接收带宽。
第八约束子条件2d公式如(9)所示:
其中,Sa表征替换后的n个目标参数服务器的集合,表征目标参数服务器s的发送带宽。
在一实施例中,将第一目标优化函数中的S替换成Sa,得到新的第二目标优化函数如(10)所示:
Minimize T (2)
Subject to:
根据本公开的实施例,根据第二目标优化函数的目标(2)求解传输子回合的最小传输时长,同时重新求解多个目标参数服务器各自持有的第二参数比例,得到(p1,…,ps,…,pn)。
根据本公开的实施例,每一个物理服务器上放置一个参数服务器,即参数服务器持有的参数数量可以是所对应的物理服务器所要处理的参数数量。
根据本公开的实施例,将多个初始参数服务器替换为n个目标参数服务器,进而根据第二目标优化函数的目标(2)求解传输子回合的最小传输时长的最优性证明如下:
设求得的目标参数服务器子集为Sa,且i∈Sa,假设最优的参数服务器集合为U,且j∈U,/>在第二目标优化函数的目标(2)中,存在约束/>和/>其中pj表示在新优化目标(2)中参数服务器j的参数比例。
在原优化目标(1)中,存在约束 和/>其中pi′、pj′和T′分别表示在优化目标(1)中的参数服务器i的参数比例、参数服务器j的参数比例和传输子回合的完成时长。对参数服务器i来说,和/>表征了其带宽要求第三约束和第四约束则有一个为等式,原因是如果两个约束全为不等式,那么pi′就可以在满足约束的情况下继续增大。因为所有参数服务器的参数比例之和为1,这就意味着其他的参数比例ps′可以减小,导致约束(1c)和(1d)变得松弛,此时T′就可以继续变小,与T′为最优解不符,因此一个参数服务器对应的约束(1c)和(1d)有一个为等式。下面对参数服务器i和j的约束进行分类讨论。
第一种情况: 由pi′≥pj′和两个等式约束,得/>因此,在新的优化约束(2c)中,将j替换为i,可知/>约束满足。由/>和/>可得由于/>得知/>成立。综上,在这种情况下,将j替换为i,新优化目标(2)的约束仍然成立。
第二种情况: 由pi′≥pj′和两个等式约束,得/>因此,在新的优化约束(2d)中,将j替换为i,可知/>约束满足。由/>和/>可得由于/>得知/>成立。综上,在这种情况下,将j替换为i,新优化目标(2)的约束仍然成立。
对于情况同上可以推出,将j替换成i,新优化目标(2)的约束仍然成立。
综上,在新的优化目标(2)中,将选中的参数服务器集合U中服务器j替换为服务器i,约束仍然成立,因此替换后求得的传输子回合的最小传输时长Ti小于等于替换前求得的传输子回合的最小传输时长Tj。因此,优化目标(1)中将初始参数服务器替换为目标参数服务器,选取第一参数比例排名前n所对应的初始参数服务器,得到n个目标参数服务器,进而通过其分别放置的物理服务器来执行梯度聚合和参数更新为最优处理方案,证明结束。
根据本公开的实施例,在确定目标参数服务器的前提下,即具有较多带宽资源的参数服务器持有更多的参数的基础上优化选取了目标参数服务器,再通过第二目标优化函数求解目标参数服务器的第二参数比例和传输子回合的最小传输时长,利用目标参数服务器持有的参数比例和传输子回合的最小传输时长进一步最小化训练任务的通信时间。
根据本公开的实施例,针对每一训练任务,根据目标参数服务器的第二参数比例和最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长,包括:
针对每一训练任务,根据目标参数服务器的第二参数比例,生成传输子回合中的数据量;
根据传输子回合中的接收数据量和最小传输时长,生成第一带宽值和第二带宽值;
根据传输子回合的最小传输时长,生成剩余完成时长。
根据本公开的实施例,目标参数服务器在传输子回合中的数据量可以由模型参数的数据量乘以工作节点数量乘以第二参数比例得到。例如传输子回合中参数服务器s的数量为umps。
在一实施例中,每个目标参数服务器所需要的第一带宽值d1公式如(11)所示:
其中,Tmin表征第二目标优化函数中得到的传输子回合的最小传输时长。
每个工作节点所需要的第二带宽值d2公式如(12)所示:
其中,Tmin表征第二多目标优化函数中得到的传输子回合的最小传输时长。
图3示意性示出了根据本公开实施例的生成剩余完成时长的方法流程图。
如图3所示,根据传输子回合的最小传输时长,生成剩余完成时长,该方法300包括操作S310~S350。
在操作S310,针对每一训练任务,根据目标训练回合数量,得到剩余训练回合数量。
在操作S320,针对每一训练任务,根据当前回合剩余数据量,得到当前回合剩余完成时长。
在操作S330,针对每一训练任务,根据剩余训练回合数量、当前回合剩余完成时长和传输子回合的最小传输时长,生成剩余完成时长。
根据本公开的实施例,针对每一训练任务,将目标训练回合数量减去已训练回合数量,得到剩余训练回合数量。
根据本公开的实施例,针对每一训练任务,将当前回合剩余数据量除以传输速率,得到当前回合剩余完成时长,其中,当前回合剩余数据量和传输速率在系统可直接获取。
在一实施例中,每一训练任务的剩余完成时长Tl公式如(13)所示:
其中,E表征剩余训练回合数量,Q表征当前回合剩余数据量,v表征传输速率,Tmin表征第二目标优化函数中得到的传输子回合的最小传输时长。
根据本公开的实施例,根据传输子回合的最小传输时长求得的每一训练任务的剩余完成时长,进而去调度每个训练任务的先后执行顺序及所分配的资源,减少训练任务的通信时间,并最小化机器学习集群的平均任务完成时间。
根据本公开的实施例,针对每一训练任务,根据目标训练回合数量,得到剩余训练回合数量,包括:
在目标训练回合数量为未知数的情况下,利用损失函数处理历史训练回合数量,生成损失函数曲线;
在损失函数曲线收敛的情况下,根据损失函数曲线确定目标训练回合数量;以及
根据目标训练回合数量,得到剩余训练回合数量。
根据本公开的实施例,当目标训练回合数量未知的情况下,利用损失函数处理历史训练回合数量的实际值,得到历史训练数据,再使用其历史数据生成损失函数曲线。
在一实施例中,损失函数l(k)如(14)所示:
其中,β0、β1和β2表征第一非负参数、第二非负参数和第三非负参数,k表征已训练回合数量。
根据本公开的实施例,损失函数模型的收敛速度是O(1/k)。
根据本公开的实施例,当在最近连续训练M个回合时,损失函数曲线收敛时,确定目标训练回合数量。
在一实施例中,目标训练回合数量K的预测值可以是满足收敛条件的最小整数,损失函数曲线收敛条件如(15)所示:
l(K-M)-l(K)<ε (15)
其中,M表征最近训练的连续回合数量,ε表征预设收敛阈值,例如ε为0.3。
根据本公开的实施例,将目标训练回合数量K减去已训练回合数量k,得到每个训练任务的剩余训练回合数量E。
根据本公开的实施例,当目标训练回合数量已知的情况下,直接减去已训练回合数量,得到剩余训练回合数量。
根据本公开的实施例,基于最小剩余完成时长优先原则处理每个训练任务的剩余完成时长,得到优先任务分配带宽方案,包括:
基于最小剩余完成时长优先原则,根据多个训练任务各自的剩余完成时长,从多个训练任务中确定第一训练任务;
根据与第一训练任务所对应的第一带宽值和第二带宽值,得到带宽分配方案。
根据本公开的实施例,最小剩余完成时长优先原则表征针对多个训练任务,优选训练剩余完成时长最小的任务。
根据本公开的实施例,根据最小剩余完成时长优先原则,确定第一训练任务,按照第一训练任务所对应的第一带宽值和第二带宽值分配带宽资源进行训练。
根据本公开的实施例,再次响应于数据处理请求,从应用平台获取等待时长大于或等于第一预设阈值的训练任务,重复上述步骤,寻找下一个具有最小剩余完成时长的任务,直到整个机器学习集群中不存在大于或等于第一预设阈值的训练任务。
根据本公开的实施例,当整个机器学习集群中不存在大于或等于第一预设阈值的训练任务时,则直接调度训练整个机器学习集群中小于第一预设阈值的所有训练任务。
根据本公开的实施例,基于最小剩余完成时长优先原则处理每个训练任务的剩余完成时长,得到优先任务分配带宽方案,即进行分布式集群资源调度的同时考虑通信优化,进而最小化整个集群的平均任务完成时长。
图4示意性示出了根据本公开实施例的基于通信优化的分布式训练装置的结构框图。
基于上述基于通信优化的分布式训练方法,本公开还提供了一种基于通信优化的分布式训练装置。以下将结合图4对该装置进行详细描述。
如图4所示,该实施例的分布式训练装置400包括获取模块410、第一处理模块420、第一确定模块430、第二处理模块440、生成模块450、第二确定模块460和训练模块470。
获取模块410,用于响应于数据处理请求,获取等待时长大于或等于第一预设阈值的训练任务。在一实施例中,获取模块410可以用于执行前文描述的操作S210,在此不再赘述。
第一处理模块420,用于针对每一训练任务,基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到初始参数服务器的第一参数比例,其中,初始参数服务器和工作节点配置为执行每一训练任务的至少一个训练回合,第一参数比例表征初始参数服务器持有的参数与被训练的模型的总参数之间的比例。在一实施例中,第一处理模块420可以用于执行前文描述的操作S220,在此不再赘述。
第一确定模块430,用于根据多个初始参数服务器各自的第一参数比例,从多个初始参数服务器中确定至少一个目标参数服务器。在一实施例中,第一确定模块430可以用于执行前文描述的操作S230,在此不再赘述。
第二处理模块440,用于针对每一训练任务,基于第二目标优化函数处理目标参数服务器和工作节点之间的第二收发数据量信息,得到目标参数服务器的第二参数比例和传输子回合的最小传输时长,其中,传输子回合表征训练回合中的数据传输过程。在一实施例中,第二处理模块块440可以用于执行前文描述的操作S240,在此不再赘述。
生成模块450,用于针对每一训练任务,根据目标参数服务器的第二参数比例和最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长,其中,第一带宽值表征与目标参数服务器对应的带宽资源,第二带宽值表征与工作节点对应的带宽资源。在一实施例中,生成模块450可以用于执行前文描述的操作S250,在此不再赘述。
第二确定模块460,用于基于最小剩余完成时长优先原则处理每个训练任务的剩余完成时长,得到带宽分配方案。在一实施例中,第二确定模块460可以用于执行前文描述的操作S260,在此不再赘述。
训练模块470,用于根据带宽分配方案分别向目标参数服务器和工作节点分配带宽资源,以便于执行训练任务,得到训练结果。在一实施例中,训练模块470可以用于执行前文描述的操作S270,在此不再赘述。
根据本公开的实施例,通过获取整个机器学习集群中大于或等于第一预设阈值的训练任务,利用第一目标优化函数求解初始参数服务器持有的第一参数比例,从而计算出每个训练任务中需要的目标参数服务器子集;进而结合第二目标优化函数求解目标参数服务器持有的第二参数比例和传输子回合的最小传输时长,并计算出为其分配的带宽资源,同时根据传输子回合的最小传输时长得到每个训练任务的剩余完成时长,从而基于最小剩余完成时长优先原则确定优先任务分配带宽方案。由于调度了整个机器学习集群中的训练任务,实现了整体优化每个训练任务的先后执行顺序,并以此顺序分配资源,同时结合了目标优化函数的调度方法,动态调整每个参数服务器持有的参数比例,使具有较多带宽资源的参数服务器持有更多的参数,减少通信时间,解决了机器学习集群的最小化平均任务完成时间问题。
根据本公开的实施例,第一确定模块430包括第一确定子模块、第二确定子模块和第三确定子模块。
第一确定子模块,用于将多个第一参数比例按照第一参数比例表征的数值由大至小进行排序,得到第一参数比例序列。
第二确定子模块,用于将第一参数比例序列中排序前n的第一参数比例确定为目标第一参数比例,n≥1。
第三确定子模块,用于根据目标第一参数比例从多个初始参数服务器中确定目标参数服务器。
根据本公开的实施例,生成模块450包括第一生成子模块、第二生成子模块和第三生成子模块。
第一生成子模块,用于针对每一训练任务,根据目标参数服务器的第二参数比例,生成传输子回合中的数据量。
第二生成子模块,用于根据传输子回合中的接收数据量和最小完成时长,生成第一带宽值和第二带宽值。
第三生成子模块,生成根据传输子回合的最小传输时长,生成剩余完成时长。
根据本公开的实施例,第三生成子模块包括第一生成单元、第二生成单元和第三生成单元。
第一生成单元,用于针对每一训练任务,根据目标训练回合数量,得到剩余训练回合数量。
第二生成单元,用于针对每一训练任务,根据当前回合剩余数据量,得到当前回合剩余完成时长。
第三生成单元,用于针对每一训练任务,根据剩余训练回合数量、当前回合剩余完成时长和传输子回合的最小传输时长,生成剩余完成时长。
根据本公开的实施例,第一生成单元包括损失函数曲线生成子单元、目标训练回合数量确定子单元和剩余训练回合数量生成子单元。
损失函数曲线生成子单元,用于在目标训练回合数量为未知数的情况下,利用损失函数处理历史训练回合数量,生成损失函数曲线。
目标训练回合数量确定子单元,用于在损失函数曲线收敛的情况下,根据损失函数曲线确定目标训练回合数量。
剩余训练回合数量生成子单元,用于根据目标训练回合数量,得到剩余训练回合数量。
根据本公开的实施例,第二确定模块460包括第一训练任务确定单元和带宽分配方案确定单元。
第一训练任务确定单元,用于基于最小剩余完成时长优先原则,根据多个训练任务各自的剩余完成时长,从多个训练任务中确定第一训练任务。
带宽分配方案确定单元,用于根据与第一训练任务所对应的第一带宽值和第二带宽值,得到带宽分配方案。
根据本公开的实施例,获取模块410、第一处理模块420、第一确定模块430、第二处理模块440、生成模块450、第二确定模块460和训练模块470中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块410、第一处理模块420、第一确定模块430、第二处理模块440、生成模块450、第二确定模块460和训练模块470中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块410、第一处理模块420、第一确定模块430、第二处理模块440、生成模块450、第二确定模块460和训练模块470中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图5示意性示出了根据本公开实施例的适于实现基于通信优化的分布式训练方法的电子设备方框图。
如图5所示,根据本公开实施例的电子设备500包括处理器501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。处理器501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器501还可以包括用于缓存用途的板载存储器。处理器501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 503中,存储有电子设备500操作所需的各种程序和数据。处理器501、ROM502以及RAM 503通过总线504彼此相连。处理器501通过执行ROM 502和/或RAM 503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM502和RAM 503以外的一个或多个存储器中。处理器501也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备500还可以包括输入/输出(I/O)接口505,输入/输出(I/O)接口505也连接至总线504。电子设备500还可以包括连接至I/O接口505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 502和/或RAM 503和/或ROM 502和RAM 503以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的分布式训练方法。
在该计算机程序被处理器501执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分509被下载和安装,和/或从可拆卸介质511被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被处理器501执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (10)
1.一种基于通信优化的分布式训练方法,包括:
响应于数据处理请求,获取等待时长大于或等于第一预设阈值的训练任务;
针对每一训练任务,基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到所述初始参数服务器的第一参数比例,其中,所述初始参数服务器和所述工作节点配置为执行所述每一训练任务的至少一个训练回合,所述第一参数比例表征初始参数服务器持有的参数与被训练的模型的总参数之间的比例;
根据多个所述初始参数服务器各自的第一参数比例,从所述多个所述初始参数服务器中确定至少一个目标参数服务器;
针对所述每一训练任务,基于第二目标优化函数处理所述目标参数服务器和所述工作节点之间的第二收发数据量信息,得到目标参数服务器的第二参数比例和传输子回合的最小传输时长,其中,所述传输子回合表征所述训练回合中的数据传输过程;
针对所述每一训练任务,根据所述目标参数服务器的第二参数比例和所述最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长,其中,第一带宽值表征与所述目标参数服务器对应的带宽资源,第二带宽值表征与工作节点对应的带宽资源;
基于最小剩余完成时长优先原则处理每个所述训练任务的所述剩余完成时长,得到带宽分配方案;以及
根据所述带宽分配方案分别向所述目标参数服务器和所述工作节点分配带宽资源,以便于执行所述训练任务,得到训练结果。
2.根据权利要求1所述的方法,其中,针对所述每一训练任务,基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到所述初始参数服务器的第一参数比例,包括:
针对所述每一训练任务,基于与所述第一目标优化函数对应的第一约束条件处理多个初始参数服务器和多个工作节点的收发数据量信息,得到所述第一参数比例,其中,所述第一约束条件包括以下至少一项:
所述第一约束条件包括第一约束子条件,所述第一约束子条件表征每个所述工作节点的节点发送数据量小于或等于所述每个所述工作节点的额定发送数据量,所述工作节点的额定发送数据量基于节点发送带宽与中间传输时长之间的乘积得到,所述第一目标优化函数的优化目标为最小化所述中间传输时长;
所述第一约束条件包括第二约束子条件,所述第二约束子条件表征每个所述工作节点的节点接收数据量小于或等于每个所述工作节点的额定接收数据量,所述工作节点的额定接收数据量基于节点接收带宽与中间传输时长之间的乘积得到;
所述第一约束条件包括第三约束子条件,所述第三约束子条件表征每个所述初始参数服务器的接收数据量小于或等于每个所述初始参数服务器的额定接收数据量,所述初始参数服务器的额定接收数据量基于初始参数服务器接收带宽与中间传输时长之间的乘积得到;
所述第一约束条件包括第四约束子条件,所述第四约束子条件表征每个所述初始参数服务器的发送数据量小于或等于每个所述初始参数服务器的额定发送数据量,所述初始参数服务器的额定发送数据量基于初始参数服务器发送带宽与中间传输时长之间的乘积得到。
3.根据权利要求1所述的方法,其中,根据多个初始参数服务器各自的第一参数比例,从所述多个初始参数服务器中确定至少一个目标参数服务器,包括:
将多个所述第一参数比例按照所述第一参数比例表征的数值由大至小进行排序,得到第一参数比例序列;
将所述第一参数比例序列中排序前n的第一参数比例确定为目标第一参数比例,n≥1;以及
根据所述目标第一参数比例从多个所述初始参数服务器中确定所述目标参数服务器。
4.根据权利要求1所述的方法,其中,针对所述每一训练任务,基于第二目标优化函数处理所述目标参数服务器和所述工作节点之间的第二收发数据量信息,得到目标参数服务器的第二参数比例和传输子回合的最小传输时长,包括:
针对所述每一训练任务,基于与所述第二目标优化函数对应的第二约束条件处理多个目标参数服务器和多个工作节点的收发数据量信息,得到所述第二参数比例,其中,所述第二约束条件包括以下至少一项:
所述第二约束条件包括第五约束子条件,所述第五约束子条件表征每个所述工作节点的节点发送数据量小于或等于所述每个工作节点的额定发送数据量,所述工作节点的额定发送数据量基于节点发送带宽与传输时长之间的乘积得到,所述第二目标优化函数的优化目标为最小化所述传输时长;
所述第二约束条件包括第六约束子条件,所述第六约束子条件表征每个所述工作节点的节点接收数据量小于或等于每个所述工作节点的额定接收数据量,所述工作节点的额定接收数据量基于节点接收带宽与与传输时长之间的乘积得到;
所述第二约束条件包括第七约束子条件,所述第七约束子条件表征每个所述目标参数服务器的接收数据量小于或等于每个所述目标参数服务器的额定接收数据量,所述目标参数服务器的额定接收数据量基于目标参数服务器接收带宽与传输时长之间的乘积得到;
所述第二约束条件包括第八约束子条件,所述第八约束子条件表征每个所述目标参数服务器的发送数据量小于或等于每个所述目标参数服务器的额定发送数据量,所述目标参数服务器的额定发送数据量基于目标参数服务器发送带宽与传输时长之间的乘积得到。
5.根据权利要求1所述的方法,其中,针对所述每一训练任务,根据所述目标参数服务器的第二参数比例和所述最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长,包括:
针对所述每一训练任务,根据所述目标参数服务器的第二参数比例,生成传输子回合中的数据量;
根据所述传输子回合中的所述接收数据量和所述最小传输时长,生成第一带宽值和第二带宽值;
根据所述传输子回合的最小传输时长,生成剩余完成时长。
6.根据权利要求5所述的方法,其中,根据所述传输子回合的最小传输时长,生成剩余完成时长,包括:
针对所述每一训练任务,根据目标训练回合数量,得到剩余训练回合数量;
针对所述每一训练任务,根据当前回合剩余数据量,得到当前回合剩余完成时长;
针对所述每一训练任务,根据所述剩余训练回合数量、所述当前回合剩余完成时长和所述传输子回合的最小传输时长,生成剩余完成时长。
7.根据权利要求6所述的方法,针对所述每一训练任务,根据目标训练回合数量,得到剩余训练回合数量,包括:
在目标训练回合数量为未知数的情况下,利用损失函数处理历史训练回合数量,生成损失函数曲线;
在所述损失函数曲线收敛的情况下,根据所述损失函数曲线确定所述目标训练回合数量;以及
根据所述目标训练回合数量,得到所述剩余训练回合数量。
8.根据权利要求1所述的方法,其中,基于最小剩余完成时长优先原则处理每个所述训练任务的所述剩余完成时长,得到带宽方案,包括:
基于最小剩余完成时长优先原则,根据所述多个训练任务各自的剩余完成时长,从所述多个训练任务中确定第一训练任务;
根据与所述第一训练任务所对应的所述第一带宽值和所述第二带宽值,得到带宽方案。
9.一种基于通信优化的分布式训练装置,包括:
获取模块,用于响应于数据处理请求,获取等待时长大于或等于第一预设阈值的训练任务;
第一处理模块,用于针对所述每一训练任务,基于第一目标优化函数处理初始参数服务器和工作节点之间的第一收发数据量信息,得到所述初始参数服务器的第一参数比例,其中,所述初始参数服务器和所述工作节点配置为执行所述每一训练任务的至少一个训练回合,所述第一参数比例表征初始参数服务器持有的参数与被训练的模型的总参数之间的比例;
第一确定模块,用于根据多个初始参数服务器各自的第一参数比例,从所述多个初始参数服务器中确定至少一个目标参数服务器;
第二处理模块,用于针对所述每一训练任务,基于第二目标优化函数处理所述目标参数服务器和所述工作节点之间的第二收发数据量信息,得到目标参数服务器的第二参数比例和传输子回合的最小传输时长,其中,所述传输子回合表征所述训练回合中的数据传输过程;
生成模块,用于针对所述每一训练任务,根据所述目标参数服务器的第二参数比例和所述最小传输时长,生成第一带宽值、第二带宽值和剩余完成时长,其中,第一带宽值表征与所述目标参数服务器对应的带宽资源,第二带宽值表征与工作节点对应的带宽资源;
第二确定模块,用于基于最小剩余完成时长优先原则处理每个所述训练任务的所述剩余完成时长,得到带宽分配方案;
训练模块,用于根据所述带宽分配方案分别向所述目标参数服务器和所述工作节点分配带宽资源,以便于执行所述训练任务,得到训练结果。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311262674.4A CN117118928A (zh) | 2023-09-27 | 2023-09-27 | 一种基于通信优化的分布式训练方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311262674.4A CN117118928A (zh) | 2023-09-27 | 2023-09-27 | 一种基于通信优化的分布式训练方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117118928A true CN117118928A (zh) | 2023-11-24 |
Family
ID=88804067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311262674.4A Pending CN117118928A (zh) | 2023-09-27 | 2023-09-27 | 一种基于通信优化的分布式训练方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117118928A (zh) |
-
2023
- 2023-09-27 CN CN202311262674.4A patent/CN117118928A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11449774B2 (en) | Resource configuration method and apparatus for heterogeneous cloud services | |
CN109992404B (zh) | 集群计算资源调度方法、装置、设备及介质 | |
CN108924221B (zh) | 分配资源的方法和装置 | |
EP2923479B1 (en) | Method and apparatus for controlling utilization in a horizontally scaled software application | |
CN113055308B (zh) | 带宽调度方法、流量传输方法及相关产品 | |
US11436050B2 (en) | Method, apparatus and computer program product for resource scheduling | |
CN106959894B (zh) | 资源分配方法和装置 | |
CN109788315A (zh) | 视频转码方法、装置及系统 | |
Tang et al. | Dependent task offloading for multiple jobs in edge computing | |
CN113408797A (zh) | 流转量预测多时序模型生成方法、信息发送方法和装置 | |
US20220116479A1 (en) | Systems and methods for managing an automotive edge computing environment | |
CN115994567B (zh) | 一种深度神经网络模型并行计算任务异步调度方法 | |
WO2019239821A1 (ja) | 分散処理システムおよび分散処理方法 | |
CN113988720B (zh) | 分流路径生成方法、装置、电子设备和计算机可读介质 | |
CN111198754B (zh) | 一种任务调度方法及装置 | |
CN111580974B (zh) | Gpu实例分配方法、装置、电子设备和计算机可读介质 | |
CN113271221B (zh) | 网络能力开放方法、系统及电子设备 | |
CN117118928A (zh) | 一种基于通信优化的分布式训练方法、装置及设备 | |
CN110519317A (zh) | 一种数据传输方法以及设备 | |
WO2020134753A1 (zh) | 请求消息处理方法、装置及系统、服务器、存储介质 | |
CN111367670A (zh) | 遥感卫星地面站网资源申请方法及系统 | |
CN102200928A (zh) | 计算资源控制设备和计算资源控制方法 | |
CN111694670B (zh) | 资源分配方法、装置、设备和计算机可读介质 | |
CN112156453B (zh) | 实例自适应调整方法、装置、计算机可读存储介质及设备 | |
US9887928B2 (en) | System and method for identifying performance characteristics in asynchronous networks |
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 |