一种异步流水线并行训练过程中的动态层迁移方法技术

技术编号:35894762 阅读:13 留言:0更新日期:2022-12-10 10:28
本发明专利技术涉及网络信息技术领域,公开了一种异步流水线并行训练过程中的动态层迁移方法,包括以下步骤:发送层迁移消息;准备层迁移相关资源;执行层迁移;结束层迁移和清理相关资源;执行层迁移时,迁出节点在每次前向传播执行前进行待迁移层的权重迁出操作,迁入节点在每次反向传播执行后进行待迁移层的权重迁入操作,使权重传输过程与计算过程重叠;可作为现有异步流水线并行训练框架的补充模块,能够在不中断当前训练进程的同时实现相邻节点间的模型结构调整和部分层的迁移操作,打破原有异步流水线并行框架只能使用固定模型划分结构进行训练的限制,给深度神经网络的训练优化提供了更灵活有效的方式。提供了更灵活有效的方式。提供了更灵活有效的方式。

【技术实现步骤摘要】
一种异步流水线并行训练过程中的动态层迁移方法


[0001]本专利技术涉及网络信息
,具体涉及一种异步流水线并行训练过程中的动态层迁移方法。

技术介绍

[0002]随着人工智能和大数据技术的发展,深度学习所使用的神经网络规模越来越大,部分高准确度的深度神经网络的层数甚至达到1000层,参数规模超过1000亿。超大规模的深度神经网络需要分布式集群共同协作才能完成训练。一种训练方式是将完整的模型拆分成若干个串行依赖的块,一个块包含模型中若干串行执行的层,每个计算节点(stage)负责训练一个块,并使用流水线的方法协调整个集群训练整个模型,这种方式通常被称为模型并行或流水线并行。
[0003]PipeDream是一种常用的异步流水线并行框架,支持流水线并行训练方式,并且GPU利用率很高;但PipeDream只能在集群进行模型训练之前对待训练的模型进行块的静态划分,并在整个训练完成之前都保持该划分结构,不能在模型训练的过程中动态地调整划分结构,即不能动态地将某个节点的部分层迁移到另一个节点上训练。
[0004]深度神经网络的训练往往依托于数据中心的分布式计算集群,实际的集群中可能存在资源异质性问题(如不同的节点上GPU型号和算力有差异)、网络波动问题(如网络故障)以及多任务抢占问题(如同一节点上有多个任务同时在运行)等,就会降低训练性能。因此需要在训练过程中根据资源、任务、网络状态等情况动态地调整不同节点上的模型占比(即前文所述的模型划分结构),在不同节点之间迁移部分层,以平衡各节点上的计算负载和计算时间,最终使总的训练时间更短。
[0005]为实现深度神经网络的高效训练,需要提出一种有效的动态层迁移方法,能够快速高效地在不同节点之间迁移部分层,同时还要求:

不中断当前训练过程,

迁移的数据量尽可能少,

迁移过程能够与计算过程重叠以减少迁移时间开销。

技术实现思路

[0006]为解决上述技术问题,本专利技术提供一种异步流水线并行训练过程中的动态层迁移方法,基于本专利技术实现的动态层迁移模块将作为现有异步流水线并行训练框架的补充模块运行在每个分布式的计算节点上,负责管理和执行所有与本专利技术相关的资源和过程,包括发送和接收迁移消息,建立和删除节点间的通信连接,初始化、调整和删除指定节点上的指定的模型的层,发送和接收指定的模型的层的中间变量和权重等数据(即在相邻节点间迁移指定的层)等,之后的描述中不再特地强调。
[0007]为解决上述技术问题,本专利技术采用如下技术方案:一种异步流水线并行训练过程中的动态层迁移方法,所述动态层迁移方法应用于分布式机器学习场景下,具体包括:步骤一、发送层迁移消息:
迁出节点向迁入节点发送层迁移消息,并附带迁出节点当前的批数据序号k和待迁移层的描述信息;待迁移层的描述信息包括待迁移层的数量、待迁移层的标签;步骤二、准备层迁移相关资源:将迁出节点中原有的模型结构划分成两部分,一部分为保留在迁出节点的层,另一部分为需要迁移至迁入节点的层,即待迁移层;根据待迁移层的描述信息在迁入节点内初始化待迁移层,并将待迁移层加入到迁入节点原有的模型结构中;在迁出节点和迁入节点之间对待迁移层的中间变量和权重建立额外的迁移通信连接;每个迁移通信连接均为各自独立的线程;步骤三、执行层迁移:迁出节点在每次前向传播执行前进行待迁移层的权重迁出操作,迁入节点在每次反向传播执行后进行待迁移层的权重迁入操作,使权重传输过程与计算过程重叠;步骤四、结束层迁移和清理相关资源:在完成迁出节点中所有待迁移层的权重迁出操作后,删除迁出节点中已迁移层占用的资源;删除迁出节点与迁入节点原有的节点间通信连接和所述的迁移通信连接:在迁出节点与迁入节点建立新的节点间通信连接;其中,待迁移层从迁出节点迁移至迁入节点后,被称为已迁移层。
[0008]进一步地,步骤一中,若迁出节点在迁入节点之前,即迁出节点的序号小于迁入节点的序号,则迁出节点会在最近一次的前向传播执行前发送层迁移消息;若迁出节点在迁入节点之后,迁出节点会在最近一次的反向传播执行前发送层迁移消息。
[0009]进一步地,迁出节点在发送层迁移消息后,若迁出节点在迁入节点之前,则会在批数据序号k+1的前向传播执行前,执行步骤二中与迁出节点有关的内容;若迁出节点在迁入节点之后,则会在批数据序号k+2的前向传播执行前,执行步骤二中与迁出节点有关的内容;迁入节点在收到层迁移消息和附带的批数据序号k后,若迁出节点在迁入节点之前,则会在批数据序号k

