【技术实现步骤摘要】
一种基于流水线并行的模型训练方法、装置以及设备
本说明书涉及机器学习
,尤其涉及一种基于流水线并行的模型训练方法、装置以及设备。
技术介绍
近年来,深度学习已极大地推动了人工智能技术的发展,在很多领域已获得良好的效果。然而,随着人工智能技术的发展,模型的参数规模也越来越大,其增长速度甚至已远超过硬件处理性能的增长速度。为了解决这个矛盾,模型并行技术逐渐受到研究者们的重视。模型并行可以将一个大规模模型划分为多个模型切片,并分配到不同的工作机上,从而实现大规模模型的训练或者推理。传统的模型并行技术,同一时刻只能保证一个工作机运行,其他的空置。基于此,还需要效率更高的模型并行训练的方案。
技术实现思路
本说明书一个或多个实施例提供一种基于流水线并行的模型训练方法、装置、设备以及存储介质,用以解决如下技术问题:需要效率更高的模型并行训练的方案。为解决上述技术问题,本说明书一个或多个实施例是这样实现的:本说明书一个或多个实施例提供的一种基于流水线并行的模型训练方法,包括:根据正常训练顺序对待训练模型进行切分,得到多个子切片;将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方;根据调整得到的训练顺序,在被分配了子切片的工作方上为所述子切片分配训练时间块,所述训练顺序包括:针对单 ...
【技术保护点】
1.一种基于流水线并行的模型训练方法,包括:/n根据正常训练顺序对待训练模型进行切分,得到多个子切片;/n将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;/n将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方;/n根据调整得到的训练顺序,在被分配了子切片的工作方上为所述子切片分配训练时间块,所述训练顺序包括:针对单轮训练样本,依次执行所述第一子模型本周期的正向传播、所述第一子模型前一周期的反向传播、所述第二子模型本周期的正向传播、所述第二子模型本周期的反向传播;/n按照所述训练时间块,在多个所述工作方上对所述待训练模型进行并行训练。/n
【技术特征摘要】
1.一种基于流水线并行的模型训练方法,包括:
根据正常训练顺序对待训练模型进行切分,得到多个子切片;
将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;
将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方;
根据调整得到的训练顺序,在被分配了子切片的工作方上为所述子切片分配训练时间块,所述训练顺序包括:针对单轮训练样本,依次执行所述第一子模型本周期的正向传播、所述第一子模型前一周期的反向传播、所述第二子模型本周期的正向传播、所述第二子模型本周期的反向传播;
按照所述训练时间块,在多个所述工作方上对所述待训练模型进行并行训练。
2.如权利要求1所述的方法,所述根据正常训练顺序对待训练模型进行切分,得到多个子切片,具体包括:
获取根据层对待训练模型切分得到的可用于模型并行的多个模型切片;
按照所述切分的方向,将所述模型切片进一步地切分为两个子切片。
3.如权利要求1所述的方法,所述将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方,具体包括:
确定所述第一子模型所包含的子切片的第一训练顺序,以及所述第二子模型所包含的子切片的第二训练顺序;
将所述第一训练顺序与所述第二训练顺序中,排序相同的子切片分配给同一个工作方,排序不同的子切片分配给不同的工作方。
4.如权利要求1所述的方法,所述训练顺序还包括:
针对多轮训练样本,以连续输入的方式输入所述第一子模型从第一轮开始的若干轮训练样本中对应的正向传播,以间隔单个训练时间块的方式输入剩余的传播,并将所述第二子模型的第一轮反向传播以及后续的传播分配至间隔的所述单个训练时间块中,以形成流水线并行训练。
5.如权利要求4所述的方法,所述在多个所述工作方上对所述待训练模型进行并行训练,具体包括:
在多个所述工作方上,所述多轮训练样本中的所述正向传播后,计算得到相应的梯度结果,并将所述梯度结果进行累积;
根据累积的所述梯度结果,在所述多轮训练样本中的最后一轮训练样本的反向传播时进行权值更新。
6.如权利要求5所述的方法,所述在所述多轮训练样本中的最后一轮训练样本的反向传播时进行权值更新,具体包括:
在所述多轮训练样本中的最后一轮训练样本的反向传播时,根据当前权值版本所对应的权值对所述第二子模型进行权值更新,并根据当前权值版本和前一个权值版本所对应的权值对所述第一子模型进行权值更新。
7.如权利要求1所述的方法,所述在多个所述工作方上对所述待训练模型进行并行训练,具体包括:
在对多个所述工作方中的第一工作方上执行正向传播的过程中,计算运行时激活,使用后在显存中释放所述运行时激活;
在所述第一工作方上执行所述正向传播对应的反向传播时,在等待所述第一工作方的上一个工作方反向传播的梯度结果时,所述第一工作方重新计算所述运行时激活,以用于自己的反向传播过程。
8.如权利要求7所述的方法,所述方法还包括:
确定正常训练时设置的单轮训练样本批次大小;
根据通过释放所述运行时激活得到空闲的显存,尝试增大所述单轮训练样本批次大小;
通过降低所述待训练模型中部分层的浮点数精度以推迟所述工作方的计算单元达到饱和状态的时刻,得到符合预期的单轮训练样本批次大小和浮点数精度。
9.一种基于流水线并行的模型训练装置,包括:
子切片切分模块,根据正常训练顺序对待训练模型进行切分,得到多个子切片;
子模型构成模块,将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;
子模型分配模块,将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的...
【专利技术属性】
技术研发人员:杨鹏程,张晓明,杨明,魏宏,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。