[发明专利]一种基于流水线并行的模型训练方法、装置以及设备有效
申请号: | 202110396491.6 | 申请日: | 2021-04-13 |
公开(公告)号: | CN113177632B | 公开(公告)日: | 2022-10-14 |
发明(设计)人: | 杨鹏程;张晓明;杨明;魏宏 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/08 |
代理公司: | 北京君慧知识产权代理事务所(普通合伙) 11716 | 代理人: | 吴绍群 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 流水线 并行 模型 训练 方法 装置 以及 设备 | ||
1.一种基于流水线并行的模型训练方法,包括:
根据正常训练顺序对待训练模型进行切分,得到多个子切片,所述切分包括根据层进行切分;
将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;
将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方;
根据调整得到的训练顺序,在被分配了子切片的工作方上为所述子切片分配训练时间块,所述训练顺序包括:针对单轮训练样本,依次执行所述第一子模型本周期的正向传播、所述第一子模型前一周期的反向传播、所述第二子模型本周期的正向传播、所述第二子模型本周期的反向传播;
按照所述训练时间块,在多个所述工作方上对所述待训练模型进行并行训练。
2.如权利要求1所述的方法,所述根据正常训练顺序对待训练模型进行切分,得到多个子切片,具体包括:
获取根据层对待训练模型切分得到的可用于模型并行的多个模型切片;
按照所述切分的方向,将所述模型切片进一步地切分为两个子切片。
3.如权利要求1所述的方法,所述将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方,具体包括:
确定所述第一子模型所包含的子切片的第一训练顺序,以及所述第二子模型所包含的子切片的第二训练顺序;
将所述第一训练顺序与所述第二训练顺序中,排序相同的子切片分配给同一个工作方,排序不同的子切片分配给不同的工作方。
4.如权利要求1所述的方法,所述训练顺序还包括:
针对多轮训练样本,以连续输入的方式输入所述第一子模型从第一轮开始的若干轮训练样本中对应的正向传播,以间隔单个训练时间块的方式输入剩余的传播,并将所述第二子模型的第一轮反向传播以及后续的传播分配至间隔的所述单个训练时间块中,以形成流水线并行训练。
5.如权利要求4所述的方法,所述在多个所述工作方上对所述待训练模型进行并行训练,具体包括:
在多个所述工作方上,所述多轮训练样本中的所述正向传播后,计算得到相应的梯度结果,并将所述梯度结果进行累积;
根据累积的所述梯度结果,在所述多轮训练样本中的最后一轮训练样本的反向传播时进行权值更新。
6.如权利要求5所述的方法,所述在所述多轮训练样本中的最后一轮训练样本的反向传播时进行权值更新,具体包括:
在所述多轮训练样本中的最后一轮训练样本的反向传播时,根据当前权值版本所对应的权值对所述第二子模型进行权值更新,并根据当前权值版本和前一个权值版本所对应的权值对所述第一子模型进行权值更新。
7.如权利要求1所述的方法,所述在多个所述工作方上对所述待训练模型进行并行训练,具体包括:
在对多个所述工作方中的第一工作方上执行正向传播的过程中,计算运行时激活,使用后在显存中释放所述运行时激活;
在所述第一工作方上执行所述正向传播对应的反向传播时,在等待所述第一工作方的上一个工作方反向传播的梯度结果时,所述第一工作方重新计算所述运行时激活,以用于自己的反向传播过程。
8.如权利要求7所述的方法,所述方法还包括:
确定正常训练时设置的单轮训练样本批次大小;
根据通过释放所述运行时激活得到空闲的显存,尝试增大所述单轮训练样本批次大小;
通过降低所述待训练模型中部分层的浮点数精度以推迟所述工作方的计算单元达到饱和状态的时刻,得到符合预期的单轮训练样本批次大小和浮点数精度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110396491.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据加密传输方法
- 下一篇:一种带热子的钛基贮氢器件