一种基于流水线并行的模型训练方法、装置以及设备制造方法及图纸

技术编号:29462703 阅读:46 留言:0更新日期:2021-07-27 17:34
本说明书实施例公开了基于流水线并行的模型训练方法。包括:根据正常训练顺序对待训练模型进行切分,得到多个子切片;将正常训练顺序在前的一部分子切片划分至第一组中,构成第一子模型,将剩余的子切片划分至第二组中,构成第二子模型;将第一子模型包含的子切片分配给不同的工作方,以及将第二子模型包含的子切片分配给不同的工作方;根据调整得到的训练顺序,在被分配了子切片的工作方上为子切片分配训练时间块,训练顺序包括:针对单轮训练样本,依次执行第一子模型本周期的正向传播、第一子模型前一周期的反向传播、第二子模型本周期的正向传播、第二子模型本周期的反向传播;按照训练时间块,在多个工作方上对待训练模型进行并行训练。

A model training method, device and equipment based on pipeline parallelism

【技术实现步骤摘要】
一种基于流水线并行的模型训练方法、装置以及设备
本说明书涉及机器学习
,尤其涉及一种基于流水线并行的模型训练方法、装置以及设备。
技术介绍
近年来,深度学习已极大地推动了人工智能技术的发展,在很多领域已获得良好的效果。然而,随着人工智能技术的发展,模型的参数规模也越来越大,其增长速度甚至已远超过硬件处理性能的增长速度。为了解决这个矛盾,模型并行技术逐渐受到研究者们的重视。模型并行可以将一个大规模模型划分为多个模型切片,并分配到不同的工作机上,从而实现大规模模型的训练或者推理。传统的模型并行技术,同一时刻只能保证一个工作机运行,其他的空置。基于此,还需要效率更高的模型并行训练的方案。
技术实现思路
本说明书一个或多个实施例提供一种基于流水线并行的模型训练方法、装置、设备以及存储介质,用以解决如下技术问题:需要效率更高的模型并行训练的方案。为解决上述技术问题,本说明书一个或多个实施例是这样实现的:本说明书一个或多个实施例提供的一种基于流水线并行的模型训练方法,包括:根据正常训练顺序对待训练模型进行切分,得到多个子切片;将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方;根据调整得到的训练顺序,在被分配了子切片的工作方上为所述子切片分配训练时间块,所述训练顺序包括:针对单轮训练样本,依次执行所述第一子模型本周期的正向传播、所述第一子模型前一周期的反向传播、所述第二子模型本周期的正向传播、所述第二子模型本周期的反向传播;按照所述训练时间块,在多个所述工作方上对所述待训练模型进行并行训练。本说明书一个或多个实施例提供的一种基于流水线并行的模型训练装置,包括:子切片切分模块,根据正常训练顺序对待训练模型进行切分,得到多个子切片;子模型构成模块,将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;子模型分配模块,将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方;训练时间块分配模块,根据调整得到的训练顺序,在被分配了子切片的工作方上为所述子切片分配训练时间块,所述训练顺序包括:针对单轮训练样本,依次执行所述第一子模型本周期的正向传播、所述第一子模型前一周期的反向传播、所述第二子模型本周期的正向传播、所述第二子模型本周期的反向传播;并行训练模块,按照所述训练时间块,在多个所述工作方上对所述待训练模型进行并行训练。本说明书一个或多个实施例提供的一种基于流水线并行的模型训练设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:根据正常训练顺序对待训练模型进行切分,得到多个子切片;将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方;根据调整得到的训练顺序,在被分配了子切片的工作方上为所述子切片分配训练时间块,所述训练顺序包括:针对单轮训练样本,依次执行所述第一子模型本周期的正向传播、所述第一子模型前一周期的反向传播、所述第二子模型本周期的正向传播、所述第二子模型本周期的反向传播;按照所述训练时间块,在多个所述工作方上对所述待训练模型进行并行训练。本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:根据正常训练顺序对待训练模型进行切分,得到多个子切片;将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方;根据调整得到的训练顺序,在被分配了子切片的工作方上为所述子切片分配训练时间块,所述训练顺序包括:针对单轮训练样本,依次执行所述第一子模型本周期的正向传播、所述第一子模型前一周期的反向传播、所述第二子模型本周期的正向传播、所述第二子模型本周期的反向传播;按照所述训练时间块,在多个所述工作方上对所述待训练模型进行并行训练。本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:通过将待训练模型切分出的子切片组合得到子模型,根据子模型以及调整得到的训练顺序进行并行训练,能够在满足一致性,保证训练效果的前提下,提高并行度,提高设备利用率,更为高效地进行并行训练过程。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本说明书一个或多个实施例提供的一种基于流水线并行的模型训练方法的流程示意图;图2为本说明书一个或多个实施例提供的一种传统的模型并行训练方案的示意图;图3为本说明书一个或多个实施例提供的一种并行训练方案的示意图;图4为本说明书一个或多个实施例提供的一种并行训练方案的示意图;图5a为本说明书一个或多个实施例提供的一种并行训练方案的示意图;图5b为本说明书一个或多个实施例提供的,在图5a的基础上进一步改进的一种并行训练方案的示意图;图6为本说明书一个或多个实施例提供的子切片切分以及子模型分配示意图;图7为本说明书一个或多个实施例提供的调整训练顺序的示意图;图8为本说明书一个或多个实施例提供的多轮训练样本下的流水线并行训练方案的示意图;图9为本说明书一个或多个实施例提供的并行训练时内存情况示意图;图10为本说明书一个或多个实施例提供的重计算与正向激活传输和反向梯度接收并行示意图;图11为本说明书一个或多个实施例提供的一种基于流水线并行的模型训练装置的结构示意图;图12为本说明书一个或多个实施例提供的一种基于流水线并行的模型训练设备的结构示意图。具体实施方式本说明书实施例提供一种基于流水线并行的模型训练方法、装置、设备以及存储介质。为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部本文档来自技高网
...