N+t+1的反向传播执行之前,执行步骤二中与迁入节点有关的内容,其中N为节点的总数量,t为迁入节点的序号;若迁出节点在迁入节点之后,则会在批数据序号k

N+t+2的反向传播执行之前,执行步骤二中与迁入节点有关的内容。
[0010]进一步地,步骤二中,保留在迁出节点的层组成迁出节点的新的模型结构,将待迁移层加入到迁入节点原有的模型结构后得到迁入节点的新的模型结构;在执行步骤三的层迁移过程中,使用交替计算的方法,具体包括:当迁出节点和迁入节点执行前向传播时分别使用迁出节点和迁入节点新的模型结构计算,并使用迁移通信连接传递待迁移层的中间变量;当迁出节点和迁入节点执行反向传播时分别使用迁出节点和迁入节点原有的模型结构计算,并使用原有的节点间通信连接传递待迁移层的中间变量。
[0011]与现有技术相比,本专利技术的有益技术效果是:本专利技术针对现有的分布式深度神经网络训练的异步流水线并行训练框架,提出了一种分布式机器学习场景下异步流水线训练过程中的动态层迁移方法,可作为现有异步流水线并行训练框架的补充模块,能够实现深度神经网络在训练过程中的动态调整功能。
[0012]本专利技术中的动态层迁移方法能够在不中断当前训练进程的同时实现相邻节点间
的模型结构调整和部分层的迁移操作,打破原有异步流水线并行框架只能使用固定模型划分结构进行训练的限制,给深度神经网络的训练优化提供了更灵活有效的方式。
[0013]本专利技术中的动态层迁移方法在动态层迁移的执行过程中使用了一种交替计算的方法,该交替计算方法在层迁移执行过程中以较小的空间代价换取大量数据重计算和数据传输带来的时间代价,能够在几乎不影响原有训练进程的情况下完成层迁移操作,同时此方法需要传输的额外数据量仅限于待迁移层的权重,避免了大量非必要数据的传输,大大减少了通信开销,有效避免抢占原有训练进程的通信带宽。
[0014]另一方面,本专利技术中的动态层迁移方法采用多线程机制,可以有效将训练的通信过程和计算过程并行执行,将通信时间隐藏在计算时间中,有效降低甚至避免了由于通信过程引起的节点等待时间,近乎“透明”地完成动态层迁移操作。
[0015]同时,本专利技术中的动态层迁移方法支持多个互斥的相邻节点对同时执行动态层迁移操作,不必等待一对相邻节点执行完动态层迁移操作后再执行另一对相邻节点的动态层迁移,大大提高了深度神经网络训练过程中模型动态调整的效率。
[0016]此外,本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异步流水线并行训练过程中的动态层迁移方法,其特征在于,所述动态层迁移方法应用于分布式机器学习场景下,具体包括:步骤一、发送层迁移消息:迁出节点向迁入节点发送层迁移消息,并附带迁出节点当前的批数据序号k和待迁移层的描述信息;待迁移层的描述信息包括待迁移层的数量、待迁移层的标签;步骤二、准备层迁移相关资源:将迁出节点中原有的模型结构划分成两部分,一部分为保留在迁出节点的层,另一部分为需要迁移至迁入节点的层,即待迁移层;根据待迁移层的描述信息在迁入节点内初始化待迁移层,并将待迁移层加入到迁入节点原有的模型结构中;在迁出节点和迁入节点之间对待迁移层的中间变量和权重建立额外的迁移通信连接;每个迁移通信连接均为各自独立的线程;步骤三、执行层迁移:迁出节点在每次前向传播执行前进行待迁移层的权重迁出操作,迁入节点在每次反向传播执行后进行待迁移层的权重迁入操作,使权重传输过程与计算过程重叠;步骤四、结束层迁移和清理相关资源:在完成迁出节点中所有待迁移层的权重迁出操作后,删除迁出节点中已迁移层占用的资源;删除迁出节点与迁入节点原有的节点间通信连接和所述的迁移通信连接:在迁出节点与迁入节点建立新的节点间通信连接;其中,待迁移层从迁出节点迁移至迁入节点后,被称为已迁移层。2.根据权利要求1所述的异步流水线并行训练过程中的动态层迁移方法,其特征在于:步骤一中,若迁出节点在迁入节点之前,即迁出节点的序号小于迁入节点的序号,则迁出节点会在最近一次的前向传播执行前发送层迁移消息...

【专利技术属性】
技术研发人员:何华森王清河凌志沙沫姜晓枫谭小彬杨坚
申请(专利权)人:合肥综合性国家科学中心人工智能研究院安徽省人工智能实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1