CN116644803A - 分布式协同训练控制方法、系统、装置、设备及存储介质 - Google Patents

分布式协同训练控制方法、系统、装置、设备及存储介质 Download PDF

Info

Publication number
CN116644803A
CN116644803A CN202310928131.5A CN202310928131A CN116644803A CN 116644803 A CN116644803 A CN 116644803A CN 202310928131 A CN202310928131 A CN 202310928131A CN 116644803 A CN116644803 A CN 116644803A
Authority
CN
China
Prior art keywords
gradient data
layer
model network
sequentially
gradient
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
Application number
CN202310928131.5A
Other languages
English (en)
Other versions
CN116644803B (zh
Inventor
曹芳
赵雅倩
郭振华
王丽
高开
唐轶男
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202310928131.5A priority Critical patent/CN116644803B/zh
Publication of CN116644803A publication Critical patent/CN116644803A/zh
Application granted granted Critical
Publication of CN116644803B publication Critical patent/CN116644803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及计算机领域,具体公开了一种分布式协同训练控制方法、系统、装置、设备及存储介质,通过计算节点存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,在反向传播计算完毕后再自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作得到各层聚合梯度数据,在利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数时,即随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算,达到下一次迭代计算的前向传播计算和当前次迭代计算的梯度数据聚合操作同时进行的效果,缩短了相邻两次迭代计算的执行时间,进而缩短了整体训练时间,提高了分布式训练效率。

Description

分布式协同训练控制方法、系统、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种分布式协同训练控制方法、系统、装置、设备及存储介质。
背景技术
随着神经网络模型的模型规模的不断增大,能够将模型训练任务拆分到多计算节点(worker)并行执行的分布式训练方案应运而生。目前的分布式训练方法有数据并行和模型并行两种方案。与将模型的不同部分拆分到不同计算节点上执行训练的模型并行方案不同,数据并行方案是将训练数据分批分发到多个计算节点上执行训练,并在每次迭代计算中基于各计算节点利用分到的批量训练数据训练得到的梯度数据更新模型参数,而后进入下一次迭代计算,直至达到迭代结束条件。
随着模型越来越大,分布式集群的规模逐渐变大,导致目前的分布式训练方案的效率也不能令人满意。如何进一步提高分布式训练的效率,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种分布式协同训练控制方法、系统、装置、设备及存储介质,用于提高分布式训练效率。
为解决上述技术问题,本发明提供一种分布式协同训练控制方法,应用于计算节点,包括:
存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据;
在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据;
利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算。
在一些实施中,所述存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,包括:
将所述当前次迭代计算中的反向传播计算得到的各层梯度数据存入先进后出的梯度队列。
在一些实施中,所述梯度队列的大小等于所述模型网络的模型参数量;
所述在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
判断所述梯度队列是否已写满;
如果是,则确定所述当前次迭代计算中的反向传播计算执行完毕,自对应第一层所述模型网络的梯度数据起依次读出所述梯度队列中的梯度数据以执行所述梯度数据聚合操作以依次得到各层所述聚合梯度数据;
如果否,则确定所述当前次迭代计算中的反向传播计算未执行完毕。
在一些实施中,所述自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
自对应第一层所述模型网络的梯度数据起,依次将各层梯度数据发送至独立于所述计算节点的控制器,并接收所述控制器根据各所述计算节点上传的梯度数据聚合得到的各层所述聚合梯度数据。
在一些实施中,所述自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
自对应第一层所述模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层所述聚合梯度数据。
在一些实施中,所述全规约逻辑链包括环形全规约逻辑链。
在一些实施中,所述自对应第一层所述模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层所述聚合梯度数据,包括:
自对应第一层所述模型网络的梯度数据起,将当前层的梯度数据分为两份并分别沿所述环形全规约逻辑链的上行链路和所述环形全规约逻辑链的下行链路传递进行全规约操作,将自所述上行链路聚合的梯度数据和自所述下行链路聚合的梯度数据进行聚合得到当前层的所述聚合梯度数据,依此得到各层所述聚合梯度数据。
在一些实施中,所述全规约逻辑链包括树形全规约逻辑链。
在一些实施中,所述自对应第一层所述模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层所述聚合梯度数据,包括:
按第一层至最后一层的顺序将所有梯度数据划分为多个数据块;
依次将所述数据块沿所述树形全规约逻辑链执行全规约操作,以依次得到各层所述聚合梯度数据。
在一些实施中,所述自对应第一层所述模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层所述聚合梯度数据,包括:
按第一层至最后一层的顺序将所有梯度数据划分为多个数据块;
依次将所述数据块沿所述树形全规约逻辑链的上行链路执行规约操作以将各所述计算节点的数据块上传至所述计算节点中的根节点进行梯度数据聚合操作,并同时将已完成梯度数据聚合操作的聚合数据块自所述树形全规约逻辑链的下行链路执行广播操作,以依次得到各层所述聚合梯度数据。
在一些实施中,所述自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
自对应第一层所述模型网络的梯度数据起,将当前层的梯度数据分为N份并分别沿环形全规约逻辑链的同步方向传递进行全规约操作,将接收到的当前层沿所述环形全规约逻辑链聚合的N份梯度数据进行聚合得到当前层的所述聚合梯度数据,依此得到各层所述聚合梯度数据;
其中,N为所述环形全规约逻辑链中所述计算节点的数量。
在一些实施中,所述自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
自对应第一层所述模型网络的梯度数据起,将当前层的梯度数据分为2N份并分别沿环形全规约逻辑链的上行链路和所述环形全规约逻辑链的下行链路传递进行全规约操作,将接收到的当前层沿所述上行链路聚合的N份梯度数据和沿所述下行链路聚合的N份梯度数据进行聚合得到当前层的所述聚合梯度数据,依此得到各层所述聚合梯度数据;
其中,N为所述环形全规约逻辑链中所述计算节点的数量。
在一些实施中,所述利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算,包括:
自对应第一层所述模型网络的梯度数据起,每接收到一层所述聚合梯度数据并利用所述聚合梯度数据更新所述模型网络中对应层的模型参数后,即利用更新的所述模型网络执行在所述下一次迭代计算中对应层的前向传播计算。
在一些实施中,所述利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,包括:
以各计算节点的梯度数据的平均值作为所述聚合梯度数据更新所述模型网络的模型参数。
在一些实施中,所述存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,包括:
运行第一线程在执行所述当前次迭代计算中的反向传播计算时每得到一层梯度数据即通知第二线程存储梯度数据;
所述在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
运行所述第二线程在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层所述聚合梯度数据;
所述利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算,包括:
运行所述第二线程利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,同时运行所述第一线程随着各层模型参数的更新执行对所述模型网络的所述下一次迭代计算的前向传播计算。
为解决上述技术问题,本发明还提供一种分布式协同训练控制方法,应用于控制器,包括:
将训练数据分批后分发至各计算节点以进行对模型网络的迭代计算;
自对应第一层所述模型网络的梯度数据起,依次接收各所述计算节点在执行完对所述模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,并将各所述计算节点的梯度数据执行梯度数据聚合操作得到聚合梯度数据后发送至各所述计算节点,以使各所述计算节点利用所述聚合梯度数据依次更新所述模型网络的各层模型参数并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算。
在一些实施中,所述依次接收各所述计算节点在执行完对所述模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,包括:
依次接收各所述计算节点在执行完所述当前次迭代计算中的反向传播计算后自先进后出的梯度队列中读出的梯度数据。
在一些实施中,所述梯度队列的大小等于所述模型网络的模型参数量;
所述计算节点执行完对所述模型网络的当前次迭代计算中的反向传播计算,包括:
所述计算节点判断所述梯度队列是否已写满;
如果是,则所述计算节点确定所述当前次迭代计算中的反向传播计算执行完毕,自对应第一层所述模型网络的梯度数据起,依次读出所述梯度队列中的梯度数据发送至所述控制器;
如果否,则所述确定所述当前次迭代计算中的反向传播计算未执行完毕。
为解决上述技术问题,本发明还提供一种分布式协同训练控制系统,包括多个计算节点;
所述计算节点用于存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行梯度数据聚合操作以依次得到各层聚合梯度数据,并利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算;
所述聚合梯度数据根据各所述计算节点的梯度数据聚合得到。
在一些实施中,所述聚合梯度数据为沿各所述计算节点组成的全规约逻辑链的同步方向执行全规约操作得到。
在一些实施中,还包括控制器;
所述控制器用于自对应第一层所述模型网络的梯度数据起,依次接收各所述计算节点在执行完对所述模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,并将各所述计算节点的梯度数据执行梯度数据聚合操作得到聚合梯度数据后发送至各所述计算节点。
为解决上述技术问题,本发明还提供一种分布式协同训练控制装置,应用于计算节点,包括:
存储单元,用于存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据;
同步单元,用于在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据;
前向计算单元,用于利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算。
为解决上述技术问题,本发明还提供一种分布式协同训练控制装置,应用于控制器,包括:
发送单元,用于将训练数据分批后分发至各计算节点以进行对模型网络的迭代计算;
第一聚合单元,用于自对应第一层所述模型网络的梯度数据起,依次接收各所述计算节点在执行完对所述模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,并将各所述计算节点的梯度数据执行梯度数据聚合操作得到聚合梯度数据后发送至各所述计算节点,以使各所述计算节点利用所述聚合梯度数据依次更新所述模型网络的各层模型参数并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算。
为解决上述技术问题,本发明还提供一种分布式协同训练控制设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如上述任意一项所述分布式协同训练控制方法的步骤。
为解决上述技术问题,本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述分布式协同训练控制方法的步骤。
本发明所提供的分布式协同训练控制方法,通过计算节点存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,在反向传播计算中并不立即执行对各层梯度数据的梯度数据聚合操作,而是在反向传播计算完毕后再自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作得到各层聚合梯度数据,在利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数时,即随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算,达到下一次迭代计算的前向传播计算和当前次迭代计算的梯度数据聚合操作同时进行的效果,相较于传统方案中各次迭代计算无法同时执行,缩短了相邻两次迭代计算的执行时间,进而缩短了分布式训练整体的执行时间,提高了分布式训练效率。
本发明还提供一种分布式协同训练控制系统、装置、设备及存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式协同训练控制方法的流程图;
图2为本发明实施例提供的分布式协同训练控制方法中相邻次迭代计算重叠示意图;
图3为一种环形全规约逻辑链的拓扑示意图;
图4为环形全规约法的初始化状态示意图;
图5为环形全规约法的分散规约阶段的第一步状态示意图;
图6为环形全规约法的分散规约阶段的第二步状态示意图;
图7为环形全规约法的分散规约阶段的第三步状态示意图;
图8为环形全规约法的全收集阶段的第一步状态示意图;
图9为环形全规约法的全收集阶段的第二步状态示意图;
图10为环形全规约法的全收集阶段的第三步状态示意图;
图11为本发明实施例提供的环形全规约法的双向链路执行示意图;
图12为本发明实施例提供的环形全规约法的初始化状态示意图;
图13为本发明实施例提供的环形全规约法的分散规约阶段的第一步状态示意图;
图14为本发明实施例提供的环形全规约法的分散规约阶段的第二步状态示意图;
图15为本发明实施例提供的环形全规约法的分散规约阶段的第三步状态示意图;
图16为本发明实施例提供的环形全规约法的全收集阶段的第一步状态示意图;
图17为本发明实施例提供的环形全规约法的全收集阶段的第二步状态示意图;
图18为本发明实施例提供的环形全规约法的全收集阶段的第三步状态示意图;
图19为本发明实施例提供的一种树形全规约法的初始化状态示意图;
图20为本发明实施例提供的一种树形全规约法的规约阶段的第一步状态示意图;
图21为本发明实施例提供的一种树形全规约法的规约阶段的第二步状态示意图;
图22为本发明实施例提供的一种树形全规约法的规约阶段的第三步状态示意图;
图23为本发明实施例提供的一种树形全规约法的规约阶段的第四步状态示意图;
图24为本发明实施例提供的一种树形全规约法的规约阶段的第五步状态示意图;
图25为本发明实施例提供的一种树形全规约法的广播阶段的第一步状态示意图;
图26为本发明实施例提供的一种树形全规约法的广播阶段的第二步状态示意图;
图27为本发明实施例提供的一种树形全规约法的广播阶段的第三步状态示意图;
图28为本发明实施例提供的一种树形全规约法的广播阶段的第四步状态示意图;
图29为本发明实施例提供的一种树形全规约法的广播阶段的第五步状态示意图;
图30为本发明实施例提供的另一种树形全规约法的第三步状态示意图;
图31为本发明实施例提供的另一种树形全规约法的第四步状态示意图;
图32为本发明实施例提供的另一种树形全规约法的第五步状态示意图;
图33为本发明实施例提供的另一种树形全规约法的第六步状态示意图;
图34为本发明实施例提供的另一种树形全规约法的第七步状态示意图;
图35为本发明实施例提供的一种分布式协同训练控制装置的结构示意图;
图36为本发明实施例提供的一种分布式协同训练控制设备的结构示意图。
具体实施方式
本发明的核心是提供一种分布式协同训练控制方法、系统、装置、设备及存储介质,用于提高分布式训练效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明实施例一进行说明。
为便于理解,首先对本发明适用的系统架构和相关概念进行介绍。
本发明实施例提供的分布式协同训练控制系统包括多个计算节点;计算节点用于存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,在当前次迭代计算中的反向传播计算结束后,自对应第一层模型网络的梯度数据起依次执行梯度数据聚合操作以依次得到各层聚合梯度数据,并利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,并随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算;聚合梯度数据根据各计算节点的梯度数据聚合得到。
本发明实施例提供的具体实施方式可以适用于包含多个计算节点的分布式集群,其中的部分或全部计算节点部署有加速器用于执行分布式训练任务,分布式训练任务的训练数据被分批发送至各计算节点上,各计算节点分别利用得到的批量数据和模型网络进行迭代训练,实现数据并行训练。
本发明实施例提供的分布式协同训练控制方案可以适用于包括但不限于图像识别、语音处理、人脸识别、视频处理等场景;或训练人工智能大模型,即训练数据包括但不限于图像数据、语音数据、视频数据、文本数据等多模态数据训练场景。
分布式训练过程是一个多次迭代的过程,每次迭代过程中都包含前向传播计算、反向传播计算、梯度数据同步(各计算节点间通信)、梯度更新这几个步骤,具体来说,是通过从模型网络第一层到最后一层的前向传播计算得到模型网络各层的预测值,再通过从模型网络的最后一层到第一层的反向传播计算得到模型网络各层的梯度数据,通过对各计算节点得到的梯度数据进行聚合再求均值,以利用梯度均值来更新模型网络的模型参数(权重参数)。随着深度学习模型变得越来越大,训练时间逐渐变长。为提高数据并行式的分布式训练的效率,本发明实施例提供的分布式协同训练控制方案考虑将相邻两次迭代计算的过程进行重叠的方式缩短整体训练用时。
由于目前的分布式训练过程中获得聚合梯度数据的顺序是对应模型网络的最后一层到第一层,而下一次迭代计算的前向传播计算则需要从模型网络的第一层到最后一层的顺序进行,导致下一次迭代计算的前向传播计算必须等待当前次迭代计算的所有梯度数据同步并更新完模型网络的模型参数才能进行,无法实现相邻次迭代计算的重叠。
为实现相邻两次迭代计算过程的重叠,在本发明实施例提供的分布式协同训练控制系统中,各计算节点在进行当前次迭代计算时,先不执行梯度数据聚合操作以及模型网络参数更新操作,而是将各层梯度数据存储在计算节点本地,等待当前次迭代计算的反向传播计算执行完毕后,各计算节点本地即存储有当前次迭代计算得到的全部梯度数据,此时再从对应模型网络第一层的梯度数据开始执行梯度数据聚合操作以及利用聚合梯度数据更新模型网络的模型参数的过程,从而可以在模型网络的第一层模型参数更新后即可进行下一次迭代计算的前向传播计算,使得当前次迭代计算的梯度数据聚合操作和下一次迭代计算的前向传播计算过程可以同时进行,缩短了相邻两次迭代计算的执行时间,进而缩短了整体训练时间,提高了分布式训练效率。
在具体实施中,数据并行中执行梯度数据聚合的方法主要有基于一台控制器来聚合所有计算节点的梯度数据的方法和全规约(AllReduce)方法。其中,基于一台控制器来聚合所有计算节点的梯度数据的方法包括参数服务器(Parameter Server,PS)方法,即利用参数服务器从所有计算节点那里收集梯度数据,将梯度数据聚合后再发回给各个计算节点。基于一台控制器来聚合所有计算节点的梯度数据的方法易于管理,但由于控制器的通信瓶颈问题,可扩展性有限。与基于一台控制器来聚合所有计算节点的梯度数据的方法相比,全规约方法去除了中心节点,有效利用了计算节点之间的带宽,实现了更好地并行,其中环形全规约(Ring AllReduce)法是目前应用最广泛的全规约方案。
则在本发明实施例提供的分布式协同训练控制系统中,聚合梯度数据可以通过沿各计算节点组成的全规约逻辑链的同步方向执行全规约操作得到。
或者,本发明实施例提供的分布式协同训练控制系统还可以包括控制器,控制器于自对应第一层模型网络的梯度数据起,依次接收各计算节点在执行完对模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,并将各计算节点的梯度数据执行梯度数据聚合操作得到聚合梯度数据后发送至各计算节点。
在上述架构的基础上,下面结合附图对本发明实施例提供的分布式协同训练控制方法进行说明。
下面对本发明实施例二进行说明。
图1为本发明实施例提供的一种分布式协同训练控制方法的流程图;图2为本发明实施例提供的分布式协同训练控制方法中相邻次迭代计算重叠示意图。
如图1所示,应用于计算节点,本发明实施例提供的分布式协同训练控制方法包括:
S101:存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据。
S102:在当前次迭代计算中的反向传播计算结束后,自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据。
S103:利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,并随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算。
在具体实施中,对于S101来说,在当前次迭代计算的反向传播计算中,先不对得到的各层梯度数据执行梯度数据聚合操作,而是先将各层梯度数据存储在计算节点本地。
预先划分用于存储反向传播计算得到的各层梯度数据的存储空间,具体可以通过设置一个先进后出的梯度队列来存储反向传播计算得到的各层梯度数据。则S101:存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,可以包括:将当前次迭代计算中的反向传播计算得到的各层梯度数据存入先进后出的梯度队列。
随着反向传播计算的进行,按照对应模型网络最后一层到第一层的顺序将得到的各层梯度数据依次存入梯度队列。
对于S102来说,等待反向传播计算结束后,采取先进后出策略,从梯度队列中按照对应模型网络第一层到最后一层的顺序依次取出梯度数据,通过对各计算节点计算得到的梯度数据进行聚合得到聚合梯度数据用于更新模型网络的模型参数。
确定反向传播计算结束的方法可以有很多,例如通过监控存储的梯度数据的数据量是否达到与模型网络对应的全部梯度数据量,或者直接监控模型网络的反向传播计算执行的层数。在本发明实施例提供的分布式协同训练控制方法中,提供一种通过监控存储的梯度数据的数据量是否达到与模型网络对应的全部梯度数据量的方案来确定反向传播计算结束。即可以将梯度队列的大小设置为等于模型网络的模型参数量。
则S102:在当前次迭代计算中的反向传播计算结束后,自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:
判断梯度队列是否已写满;
如果是,则确定当前次迭代计算中的反向传播计算执行完毕,自对应第一层模型网络的梯度数据起依次读出梯度队列中的梯度数据以执行梯度数据聚合操作以依次得到各层聚合梯度数据;
如果否,则确定当前次迭代计算中的反向传播计算未执行完毕。
对于S103,自模型网络的第一层起,依次更新模型参数,具体包括模型网络各层的权重参数。可以理解的是,当模型网络的第一层的模型参数更新后,即可进行下一次迭代计算中对第一层的前向传播计算,
为保证下一次迭代计算的前向传播计算的连续执行,梯度数据聚合操作以层为单位执行。则S103:利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,并随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算,包括:自对应第一层模型网络的梯度数据起,每接收到一层聚合梯度数据并利用聚合梯度数据更新模型网络中对应层的模型参数后,即利用更新的模型网络执行在下一次迭代计算中对应层的前向传播计算。
由于各层梯度数据的数据量可能不同,各计算节点的传输链路带宽也有所区别,导致梯度数据聚合操作的通信过程有快有慢。故可以结合计算节点的通信协议所规定的数据包大小和链路传输带宽的大小,在满足最小传输单位为一层梯度数据、最大传输单位需避免下一次迭代计算中的前向传播计算中断的条件下,可以一次性执行多层梯度数据的同步操作。
若在给各计算节点分配训练数据时是平均分配的,则S103中利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,包括:以各计算节点的梯度数据的平均值作为聚合梯度数据更新模型网络的模型参数。若在给各计算节点分配训练数据时不是平均分配的,则S103中利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,包括:根据各计算节点上被划分训练数据的数据量大小确定各计算节点在梯度数据聚合操作中的权重,在执行梯度数据聚合操作时根据各计算节点的权重对各计算节点提供的梯度数据进行加权求和后再求平均值得到聚合梯度数据以更新模型网络的模型参数。
在实际应用中,各计算节点开始执行分布式训练任务时,初始化两个线程,分别用于执行计算任务和通信任务,其中计算任务包括前向传播计算、反向传播计算和模型参数更新任务,通信任务包括梯度数据聚合操作。两个线程同时进行。
则S101:存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,可以包括:
运行第一线程在执行当前次迭代计算中的反向传播计算时每得到一层梯度数据即通知第二线程存储梯度数据。
S102:在当前次迭代计算中的反向传播计算结束后,自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:
运行第二线程在当前次迭代计算中的反向传播计算结束后,自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据。
S103:利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,并随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算,可以包括:
运行第二线程利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,同时运行第一线程随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算。
具体来说,第一线程的操作过程包括:自分布式训练任务对应的模型网络的第一层起开始逐层执行当前次迭代计算的前向传播计算,执行到最后一层后,再从最后一层开始逐层执行反向传播计算,每计算完一层,都通知第二线程使其开始存储梯度数据;执行完反向传播计算后,等待获取聚合梯度数据,在得到第一层聚合梯度数据后即可利用第一层梯度数据更新模型网络的第一层模型参数;判断是否达到迭代训练结束条件(如达到预设收敛值或预设迭代次数),如果否,则进入下一次迭代计算,对更新后的模型网络的第一层返回前向传播计算的步骤;如果是,则结束分布式训练任务。
第二线程的操作过程包括:在分布式训练任务开始时先进行先进后出的梯度队列的初始化,将梯度队列的大小设置为W(模型网络对应的所有梯度数据的数据量);等待第一线程通知,自最后一层开始获取梯度数据逐层存储到梯度队列;判断梯度队列是否已满,如果梯度队列已满,则确定当前次迭代计算的反向传播计算已结束;如果梯度队列未满,则确定当前次迭代计算的反向传播计算未结束,继续等待第一线程通知。在当前次迭代计算的反向传播计算结束后,从梯度队列中逐层获取梯度数据进行梯度数据聚合操作,并判断梯度队列是否为空,如果梯度队列不为空,则继续执行从梯度队列中逐层获取梯度数据进行梯度数据聚合操作,如果梯度队列为空,则判断是否达到迭代训练结束条件(如达到预设收敛值或预设迭代次数),如果未达到迭代训练结束条件,则等待第一线程通知开始进行下一次迭代计算的反向传播计算的梯度数据的存储;如果达到迭代训练结束条件,则结束分布式训练任务。
如图2所示,假设模型网络为四层网络结构,应用本发明实施例提供的分布式协同训练控制方法,在第1次迭代计算中,按时间顺序,先执行第1次迭代计算的各层前向传播计算(对应F1、F2、F3、F4),再从最后一层开始执行反向传播计算(对应B4、B3、B2、B1),并在反向传播计算中将对应得到的各层梯度数据进行存储,存储梯度数据的过程(对应G4、G3、G2、G1)与反向传播计算的过程同步进行。在执行完第1次迭代计算的反向传播计算后,自模型网络的第一层起依次取出对应的梯度数据进行各计算节点间的梯度数据聚合操作(对应C1、C2、C3、C4),且在执行完第一层梯度数据聚合操作并利用聚合梯度数据更新模型网络的第一层模型参数后,即可进行第2次迭代计算中对更新的模型网络的第一层的前向传播计算,以此类推(前向传播计算对应F1、F2、F3、F4)。则可以看到,自当前次迭代计算中第二层梯度数据的梯度数据聚合操作开始的梯度数据聚合操作(C2、C3、C4),即可与下一次迭代计算的前向传播计算的执行时间重叠。
本发明实施例提供的分布式协同训练控制方法,通过计算节点存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,在反向传播计算中并不立即执行对各层梯度数据的梯度数据聚合操作,而是在反向传播计算完毕后再自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作得到各层聚合梯度数据,在利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数时,即随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算,达到下一次迭代计算的前向传播计算和当前次迭代计算的梯度数据聚合操作同时进行的效果,相较于传统方案中各次迭代计算无法同时执行,缩短了相邻两次迭代计算的执行时间,进而缩短了分布式训练整体的执行时间,提高了分布式训练效率。
下面对本发明实施例三进行说明。
在上述实施例的基础上,本发明实施例进一步提供一种基于一台控制器来聚合所有计算节点的梯度数据的方法的具体方案。
基于一台控制器来聚合所有计算节点的梯度数据的方法是一种通过控制器来接收各计算节点上传的梯度数据、执行梯度数据聚合操作得到聚合梯度数据的方案。为使各计算节点能够在模型网络的第一层模型参数更新后即可进行下一次迭代计算,本发明实施例提供的分布式协同训练控制方法将模型参数更新的任务在计算节点上执行,由控制器收集各计算节点上传的梯度数据得到聚合梯度数据下发至各计算节点,各计算节点按照模型网络第一层到最后一层的顺序自行进行模型网络的参数更新。
则在本发明实施例提供的分布式协同训练控制方法中,S202中自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:自对应第一层模型网络的梯度数据起,依次将各层梯度数据发送至控制器,并接收控制器根据各计算节点上传的梯度数据聚合得到的各层聚合梯度数据。
若在给各计算节点分配训练数据时是平均分配的,则控制器根据各计算节点上传的梯度数据聚合得到聚合梯度数据为对各梯度数据求均值得到聚合梯度数据。若在给各计算节点分配训练数据时不是平均分配的,则控制器根据各计算节点被分配训练数据的大小确定计算节点在梯度数据聚合操作中的权重,在执行梯度数据聚合操作时根据各计算节点的权重对各计算节点提供的梯度数据进行加权求和后再求平均值得到聚合梯度数据以更新模型网络的模型参数。
下面对本发明实施例四进行说明。
图3为一种环形全规约逻辑链的拓扑示意图;图4为环形全规约法的初始化状态示意图;图5为环形全规约法的分散规约阶段的第一步状态示意图;图6为环形全规约法的分散规约阶段的第二步状态示意图;图7为环形全规约法的分散规约阶段的第三步状态示意图;图8为环形全规约法的全收集阶段的第一步状态示意图;图9为环形全规约法的全收集阶段的第二步状态示意图;图10为环形全规约法的全收集阶段的第三步状态示意图。
在上述实施例的基础上,本发明实施例提供另一种基于全规约法执行梯度数据聚合操作的方案。
全规约法无需控制器这个中心节点,而是在各计算节点间沿全规约逻辑链传递梯度数据进行聚合。则在本发明实施例提供的分布式协同训练控制方法中,S202中自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:自对应第一层模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层聚合梯度数据。
全规约逻辑链定义了在各计算节点间执行全规约操作时的梯度数据传递方向。全规约法包括环形全规约(Ring AllReduce)法、树形全规约法(Tree AllReduce)等。在本发明实施例提供的分布式协同训练控制方法中,全规约逻辑链可以为全规约逻辑链包括但不限于环形全规约逻辑链或树形全规约逻辑链。
在执行环形全规约的过程中,为使各计算节点在同一时间均在执行传输任务,按照计算节点的数量划分要传输的数据块。则S102中自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:自对应第一层模型网络的梯度数据起,将当前层的梯度数据分为N份并分别沿环形全规约逻辑链的同步方向传递进行全规约操作,将接收到的当前层沿环形全规约逻辑链聚合的N份梯度数据进行聚合得到当前层的聚合梯度数据,依此得到各层聚合梯度数据;其中,N为环形全规约逻辑链中计算节点的数量。
下面结合图3至图10对应用环形全规约法执行本发明实施例提供的分布式协同训练控制方法的步骤进行介绍。
如图3所示,以执行分布式训练任务的计算节点有四个为例,分别为计算节点1、计算节点2、计算节点3、计算节点4。在执行环形全规约的过程中,每个计算节点都有一个左邻节点和一个右邻节点,该计算节点只会向它其中一个邻居节点发送梯度数据数据,并从另一个邻居节点接收梯度数据。环形全规约法主要可以分为分散规约(ScatterReduce)和全收集(Allgather)两步。在分散规约(ScatterReduce)的步骤中,各计算节点将交换数据,使每个计算节点可以得到最终结果的一个块。在全收集(Allgather)的步骤中,各计算节点将交换这些块,以便所有计算节点都能得到完整的最终结果。
如图3所示,以全规约逻辑链的同步方向为计算节点1→计算节点2→计算节点3→计算节点4→计算节点1为例,图4为初始化状态,通常根据节点数划分要同步的数据块数量,如有四个计算节点,则各计算节点上均划分四个要同步的数据块(计算节点1初始数据块为a0、a1、a2、a3,计算节点2初始数据块为b0、b1、b2、b3,计算节点3初始数据块为c0、c1、c2、c3,计算节点4初始数据块为d0、d1、d2、d3),可以使同一时间各计算节点间均有数据传输。图5至图7为图3所示全规约逻辑链的分散规约(ScatterReduce)阶段。如图5所示,计算节点1向计算节点2发送a0,计算节点2向计算节点3发送b1,计算节点3向计算节点4发送c2,计算节点4向计算节点1发送d3。如图6所示,计算节点1向计算节点2发送a3+d3,计算节点2向计算节点3发送a0+b0,计算节点3向计算节点4发送b1+c1,计算节点4向计算节点1发送c2+d2。如图7所示,计算节点1向计算节点2发送a2+b2+c2,计算节点2向计算节点3发送a3+b3+c3,计算节点3向计算节点4发送a0+b0+c0,计算节点4向计算节点1发送b1+c1+d1,此时计算节点1得到了最终结果块a1+b1+c1+d1,计算节点2得到了最终结果块a2+b2+c2+d2,计算节点3得到了最终结果块a3+b3+c3+d3,计算节点4得到了最终结果块a0+b0+c0+d0。图8至图10为图3所示全规约逻辑链的全收集(Allgather)阶段,如图8所示,计算节点1向计算节点2发送a1+b1+c1+d1,计算节点2向计算节点3发送a2+b2+c2+d2,计算节点3向计算节点4发送a3+b3+c3+d3,计算节点4向计算节点1发送a0+b0+c0+d0。如图9所示,计算节点1向计算节点2发送a0+b0+c0+d0,计算节点2向计算节点3发送a1+b1+c1+d1,计算节点3向计算节点4发送a2+b2+c2+d2,计算节点4向计算节点1发送a3+b3+c3+d3。如图10所示,计算节点1向计算节点2发送a3+b3+c3+d3,计算节点2向计算节点3发送a0+b0+c0+d0,计算节点3向计算节点4发a1+b1+c1+d1,计算节点4向计算节点1发送a2+b2+c2+d2,此时所有计算节点都得到所有最终结果块,完成环形全规约过程。
环形全规约的同步方向除了图3所示的顺时针方向,也可以为逆时针方向。
下面对本发明实施例五进行说明。
图11为本发明实施例提供的环形全规约法的双向链路执行示意图;图12为本发明实施例提供的环形全规约法的初始化状态示意图;图13为本发明实施例提供的环形全规约法的分散规约阶段的第一步状态示意图;图14为本发明实施例提供的环形全规约法的分散规约阶段的第二步状态示意图;图15为本发明实施例提供的环形全规约法的分散规约阶段的第三步状态示意图;图16为本发明实施例提供的环形全规约法的全收集阶段的第一步状态示意图;图17为本发明实施例提供的环形全规约法的全收集阶段的第二步状态示意图;图18为本发明实施例提供的环形全规约法的全收集阶段的第三步状态示意图。
由于当前物理拓扑中的链路多为双向链路,而环形全规约法中的数据只沿单个方向进行传输,即只利用了单向链路带宽,这就造成了另一方向的物理链路带宽浪费。
为了提高梯度数据同步操作过程中的带宽利用率,将梯度数据平均分为两份,然后在同一个环形全规约逻辑链中同时实施两组环形全规约算法,分别对应使用上行链路和下行链路。在上述实施例的实施例的基础上,在本发明实施例提供的分布式协同训练控制方法中,S102中自对应第一层模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层聚合梯度数据,可以包括:自对应第一层模型网络的梯度数据起,将当前层的梯度数据分为两份并分别沿环形全规约逻辑链的上行链路和环形全规约逻辑链的下行链路传递进行全规约操作,将自上行链路聚合的梯度数据和自下行链路聚合的梯度数据进行聚合得到当前层的聚合梯度数据,依此得到各层聚合梯度数据。
在具体实施中,可以分别将各层梯度数据分别分为两份,一份采用上行链路进行梯度数据聚合操作,另一份采用下行链路进行梯度数据聚合操作。
结合环形全规约法的分块规则,S102中自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以进一步包括:自对应第一层模型网络的梯度数据起,将当前层的梯度数据分为2N份并分别沿环形全规约逻辑链的上行链路和环形全规约逻辑链的下行链路传递进行全规约操作,将接收到的当前层沿上行链路聚合的N份梯度数据和沿下行链路聚合的N份梯度数据进行聚合得到当前层的聚合梯度数据,依此得到各层聚合梯度数据;其中,N为环形全规约逻辑链中计算节点的数量。
下面结合图11至图18对应用环形全规约法执行本发明实施例提供的分布式协同训练控制方法的步骤进行介绍。
如图11所示,以执行分布式训练任务的计算节点有四个为例,分别为计算节点1、计算节点2、计算节点3、计算节点4。在同时开启两组环形全规约算法的情况下,环形全规约逻辑链的同步方向包括了图11所示的顺时针方向和逆时针方向,即各计算节点同时向左邻节点和右邻节点发送数据,并同时从左邻节点和右邻节点接收数据。图12为初始化状态,在执行每层梯度数据的梯度数据聚合操作时,均将梯度数据分为2N份,在四个计算节点的情况下就是分为8份,各计算节点上均有八个要同步的数据块(计算节点1初始数据块为a0~a7,计算节点2初始数据块为b0~b7,计算节点3初始数据块为c0~c7,计算节点4初始数据块为d0~d7)。图13至图15为图11所示全规约逻辑链的分散规约(ScatterReduce)阶段。如图13所示,计算节点1同时向计算节点2发送a0、向计算节点4发送a4,计算节点2同时向计算节点3发送b1、向计算节点1发送b7,计算节点3同时向计算节点4发送c2、向计算节点2发送c6,计算节点4同时向计算节点1发送d3向计算节点3发送d5。如图14所示,计算节点1同时向计算节点2发送a3+d3、向计算节点4发送a7+b7,计算节点2向计算节点3发送a0+b0,计算节点3同时向计算节点4发送b1+c1、向计算节点2发送c5+d5,计算节点4同时向计算节点1发送c2+d2、向计算节点3发送a4+d4。如图15所示,计算节点1同时向计算节点2发送a2+b2+c2、向计算节点4发送a6+b6+c6,计算节点2同时向计算节点3发送a3+b3+c3、向计算节点1发送b5+c5+d5,计算节点3同时向计算节点4发送a0+b0+c0、向计算节点2发送a4+b4+c4,计算节点4同时向计算节点1发送b1+c1+d1、向计算节点3发送a7+b7+c7,此时计算节点1得到了最终结果块a1+b1+c1+d1、a5+b5+c5+d5,计算节点2得到了最终结果块a2+b2+c2+d2、a4+b4+c4+d4,计算节点3得到了最终结果块a3+b3+c3+d3、a7+b7+c7+d7,计算节点4得到了最终结果块a0+b0+c0+d0、a6+b6+c6+d6。
图16至图18为图11所示全规约逻辑链的全收集(Allgather)阶段,如图16所示,计算节点1同时向计算节点2发送a1+b1+c1+d1、向计算节点4发送a5+b5+c5+d5,计算节点2同时向计算节点3发送a2+b2+c2+d2、向计算节点1发送a4+b4+c4+d4,计算节点3同时向计算节点4发送a3+b3+c3+d3、向计算节点2发送a7+b7+c7+d7,计算节点4同时向计算节点1发送a0+b0+c0+d0、向计算节点3发送a6+b6+c6+d6。如图17所示,计算节点1同时向计算节点2发送a0+b0+c0+d0、向计算节点发送a4+b4+c4+d4,计算节点2同时向计算节点3发送a1+b1+c1+d1、向计算节点1发送a7+b7+c7+d7,计算节点3同时向计算节点4发送a2+b2+c2+d2、向计算节点2发送a6+b6+c6+d6,计算节点4同时向计算节点1发送a3+b3+c3+d3、向计算节点3发送a5+b5+c5+d5。如图18所示,计算节点1同时向计算节点2发送a3+b3+c3+d3、向计算节点4发送a7+b7+c7+d7,计算节点2同时向计算节点3发送a0+b0+c0+d0、向计算节点1发送a6+b6+c6+d6,计算节点3同时向计算节点4发a1+b1+c1+d1、向计算节点2发送a5+b5+c5+d5,计算节点4同时向计算节点1发送a2+b2+c2+d2、向计算节点3发送a4+b4+c4+d4,此时所有计算节点都得到所有最终结果块,完成环形全规约过程。
应用本发明实施例提供的梯度数据聚合方法,可以充分利用各计算节点间的上行链路和下行链路,快速执行每层梯度数据的梯度数据聚合操作,保证下一次迭代计算中的前向传播计算的顺利执行。
下面对本发明实施例六进行说明。
图19为本发明实施例提供的一种树形全规约法的初始化状态示意图;图20为本发明实施例提供的一种树形全规约法的规约阶段的第一步状态示意图;图21为本发明实施例提供的一种树形全规约法的规约阶段的第二步状态示意图;图22为本发明实施例提供的一种树形全规约法的规约阶段的第三步状态示意图;图23为本发明实施例提供的一种树形全规约法的规约阶段的第四步状态示意图;图24为本发明实施例提供的一种树形全规约法的规约阶段的第五步状态示意图;图25为本发明实施例提供的一种树形全规约法的广播阶段的第一步状态示意图;图26为本发明实施例提供的一种树形全规约法的广播阶段的第二步状态示意图;图27为本发明实施例提供的一种树形全规约法的广播阶段的第三步状态示意图;图28为本发明实施例提供的一种树形全规约法的广播阶段的第四步状态示意图;图29为本发明实施例提供的一种树形全规约法的广播阶段的第五步状态示意图。
在上述实施例的基础上,本发明实施例提供一种基于树形全规约法执行梯度数据聚合操作的方案。
树形全规约法的全规约逻辑链路是将各计算节点划分为叶子节点、非叶子结点乃至根节点的多层树形结构,梯度数据聚合方向为自叶子节点到根节点进行聚合。则自对应第一层模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层聚合梯度数据,可以包括:按第一层至最后一层的顺序将所有梯度数据划分为多个数据块(chunk);依次将数据块沿树形全规约逻辑链执行全规约操作,以依次得到各层聚合梯度数据。
具体来说,在划分数据块时,可以按照各计算节点间的链路带宽进行划分,以充分链路带宽资源。
以计算节点共有四个为例,分别为计算节点1、计算节点2、计算节点3、计算节点4。如图19所示,假设计算节点1、计算节点2为叶子节点,计算节点3为计算节点1和计算节点2的父节点,计算节点4为计算节点3的父节点也是整个全规约逻辑链的根节点,在初始化时,假设根据节点间链路带宽,各计算节点均将所有要聚合的梯度数据划分为四个数据块,则计算节点1初始数据块为a0、a1、a2、a3,计算节点2初始数据块为b0、b1、b2、b3,计算节点3初始数据块为c0、c1、c2、c3,计算节点4初始数据块为d0、d1、d2、d3。
图20至图24是树形全规约法的规约(Reduce)阶段。如图20所示,计算节点1和计算节点2同时向计算节点3发送a0和b0。如图21所示,计算节点1和计算节点2同时向计算节点3发送a1和b1,同时计算节点3向计算节点4发送c0+a0+b0。如图22所示,计算节点1和计算节点2同时向计算节点3发送a2和b2,同时计算节点3向计算节点4发送c1+a1+b1。如图23所示,计算节点1和计算节点2同时向计算节点3发送a3和b3,同时计算节点3向计算节点4发送c2+a2+b2。如图24所示,计算节点3向计算节点4发送c3+a3+b3。此时,计算节点4得到了全部聚合梯度数据。
图25至图29是树形全规约法的广播(broadcast)阶段。如图25所示,计算节点4向计算节点3发送d0+c0+a0+b0。如图26所示,计算节点4向计算节点3发送d1+c1+a1+b1,同时计算节点3向计算节点1、计算节点2发送d0+c0+a0+b0。如图27所示,计算节点4向计算节点3发送d2+c2+a2+b2,同时计算节点3向计算节点1、计算节点2发送d1+c1+a1+b1。如图28所示,计算节点4向计算节点3发送d3+c3+a3+b3,同时计算节点3向计算节点1、计算节点2发送d2+c2+a2+b2。如图29所示,计算节点3向计算节点1、计算节点2发送d3+c3+a3+b3。此时,全部计算节点均得到了全部聚合梯度数据。
应用树形全规约法执行本发明实施例提供的分布式协同训练控制方法的梯度数据聚合操作,相较于相关技术中在当前次迭代训练中自最后一层开始执行梯度数据聚合操作的方案,仅需调用一次全规约算法即可实现整个模型梯度数据的聚合,而不需要逐层调用。具体来说,一次调用全规约算法的过程不会影响当前次迭代训练的梯度数据聚合操作和下一次迭代训练的前向传播计算过程的重叠,因为数据块的聚合顺序和下一次迭代训练的前向传播计算顺序是一致的,比如第一个数据块先聚合完成,然后是第二次,因此类推。这样当计算节点检测到第一层梯度数据聚合完成并更新第一层模型参数后即可开始下一次迭代训练的前向传播计算,而不需要等待所有梯度数据都聚合后才开始。这样根据网络带宽对数据块进行更好的划分,可以减少碎片,更好地利用计算节点间的链路带宽,同时节省了多次调用全规约算法所需的初始化等其他操作时间,减少下一次迭代训练的前向传播计算等待当前次迭代训练的梯度数据聚合操作及模型参数更新操作的时间,提高了梯度数据聚合效率。
下面对本发明实施例七进行说明。
图30为本发明实施例提供的另一种树形全规约法的第三步状态示意图;图31为本发明实施例提供的另一种树形全规约法的第四步状态示意图;图32为本发明实施例提供的另一种树形全规约法的第五步状态示意图;图33为本发明实施例提供的另一种树形全规约法的第六步状态示意图;图34为本发明实施例提供的另一种树形全规约法的第七步状态示意图。
在上述实施例的基础上,本发明实施例提供另一种基于树形全规约法执行梯度数据聚合操作的方案。
在本发明实施例提供的分布式协同训练控制方法中,自对应第一层模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层聚合梯度数据,可以包括:按第一层至最后一层的顺序将所有梯度数据划分为多个数据块;依次将数据块沿树形全规约逻辑链的上行链路执行规约操作以将各计算节点的数据块上传至计算节点中的根节点进行梯度数据聚合操作,并同时将已完成梯度数据聚合操作的聚合数据块自树形全规约逻辑链的下行链路执行广播操作,以依次得到各层聚合梯度数据。
与上述实施例不同的是,本发明实施例提供的基于树形全规约法执行梯度数据聚合操作的方案充分利用计算节点间的双向链路,使树形全规约法的规约(Reduce)阶段和广播(broadcast)阶段重叠。
在划分数据块时,可以按照各计算节点间的链路带宽进行划分,以充分链路带宽资源。
以计算节点共有四个为例,分别为计算节点1、计算节点2、计算节点3、计算节点4。则本发明实施例提供的基于树形全规约法执行梯度数据聚合操作,初始化如图19,第一步与图20相同,第二步与图21相同,在第三步开始与上述实施例提供的基于树形全规约法执行梯度数据聚合操作区分。如图30所示,在本发明实施例提供的基于树形全规约法执行梯度数据聚合操作的第三步,区别于图22的是,除了计算节点1和计算节点2同时向计算节点3发送a2和b2,同时计算节点3向计算节点4发送c1+a1+b1,还同时执行计算节点4向计算节点3发送d0+c0+a0+b0。如图31所示,在本发明实施例提供的基于树形全规约法执行梯度数据聚合操作的第四步,区别于图23的是,除了计算节点1和计算节点2同时向计算节点3发送a3和b3,同时计算节点3向计算节点4发送c2+a2+b2,还同时执行计算节点4向计算节点3发送d1+c1+a1+b1,同时计算节点3向计算节点1、计算节点2发送d0+c0+a0+b0。如图32所示,在本发明实施例提供的基于树形全规约法执行梯度数据聚合操作的第四步,区别于图24的是,除了计算节点3向计算节点4发送c3+a3+b3,同时还执行计算节点4向计算节点3发送d2+c2+a2+b2,同时计算节点3向计算节点1、计算节点2发送d1+c1+a1+b1。如图33所示,在本发明实施例提供的基于树形全规约法执行梯度数据聚合操作的第五步,计算节点4向计算节点3发送d3+c3+a3+b3,同时计算节点3向计算节点1、计算节点2发送d2+c2+a2+b2。如图34所示,在本发明实施例提供的基于树形全规约法执行梯度数据聚合操作的第六步,计算节点3向计算节点1、计算节点2发送d3+c3+a3+b3。此时,全部计算节点均得到了全部聚合梯度数据。
应用树形全规约法执行本发明实施例提供的分布式协同训练控制方法的梯度数据聚合操作,相较于相关技术中在当前次迭代训练中自最后一层开始执行梯度数据聚合操作的方案,不仅只需要一次调用全规约算法以减少碎片、更好地利用计算节点间的链路带宽、节省多次调用全规约算法所需的初始化等其他操作时间,减少下一次迭代训练的前向传播计算等待当前次迭代训练的梯度数据聚合操作及模型参数更新操作的时间,还通过充分利用了各计算节点间的双向链路,进一步加快了梯度数据聚合操作,进一步避免下一次迭代训练的前向传播计算等待当前次迭代训练的梯度数据聚合操作及模型参数更新操作。
下面对本发明实施例八进行说明。
在上述实施例的基础上,本发明实施例介绍一种基于一台控制器来聚合所有计算节点的梯度数据的方法的分布式训练方案。应用于控制器,本发明实施例提供的分布式协同训练控制方法可以包括:
将训练数据分批后分发至各计算节点以进行对模型网络的迭代计算;
自对应第一层模型网络的梯度数据起,依次接收各计算节点在执行完对模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,并将各计算节点的梯度数据执行梯度数据聚合操作得到聚合梯度数据后发送至各计算节点,以使各计算节点利用聚合梯度数据依次更新模型网络的各层模型参数并随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算。
其中,依次接收各计算节点在执行完对模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,可以包括:依次接收各计算节点在执行完当前次迭代计算中的反向传播计算后自先进后出的梯度队列中读出的梯度数据。
可以将梯度队列的大小等于模型网络的模型参数量。则计算节点执行完对模型网络的当前次迭代计算中的反向传播计算,可以包括:
计算节点判断梯度队列是否已写满;
如果是,则计算节点确定当前次迭代计算中的反向传播计算执行完毕,自对应第一层模型网络的梯度数据起,依次读出梯度队列中的梯度数据发送至控制器;
如果否,则确定当前次迭代计算中的反向传播计算未执行完毕。
本发明实施例的具体实施方式可以参见上述实施例中对于基于一台控制器来聚合所有计算节点的梯度数据的方法实现本发明实施例提供的分布式协同训练控制方法的说明,在此不再赘述。
上文详述了分布式协同训练控制方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的分布式协同训练控制装置、设备及存储介质。
下面对本发明实施例九进行说明。
图35为本发明实施例提供的一种分布式协同训练控制装置的结构示意图。
如图35所示,应用于计算节点,本发明实施例提供的分布式协同训练控制装置包括:
存储单元1901,用于存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据;
同步单元1902,用于在当前次迭代计算中的反向传播计算结束后,自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据;
前向计算单元1903,用于利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,并随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算。
其中,存储单元1901存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,可以包括:将当前次迭代计算中的反向传播计算得到的各层梯度数据存入先进后出的梯度队列。
在一些实施中,梯度队列的大小等于模型网络的模型参数量;
同步单元1902在当前次迭代计算中的反向传播计算结束后,自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:
判断梯度队列是否已写满;
如果是,则确定当前次迭代计算中的反向传播计算执行完毕,自对应第一层模型网络的梯度数据起依次读出梯度队列中的梯度数据以执行梯度数据聚合操作以依次得到各层聚合梯度数据;
如果否,则确定当前次迭代计算中的反向传播计算未执行完毕。
在一些实施中,同步单元1902自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:自对应第一层模型网络的梯度数据起,依次将各层梯度数据发送至控制器,并接收控制器根据各计算节点上传的梯度数据聚合得到的各层聚合梯度数据。
或者,同步单元1902自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:自对应第一层模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层聚合梯度数据。
在一些实施中,全规约逻辑链可以包括环形全规约逻辑链。
或者,同步单元1902自对应第一层模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层聚合梯度数据,可以包括:自对应第一层模型网络的梯度数据起,将当前层的梯度数据分为两份并分别沿环形全规约逻辑链的上行链路和环形全规约逻辑链的下行链路传递进行全规约操作,将自上行链路聚合的梯度数据和自下行链路聚合的梯度数据进行聚合得到当前层的聚合梯度数据,依此得到各层聚合梯度数据。
在一些实施中,全规约逻辑链可以包括树形全规约逻辑链。
则在一些实施中,同步单元1902自对应第一层模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层聚合梯度数据,可以包括:按第一层至最后一层的顺序将所有梯度数据划分为多个数据块;依次将数据块沿树形全规约逻辑链执行全规约操作,以依次得到各层聚合梯度数据。
或者,同步单元1902自对应第一层模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层聚合梯度数据,可以包括:按第一层至最后一层的顺序将所有梯度数据划分为多个数据块;依次将数据块沿树形全规约逻辑链的上行链路执行规约操作以将各计算节点的数据块上传至计算节点中的根节点进行梯度数据聚合操作,并同时将已完成梯度数据聚合操作的聚合数据块自树形全规约逻辑链的下行链路执行广播操作,以依次得到各层聚合梯度数据。
在一些实施中,同步单元1902自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:自对应第一层模型网络的梯度数据起,将当前层的梯度数据分为N份并分别沿环形全规约逻辑链的同步方向传递进行全规约操作,将接收到的当前层沿环形全规约逻辑链聚合的N份梯度数据进行聚合得到当前层的聚合梯度数据,依此得到各层聚合梯度数据;
其中,N为环形全规约逻辑链中计算节点的数量。
在一些实施中,同步单元1902自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:自对应第一层模型网络的梯度数据起,将当前层的梯度数据分为2N份并分别沿环形全规约逻辑链的上行链路和环形全规约逻辑链的下行链路传递进行全规约操作,将接收到的当前层沿上行链路聚合的N份梯度数据和沿下行链路聚合的N份梯度数据进行聚合得到当前层的聚合梯度数据,依此得到各层聚合梯度数据;
其中,N为环形全规约逻辑链中计算节点的数量。
在一些实施中,前向计算单元1903利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,并随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算,可以包括:自对应第一层模型网络的梯度数据起,每接收到一层聚合梯度数据并利用聚合梯度数据更新模型网络中对应层的模型参数后,即利用更新的模型网络执行在下一次迭代计算中对应层的前向传播计算。
在一些实施中,前向计算单元1903利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,可以包括:以各计算节点的梯度数据的平均值作为聚合梯度数据更新模型网络的模型参数。
存储单元1901存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,可以包括:运行第一线程在执行当前次迭代计算中的反向传播计算时每得到一层梯度数据即通知第二线程存储梯度数据;
同步单元1902在当前次迭代计算中的反向传播计算结束后,自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,可以包括:运行第二线程在当前次迭代计算中的反向传播计算结束后,自对应第一层模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据;
前向计算单元1903利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,并随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算,可以包括:运行第二线程利用接收到的当前次迭代计算的各层聚合梯度数据依次更新模型网络的各层模型参数,同时运行第一线程随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本发明实施例十进行说明。
应用于控制器,本发明实施例提供的分布式协同训练控制装置包括:
发送单元,用于将训练数据分批后分发至各计算节点以进行对模型网络的迭代计算;
第一聚合单元,用于自对应第一层模型网络的梯度数据起,依次接收各计算节点在执行完对模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,并将各计算节点的梯度数据执行梯度数据聚合操作得到聚合梯度数据后发送至各计算节点,以使各计算节点利用聚合梯度数据依次更新模型网络的各层模型参数并随着各层模型参数的更新执行对模型网络的下一次迭代计算的前向传播计算。
在一些实施中,第一聚合单元依次接收各计算节点在执行完对模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,可以包括:
依次接收各计算节点在执行完当前次迭代计算中的反向传播计算后自先进后出的梯度队列中读出的梯度数据。
在一些实施中,梯度队列的大小等于模型网络的模型参数量;
计算节点执行完对模型网络的当前次迭代计算中的反向传播计算,可以包括:
计算节点判断梯度队列是否已写满;
如果是,则计算节点确定当前次迭代计算中的反向传播计算执行完毕,自对应第一层模型网络的梯度数据起,依次读出梯度队列中的梯度数据发送至控制器;
如果否,则确定当前次迭代计算中的反向传播计算未执行完毕。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本发明实施例十一进行说明。
图36为本发明实施例提供的一种分布式协同训练控制设备的结构示意图。
如图36所示,本发明实施例提供的分布式协同训练控制设备包括:
存储器2010,用于存储计算机程序2011;
处理器2020,用于执行计算机程序2011,该计算机程序2011被处理器2020执行时实现如上述任意一项实施例所述分布式协同训练控制方法的步骤。
其中,处理器2020可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器2020可以采用数字信号处理DSP(Digital Signal Processing)、现场可编程门阵列FPGA(Field-Programmable Gate Array)、可编程逻辑阵列PLA(Programmable LogicArray)中的至少一种硬件形式来实现。处理器2020也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器CPU(CentralProcessing Unit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2020可以集成有图像处理器GPU(Graphics Processing Unit),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2020还可以包括人工智能AI(Artificial Intelligence)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2010可以包括一个或多个存储介质,该存储介质可以是非暂态的。存储器2010还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器2010至少用于存储以下计算机程序2011,其中,该计算机程序2011被处理器2020加载并执行之后,能够实现前述任一实施例公开的分布式协同训练控制方法中的相关步骤。另外,存储器2010所存储的资源还可以包括操作系统2012和数据2013等,存储方式可以是短暂存储或者永久存储。其中,操作系统2012可以为Windows。数据2013可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,分布式协同训练控制设备还可包括有显示屏2030、电源2040、通信接口2050、输入输出接口2060、传感器2070以及通信总线2080。
本领域技术人员可以理解,图36中示出的结构并不构成对分布式协同训练控制设备的限定,可以包括比图示更多或更少的组件。
本发明实施例提供的分布式协同训练控制设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的分布式协同训练控制方法,效果同上。
下面对本发明实施例十二进行说明。
需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。
为此,本发明实施例还提供一种存储介质,该存储介质上存储有计算机程序,计算机程序被处理器执行时实现如分布式协同训练控制方法的步骤。
该存储介质可以包括:U盘、移动硬盘、只读存储器ROM(Read-Only Memory)、随机存取存储器RAM(Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的分布式协同训练控制方法的步骤,效果同上。
以上对本发明所提供的一种分布式协同训练控制方法、系统、装置、设备及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及存储介质而言,由于其与实施例公开的方法及系统相对应,所以描述的比较简单,相关之处参见方法及系统部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (25)

1.一种分布式协同训练控制方法,其特征在于,应用于计算节点,包括:
存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据;
在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据;
利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算。
2.根据权利要求1所述的分布式协同训练控制方法,其特征在于,所述存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,包括:
将所述当前次迭代计算中的反向传播计算得到的各层梯度数据存入先进后出的梯度队列。
3.根据权利要求2所述的分布式协同训练控制方法,其特征在于,所述梯度队列的大小等于所述模型网络的模型参数量;
所述在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
判断所述梯度队列是否已写满;
如果是,则确定所述当前次迭代计算中的反向传播计算执行完毕,自对应第一层所述模型网络的梯度数据起依次读出所述梯度队列中的梯度数据以执行所述梯度数据聚合操作以依次得到各层所述聚合梯度数据;
如果否,则确定所述当前次迭代计算中的反向传播计算未执行完毕。
4.根据权利要求1所述的分布式协同训练控制方法,其特征在于,所述自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
自对应第一层所述模型网络的梯度数据起,依次将各层梯度数据发送至独立于所述计算节点的控制器,并接收所述控制器根据各所述计算节点上传的梯度数据聚合得到的各层所述聚合梯度数据。
5.根据权利要求1所述的分布式协同训练控制方法,其特征在于,所述自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
自对应第一层所述模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层所述聚合梯度数据。
6.根据权利要求5所述的分布式协同训练控制方法,其特征在于,所述全规约逻辑链包括环形全规约逻辑链。
7.根据权利要求6所述的分布式协同训练控制方法,其特征在于,所述自对应第一层所述模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层所述聚合梯度数据,包括:
自对应第一层所述模型网络的梯度数据起,将当前层的梯度数据分为两份并分别沿所述环形全规约逻辑链的上行链路和所述环形全规约逻辑链的下行链路传递进行全规约操作,将自所述上行链路聚合的梯度数据和自所述下行链路聚合的梯度数据进行聚合得到当前层的所述聚合梯度数据,依此得到各层所述聚合梯度数据。
8.根据权利要求5所述的分布式协同训练控制方法,其特征在于,所述全规约逻辑链包括树形全规约逻辑链。
9.根据权利要求8所述的分布式协同训练控制方法,其特征在于,所述自对应第一层所述模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层所述聚合梯度数据,包括:
按第一层至最后一层的顺序将所有梯度数据划分为多个数据块;
依次将所述数据块沿所述树形全规约逻辑链执行全规约操作,以依次得到各层所述聚合梯度数据。
10.根据权利要求8所述的分布式协同训练控制方法,其特征在于,所述自对应第一层所述模型网络的梯度数据起,依次将各层梯度数据沿全规约逻辑链的同步方向传递进行全规约操作,以依次得到各层所述聚合梯度数据,包括:
按第一层至最后一层的顺序将所有梯度数据划分为多个数据块;
依次将所述数据块沿所述树形全规约逻辑链的上行链路执行规约操作以将各所述计算节点的数据块上传至所述计算节点中的根节点进行梯度数据聚合操作,并同时将已完成梯度数据聚合操作的聚合数据块自所述树形全规约逻辑链的下行链路执行广播操作,以依次得到各层所述聚合梯度数据。
11.根据权利要求1所述的分布式协同训练控制方法,其特征在于,所述自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
自对应第一层所述模型网络的梯度数据起,将当前层的梯度数据分为N份并分别沿环形全规约逻辑链的同步方向传递进行全规约操作,将接收到的当前层沿所述环形全规约逻辑链聚合的N份梯度数据进行聚合得到当前层的所述聚合梯度数据,依此得到各层所述聚合梯度数据;
其中,N为所述环形全规约逻辑链中所述计算节点的数量。
12.根据权利要求1所述的分布式协同训练控制方法,其特征在于,所述自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
自对应第一层所述模型网络的梯度数据起,将当前层的梯度数据分为2N份并分别沿环形全规约逻辑链的上行链路和所述环形全规约逻辑链的下行链路传递进行全规约操作,将接收到的当前层沿所述上行链路聚合的N份梯度数据和沿所述下行链路聚合的N份梯度数据进行聚合得到当前层的所述聚合梯度数据,依此得到各层所述聚合梯度数据;
其中,N为所述环形全规约逻辑链中所述计算节点的数量。
13.根据权利要求1所述的分布式协同训练控制方法,其特征在于,所述利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算,包括:
自对应第一层所述模型网络的梯度数据起,每接收到一层所述聚合梯度数据并利用所述聚合梯度数据更新所述模型网络中对应层的模型参数后,即利用更新的所述模型网络执行在所述下一次迭代计算中对应层的前向传播计算。
14.根据权利要求1所述的分布式协同训练控制方法,其特征在于,所述利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,包括:
以各计算节点的梯度数据的平均值作为所述聚合梯度数据更新所述模型网络的模型参数。
15.根据权利要求1所述的分布式协同训练控制方法,其特征在于,所述存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,包括:
运行第一线程在执行所述当前次迭代计算中的反向传播计算时每得到一层梯度数据即通知第二线程存储梯度数据;
所述在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据,包括:
运行所述第二线程在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层所述聚合梯度数据;
所述利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算,包括:
运行所述第二线程利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,同时运行所述第一线程随着各层模型参数的更新执行对所述模型网络的所述下一次迭代计算的前向传播计算。
16.一种分布式协同训练控制方法,其特征在于,应用于控制器,包括:
将训练数据分批后分发至各计算节点以进行对模型网络的迭代计算;
自对应第一层所述模型网络的梯度数据起,依次接收各所述计算节点在执行完对所述模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,并将各所述计算节点的梯度数据执行梯度数据聚合操作得到聚合梯度数据后发送至各所述计算节点,以使各所述计算节点利用所述聚合梯度数据依次更新所述模型网络的各层模型参数并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算。
17.根据权利要求16所述的分布式协同训练控制方法,其特征在于,所述依次接收各所述计算节点在执行完对所述模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,包括:
依次接收各所述计算节点在执行完所述当前次迭代计算中的反向传播计算后自先进后出的梯度队列中读出的梯度数据。
18.根据权利要求17所述的分布式协同训练控制方法,其特征在于,所述梯度队列的大小等于所述模型网络的模型参数量;
所述计算节点执行完对所述模型网络的当前次迭代计算中的反向传播计算,包括:
所述计算节点判断所述梯度队列是否已写满;
如果是,则所述计算节点确定所述当前次迭代计算中的反向传播计算执行完毕,自对应第一层所述模型网络的梯度数据起,依次读出所述梯度队列中的梯度数据发送至所述控制器;
如果否,则所述确定所述当前次迭代计算中的反向传播计算未执行完毕。
19.一种分布式协同训练控制系统,其特征在于,包括多个计算节点;
所述计算节点用于存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据,在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行梯度数据聚合操作以依次得到各层聚合梯度数据,并利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算;
所述聚合梯度数据根据各所述计算节点的梯度数据聚合得到。
20.根据权利要求19所述的分布式协同训练控制系统,其特征在于,所述聚合梯度数据为沿各所述计算节点组成的全规约逻辑链的同步方向执行全规约操作得到。
21.根据权利要求19所述的分布式协同训练控制系统,其特征在于,还包括控制器;
所述控制器用于自对应第一层所述模型网络的梯度数据起,依次接收各所述计算节点在执行完对所述模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,并将各所述计算节点的梯度数据执行梯度数据聚合操作得到聚合梯度数据后发送至各所述计算节点。
22.一种分布式协同训练控制装置,其特征在于,应用于计算节点,包括:
存储单元,用于存储对模型网络的当前次迭代计算中的反向传播计算得到的各层梯度数据;
同步单元,用于在所述当前次迭代计算中的反向传播计算结束后,自对应第一层所述模型网络的梯度数据起依次执行对各层梯度数据的梯度数据聚合操作以依次得到各层聚合梯度数据;
前向计算单元,用于利用接收到的所述当前次迭代计算的各层所述聚合梯度数据依次更新所述模型网络的各层模型参数,并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算。
23.一种分布式协同训练控制装置,其特征在于,应用于控制器,包括:
发送单元,用于将训练数据分批后分发至各计算节点以进行对模型网络的迭代计算;
第一聚合单元,用于自对应第一层所述模型网络的梯度数据起,依次接收各所述计算节点在执行完对所述模型网络的当前次迭代计算中的反向传播计算后发送的梯度数据,并将各所述计算节点的梯度数据执行梯度数据聚合操作得到聚合梯度数据后发送至各所述计算节点,以使各所述计算节点利用所述聚合梯度数据依次更新所述模型网络的各层模型参数并随着各层模型参数的更新执行对所述模型网络的下一次迭代计算的前向传播计算。
24.一种分布式协同训练控制设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至18任意一项所述分布式协同训练控制方法的步骤。
25.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至18任意一项所述分布式协同训练控制方法的步骤。
CN202310928131.5A 2023-07-27 2023-07-27 分布式协同训练控制方法、系统、装置、设备及存储介质 Active CN116644803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310928131.5A CN116644803B (zh) 2023-07-27 2023-07-27 分布式协同训练控制方法、系统、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310928131.5A CN116644803B (zh) 2023-07-27 2023-07-27 分布式协同训练控制方法、系统、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116644803A true CN116644803A (zh) 2023-08-25
CN116644803B CN116644803B (zh) 2023-11-03

Family

ID=87619279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310928131.5A Active CN116644803B (zh) 2023-07-27 2023-07-27 分布式协同训练控制方法、系统、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116644803B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955365A (zh) * 2023-09-21 2023-10-27 浪潮电子信息产业股份有限公司 梯度数据同步方法、模型训练方法、系统、设备及介质

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829441A (zh) * 2018-05-14 2018-11-16 中山大学 一种分布式深度学习的参数更新优化系统
CN108986063A (zh) * 2018-07-25 2018-12-11 浪潮(北京)电子信息产业有限公司 梯度融合的方法、装置及计算机可读存储介质
CN110033078A (zh) * 2018-01-12 2019-07-19 华为技术有限公司 一种基于树状拓扑的计算系统及方法
CN110134636A (zh) * 2018-02-09 2019-08-16 中兴通讯股份有限公司 模型训练方法、服务器和计算机可读存储介质
CN111917579A (zh) * 2020-07-30 2020-11-10 云知声智能科技股份有限公司 分布式训练方法、装置、设备和存储介质
WO2020226634A1 (en) * 2019-05-07 2020-11-12 Huawei Technologies Co., Ltd. Distributed synchronous training architecture using stale weights
CN112740237A (zh) * 2018-09-30 2021-04-30 华为技术有限公司 训练人工神经网络的方法和装置
US20210182660A1 (en) * 2019-12-16 2021-06-17 Soundhound, Inc. Distributed training of neural network models
CN113419931A (zh) * 2021-05-24 2021-09-21 北京达佳互联信息技术有限公司 分布式机器学习系统的性能指标确定方法及装置
CN113452655A (zh) * 2020-03-25 2021-09-28 阿里巴巴集团控股有限公司 一种分布式训练方法、梯度通信方法、装置以及计算设备
CN114327399A (zh) * 2021-11-25 2022-04-12 腾讯科技(深圳)有限公司 分布式训练方法、装置、计算机设备、存储介质和产品
US11425195B1 (en) * 2021-03-12 2022-08-23 Innovium, Inc. Massively parallel in-network compute
CN115310566A (zh) * 2022-10-12 2022-11-08 浪潮电子信息产业股份有限公司 分布式训练系统、方法、装置、设备及可读存储介质
CN115660078A (zh) * 2022-12-29 2023-01-31 浪潮电子信息产业股份有限公司 一种分布式计算方法、系统、存储介质和电子设备
CN116258197A (zh) * 2023-05-16 2023-06-13 之江实验室 基于参数计算和通信调度的分布式训练加速方法和系统

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110033078A (zh) * 2018-01-12 2019-07-19 华为技术有限公司 一种基于树状拓扑的计算系统及方法
US20200342297A1 (en) * 2018-01-12 2020-10-29 Huawei Technologies Co., Ltd. Tree Topology Based Computing System and Method
CN110134636A (zh) * 2018-02-09 2019-08-16 中兴通讯股份有限公司 模型训练方法、服务器和计算机可读存储介质
CN108829441A (zh) * 2018-05-14 2018-11-16 中山大学 一种分布式深度学习的参数更新优化系统
CN108986063A (zh) * 2018-07-25 2018-12-11 浪潮(北京)电子信息产业有限公司 梯度融合的方法、装置及计算机可读存储介质
CN112740237A (zh) * 2018-09-30 2021-04-30 华为技术有限公司 训练人工神经网络的方法和装置
WO2020226634A1 (en) * 2019-05-07 2020-11-12 Huawei Technologies Co., Ltd. Distributed synchronous training architecture using stale weights
US20210182660A1 (en) * 2019-12-16 2021-06-17 Soundhound, Inc. Distributed training of neural network models
CN113452655A (zh) * 2020-03-25 2021-09-28 阿里巴巴集团控股有限公司 一种分布式训练方法、梯度通信方法、装置以及计算设备
CN111917579A (zh) * 2020-07-30 2020-11-10 云知声智能科技股份有限公司 分布式训练方法、装置、设备和存储介质
US11425195B1 (en) * 2021-03-12 2022-08-23 Innovium, Inc. Massively parallel in-network compute
CN113419931A (zh) * 2021-05-24 2021-09-21 北京达佳互联信息技术有限公司 分布式机器学习系统的性能指标确定方法及装置
CN114327399A (zh) * 2021-11-25 2022-04-12 腾讯科技(深圳)有限公司 分布式训练方法、装置、计算机设备、存储介质和产品
CN115310566A (zh) * 2022-10-12 2022-11-08 浪潮电子信息产业股份有限公司 分布式训练系统、方法、装置、设备及可读存储介质
CN115660078A (zh) * 2022-12-29 2023-01-31 浪潮电子信息产业股份有限公司 一种分布式计算方法、系统、存储介质和电子设备
CN116258197A (zh) * 2023-05-16 2023-06-13 之江实验室 基于参数计算和通信调度的分布式训练加速方法和系统

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
TOMOYA ITSUBO ET AL.: "Accelerating Deep Learning using Multiple GPUs and FPGA-Based 10GbE Switch", 《2020 28TH EUROMICRO INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED AND NETWORK-BASED PROCESSING (PDP)》, pages 102 - 109 *
张文韬: "基于云端的联邦学习隐私保护机制研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 02, pages 138 - 264 *
王丽等: "面向模型并行训练的模型拆分策略自动生成方法", 《计算机工程与科学》, vol. 42, no. 9, pages 1529 - 1537 *
王恩东等: "分布式训练系统及其优化算法综述", 《计算机学报》, pages 1 - 30 *
马志强等: "MRI:面向并行迭代的MapReduce模型", 《计算机工程与科学》, vol. 38, no. 12, pages 2434 - 2441 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955365A (zh) * 2023-09-21 2023-10-27 浪潮电子信息产业股份有限公司 梯度数据同步方法、模型训练方法、系统、设备及介质
CN116955365B (zh) * 2023-09-21 2024-02-09 浪潮电子信息产业股份有限公司 梯度数据同步方法、模型训练方法、系统、设备及介质

Also Published As

Publication number Publication date
CN116644803B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
Sun et al. Optimizing network performance for distributed dnn training on gpu clusters: Imagenet/alexnet training in 1.5 minutes
EP3129870B1 (en) Data parallel processing method and apparatus based on multiple graphic procesing units
CN116644803B (zh) 分布式协同训练控制方法、系统、装置、设备及存储介质
US9703610B2 (en) Extensible centralized dynamic resource distribution in a clustered data grid
CN113225377B (zh) 物联网边缘任务卸载方法及装置
CN115248728A (zh) 面向智能计算的分布式训练任务调度方法、系统和装置
CN111538570B (zh) 一种面向节能和QoS保障的VNF部署方法及装置
WO2020047337A1 (en) Method, apparatus, and system for an architecture for machine learning acceleration
US10402235B2 (en) Fine-grain synchronization in data-parallel jobs for distributed machine learning
CN115237580B (zh) 面向智能计算的流水并行训练自适应调整系统、方法
CN113708969B (zh) 一种基于深度强化学习的云数据中心虚拟网络的协同嵌入方法
CN111788585A (zh) 一种深度学习模型的训练方法、系统
CN115310566A (zh) 分布式训练系统、方法、装置、设备及可读存储介质
CN116991560B (zh) 针对语言模型的并行调度方法、装置、设备及存储介质
US20210318878A1 (en) Method and system for accelerating ai training with advanced interconnect technologies
CN111324630A (zh) 基于mpi的神经网络架构搜索并行化方法和设备
CN114610474A (zh) 一种异构超算环境下多策略的作业调度方法及系统
CN116962176A (zh) 一种分布式集群的数据处理方法、装置、系统及存储介质
CN116702885B (zh) 同步数据并行训练控制方法、系统、装置、设备及介质
CN111680791B (zh) 适用于异构环境中的通信方法、装置、系统
CN116489708B (zh) 面向元宇宙的云边端协同的移动边缘计算任务卸载方法
CN116663639A (zh) 一种梯度数据同步方法、系统、装置及介质
CN115879543A (zh) 一种模型训练方法、装置、设备、介质及系统
CN115913952A (zh) 基于cpu+dpu平台的多目标服务功能链的高效并行化和部署方法
CN115550173A (zh) 一种基于wfbp和链路特性的动态计算通信调度方法

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