【技术保护点】
1.一种基于流水线并行的模型训练方法,包括:/n根据正常训练顺序对待训练模型进行切分,得到多个子切片;/n将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;/n将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方;/n根据调整得到的训练顺序,在被分配了子切片的工作方上为所述子切片分配训练时间块,所述训练顺序包括:针对单轮训练样本,依次执行所述第一子模型本周期的正向传播、所述第一子模型前一周期的反向传播、所述第二子模型本周期的正向传播、所述第二子模型本周期的反向传播;/n按照所述训练时间块,在多个所述工作方上对所述待训练模型进行并行训练。/n

【技术特征摘要】
1.一种基于流水线并行的模型训练方法,包括:
根据正常训练顺序对待训练模型进行切分,得到多个子切片;
将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;
将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方;
根据调整得到的训练顺序,在被分配了子切片的工作方上为所述子切片分配训练时间块,所述训练顺序包括:针对单轮训练样本,依次执行所述第一子模型本周期的正向传播、所述第一子模型前一周期的反向传播、所述第二子模型本周期的正向传播、所述第二子模型本周期的反向传播;
按照所述训练时间块,在多个所述工作方上对所述待训练模型进行并行训练。


2.如权利要求1所述的方法,所述根据正常训练顺序对待训练模型进行切分,得到多个子切片,具体包括:
获取根据层对待训练模型切分得到的可用于模型并行的多个模型切片;
按照所述切分的方向,将所述模型切片进一步地切分为两个子切片。


3.如权利要求1所述的方法,所述将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的工作方,具体包括:
确定所述第一子模型所包含的子切片的第一训练顺序,以及所述第二子模型所包含的子切片的第二训练顺序;
将所述第一训练顺序与所述第二训练顺序中,排序相同的子切片分配给同一个工作方,排序不同的子切片分配给不同的工作方。


4.如权利要求1所述的方法,所述训练顺序还包括:
针对多轮训练样本,以连续输入的方式输入所述第一子模型从第一轮开始的若干轮训练样本中对应的正向传播,以间隔单个训练时间块的方式输入剩余的传播,并将所述第二子模型的第一轮反向传播以及后续的传播分配至间隔的所述单个训练时间块中,以形成流水线并行训练。


5.如权利要求4所述的方法,所述在多个所述工作方上对所述待训练模型进行并行训练,具体包括:
在多个所述工作方上,所述多轮训练样本中的所述正向传播后,计算得到相应的梯度结果,并将所述梯度结果进行累积;
根据累积的所述梯度结果,在所述多轮训练样本中的最后一轮训练样本的反向传播时进行权值更新。


6.如权利要求5所述的方法,所述在所述多轮训练样本中的最后一轮训练样本的反向传播时进行权值更新,具体包括:
在所述多轮训练样本中的最后一轮训练样本的反向传播时,根据当前权值版本所对应的权值对所述第二子模型进行权值更新,并根据当前权值版本和前一个权值版本所对应的权值对所述第一子模型进行权值更新。


7.如权利要求1所述的方法,所述在多个所述工作方上对所述待训练模型进行并行训练,具体包括:
在对多个所述工作方中的第一工作方上执行正向传播的过程中,计算运行时激活,使用后在显存中释放所述运行时激活;
在所述第一工作方上执行所述正向传播对应的反向传播时,在等待所述第一工作方的上一个工作方反向传播的梯度结果时,所述第一工作方重新计算所述运行时激活,以用于自己的反向传播过程。


8.如权利要求7所述的方法,所述方法还包括:
确定正常训练时设置的单轮训练样本批次大小;
根据通过释放所述运行时激活得到空闲的显存,尝试增大所述单轮训练样本批次大小;
通过降低所述待训练模型中部分层的浮点数精度以推迟所述工作方的计算单元达到饱和状态的时刻,得到符合预期的单轮训练样本批次大小和浮点数精度。


9.一种基于流水线并行的模型训练装置,包括:
子切片切分模块,根据正常训练顺序对待训练模型进行切分,得到多个子切片;
子模型构成模块,将正常训练顺序在前的一部分所述子切片划分至第一组中,构成第一子模型,将剩余的所述子切片划分至第二组中,构成第二子模型;
子模型分配模块,将所述第一子模型包含的子切片分配给不同的工作方,以及将所述第二子模型包含的子切片分配给不同的...

【专利技术属性】
技术研发人员:杨鹏程张晓明杨明魏宏
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1