(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211415887.1
(22)申请日 2022.11.11
(71)申请人 合肥综合 性国家科 学中心人工智能
研究院 (安徽省人工智能实验室)
地址 230000 安徽省合肥市高新区望江西
路5089号, 中国科学技术大学先进技
术研究院未来中心B120 5-B1208
(72)发明人 何华森 王清河 凌志 沙沫
姜晓枫 谭小彬 杨坚
(74)专利代理 机构 合肥天明专利事务所(普通
合伙) 34115
专利代理师 金凯 谢中用
(51)Int.Cl.
G06F 9/50(2006.01)
G06N 3/08(2006.01)G06N 20/00(2019.01)
(54)发明名称
一种异步流水线并行训练过程中的动态层
迁移方法
(57)摘要
本发明涉及网络信息技术领域, 公开了一种
异步流水线并行训练过程中的动态层迁移方法,
包括以下步骤: 发送层迁移消息; 准备层迁移相
关资源; 执行层迁移; 结束层迁移和清理相关资
源; 执行层迁移时, 迁出节点在每次前向传播执
行前进行待迁移层的权重迁出操作, 迁入节点在
每次反向传播执行后进行待迁移层的权重迁入
操作, 使权重传输过程与计算过程重叠; 可作为
现有异步流水线并行训练框架的补充模块, 能够
在不中断当前训练进程的同时实现相邻节点间
的模型结构调整和部分层的迁移操作, 打破原有
异步流水线并行框架只能使用固定模型划分结
构进行训练的限制, 给深度神经网络的训练优化
提供了更灵活有效的方式。
权利要求书1页 说明书6页 附图2页
CN 115454655 A
2022.12.09
CN 115454655 A
1.一种异步流水线并行训练过程中的动态层迁移方法, 其特征在于, 所述动态层迁移
方法应用于分布式机器学习场景 下, 具体包括:
步骤一、 发送层迁移消息:
迁出节点向迁入节点发送层迁移消息, 并 附带迁出节点当前的批数据序号k和待迁移
层的描述信息; 待迁移层的描述信息包括待迁移层的数量、 待迁移层的标签;
步骤二、 准备层迁移相关 资源:
将迁出节点中原有的模型结构划分成两部分, 一部分为保留在迁出节点的层, 另一部
分为需要迁移至迁入节点的层, 即待迁移层; 根据待迁移层的描述信息在迁入节点内初始
化待迁移层, 并将待迁移层加入到迁入节点原有的模型结构 中; 在迁出节点和迁入节点之
间对待迁移层的中间变量和权重建立额外的迁移 通信连接; 每个迁移通信连接均为各自独
立的线程;
步骤三、 执 行层迁移:
迁出节点在每次前向传播执行前进行待迁移层的权重迁出操作, 迁入节点在每次反向
传播执行后进行待迁移层的权 重迁入操作, 使权 重传输过程与计算过程重 叠;
步骤四、 结束层迁移和清理相关 资源:
在完成迁出节点中所有待迁移层的权重迁出操作后, 删除迁出节点中已迁移层占用的
资源; 删除迁出节点与迁入节点原有的节点间通信连接和所述的迁移通信连接: 在迁出节
点与迁入节点建立新的节点间通信连接; 其中, 待迁移层从迁出节点迁移至迁入节点后, 被
称为已迁移层。
2.根据权利要求1所述的异步流水线并行训练过程中的动态层迁移方法, 其特征在于:
步骤一中, 若迁出节点在迁入节点之前, 即迁出节点的序号小于迁入节点的序号, 则迁出节
点会在最近一次的前向传播执行前发送层迁移消息; 若迁出节点在迁入节点之后, 迁出节
点会在最近一次的反向传播执 行前发送层迁移消息 。
3.根据权利要求1所述的异步流水线并行训练过程中的动态层迁移方法, 其特征在于:
迁出节点在发送层迁移消息后, 若迁出节点在迁入节点之前, 则会在批数据序号k+1的前向
传播执行前, 执行步骤二中与迁出节 点有关的内容; 若迁出节点在迁入节点之后, 则会在批
数据序号k+2的前向传播执 行前, 执行步骤二中与迁出节点有关的内容;
迁入节点在收到层迁移消息和附带的批数据序号k后, 若迁出节点在迁入节点之前, 则
会在批数据序号k ‑N+t+1的反向传播执行之前, 执行步骤二中与迁入节点有关的内容, 其中
N为节点的总数量, t 为迁入节点的序号; 若迁出节点在迁入节 点之后, 则会在批数据序号k ‑
N+t+2的反向传播执 行之前, 执 行步骤二中与迁入节点有关的内容。
4.根据权利要求1所述的异步流水线并行训练过程中的动态层迁移方法, 其特征在于:
步骤二中, 保留在迁出节点的层组成迁出节点的新的模型结构, 将待迁移层加入到迁入节
点原有的模型 结构后得到 迁入节点的新的模型 结构;
在执行步骤三的层迁移过程中, 使用交替计算的方法, 具体包括:
当迁出节点和迁入节点执行前向传播时分别使用迁出节点和迁入节点新的模型结构
计算, 并使用迁移通信连接传递待迁移层的中间变量; 当迁出节点和迁入节点执行反向传
播时分别使用迁出节点和迁入节点原有的模型结构 计算, 并使用原有的节点间通信连接传
递待迁移层的中间变量。权 利 要 求 书 1/1 页
2
CN 115454655 A
2一种异步流水 线并行训练过 程中的动态层迁移 方法
技术领域
[0001]本发明涉及网络信息技术领域, 具体涉及 一种异步流水线并行训练过程中的动态
层迁移方法。
背景技术
[0002]随着人工智能和大数据技术的发展, 深度学习所使用的神经网络规模越来越大,
部分高准确度的深度神经网络的层数甚至达到1000层, 参数规模超过1000亿。 超大规模的
深度神经网络需要分布式集群共同协作才能完成训练。 一种训练方式是将完整的模型拆分
成若干个串行依赖的块, 一个块包含模 型中若干串 行执行的层, 每个计算节点 (stage) 负责
训练一个块, 并使用流水线的方法协调整个集群训练整个模型, 这种方式通常被称为模型
并行或流水线并行。
[0003]PipeDream是一种常用的异步流水线并行框架, 支持流水线并行训练方式, 并且
GPU利用率很高; 但PipeDream只能在集群进 行模型训练之前对待训练的模 型进行块的静态
划分, 并在整个训练完成之前都保持该划分结构, 不能在模型训练的过程中动态地调整划
分结构, 即不能动态地将某个节点的部分层迁移到另一个节点上训练。
[0004]深度神经网络的训练往往依托于数据中心的分布式计算集群, 实际的集群中可能
存在资源异质性问题 (如不同的节点上GPU型号和算力有差异) 、 网络波动问题 (如网络故
障) 以及多任务抢占问题 (如同一节点上有多个任务同时在运行) 等, 就会降低训练性能。 因
此需要在训练过程中根据资源、 任务、 网络状态等情况动态地调整不同节点上 的模型占比
(即前文所述的模型划分结构) , 在不同节点之间迁移部分层, 以平衡各节点上的计算负载
和计算时间, 最终使总的训练时间更短。
[0005]为实现深度神经网络 的高效训练, 需要提出一种有效的动态层迁移方法, 能够快
速高效地在不同节 点之间迁移部 分层, 同时还要求: ①不中断当前训练过程, ②迁移的数据
量尽可能少, ③迁移过程能够与计算过程重 叠以减少迁移时间开销。
发明内容
[0006]为解决上述技术问题, 本发明提供一种异步流水线并行训练过程中的动态层迁移
方法, 基于本发明实现的动态层迁移模块将作为现有异 步流水线并行训练框架的补充模块
运行在每个分布式的计算节点上, 负责管理和执行所有与本发明相关的资源和过程, 包括
发送和接收迁移消息, 建立和删除节 点间的通信连接, 初始 化、 调整和删除指 定节点上的指
定的模型 的层, 发送和接 收指定的模型 的层的中间变量和权重等数据 (即在相邻节点间迁
移指定的层) 等, 之后的描述中不再 特地强调。
[0007]为解决上述 技术问题, 本发明采用如下技 术方案:
一种异步流水线并行训练过程中的动态层迁移方法, 所述动态层迁移方法应用于
分布式机器学习场景 下, 具体包括:
步骤一、 发送层迁移消息:说 明 书 1/6 页
3
CN 115454655 A
3
专利 一种异步流水线并行训练过程中的动态层迁移方法
文档预览
中文文档
10 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-18 22:24:42上传分享