CN112183668A - 并行训练业务模型的方法及装置 - Google Patents
并行训练业务模型的方法及装置 Download PDFInfo
- Publication number
- CN112183668A CN112183668A CN202011211152.8A CN202011211152A CN112183668A CN 112183668 A CN112183668 A CN 112183668A CN 202011211152 A CN202011211152 A CN 202011211152A CN 112183668 A CN112183668 A CN 112183668A
- Authority
- CN
- China
- Prior art keywords
- model
- sub
- submodel
- devices
- sample
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提供一种并行训练业务模型的方法,该方法可以由多个设备执行,业务模型可以按照对业务数据的处理顺序分割为依次连接的多个子模型。其中,前向过程,在获取当前的若干个训练样本后,各个设备依次利用各个子模型处理若干当前训练样本,其中,对于单个训练样本,依次经过各个设备经由相应子模型进行处理,得到单个处理结果,设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,将相应的子模型Mi的部分模型参数广播至若干空闲设备,以供设备Gi和所述若干空闲设备以层内并行的方式处理训练样本Sj的相关数据。反向传播过程亦然,如此往复,从而提高设备的利用率和大规模模型训练效率。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及分布式机器学习过程中,并行训练业务模型的方法和装置。
背景技术
随着机器学习技术的发展,大规模的机器学习模型越来越多。在大规模机器学习模型训练过程中,由于模型参数较多,可能存在超过计算机存储容量的数据。现有技术中考虑使用多个设备并行训练机器学习模型。为了节约时间,减少资源浪费,一种并行学习的方案是,流水线并行运算。也就是说,将机器学习模型分为多个计算阶段,各个计算阶段分别对应各个设备。对于单个训练样本来说,可以依次经过各个设备的计算阶段,得到最终的输出结果。对于单个设备来说,依次接收各个训练样本在当前计算阶段的输入数据,并完成当前计算阶段的计算。
这种方式相当于将大规模模型拆分为多个小规模模型进行流水线计算,可以解决模型规模过大,单个计算机无法运算的问题。然而,在一些情况下,例如第一个设备计算第一个训练样本的第一个计算阶段过程中,其他设备都处于闲置状态。因此,如何更加充分利用各个设备,提高并行训练机器学习模型的效率,是一个值得思考的重要技术问题。
发明内容
本说明书一个或多个实施例描述了一种并行训练业务模型的方法及装置,用以解决背景技术提到的一个或多个问题。
根据第一方面,提供了一种并行训练业务模型的方法,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述业务模型按照对业务数据的处理顺序分割为多个子模型M1、M2……MT,所述方法由多个设备G1、G2……GT执行,T为大于或等于2的整数;
所述方法包括:前向处理过程中,各个设备依次利用各个子模型处理若干当前训练样本,其中,对于单个训练样本,依次经过各个设备G1、G2……GT经由相应子模型M1、M2……MT进行处理,得到单个处理结果,设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,将相应的子模型Mi的部分模型参数广播至若干空闲设备,并将训练样本Sj的相关数据分发至所述若干空闲设备,以供设备Gi和所述若干空闲设备以层内并行的方式处理训练样本Sj的相关数据,得到的处理结果经由设备Gi汇总,i为1至T之间的整数。
根据一个实施例,所述设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,将相应的子模型Mi的部分模型参数广播至若干空闲设备包括:将模型参数按照参数数量在设备Gi和所述若干空闲设备上按照设备数平均分配,并将分配得到的各部分参数分别广播至各个相应设备;或者,将模型参数按照计算单元分配至所述若干空闲设备中的各个设备,单个计算单元分配至单个设备。
根据一个实施例,所述方法还包括:各个设备对所述若干当前训练样本处理完成的情况下,由各个设备GT……G2、G1,依次确定分别与各个子模型MT……M2、M1对应的模型参数的梯度,其中,对于单个训练样本Sj,经由设备GT确定子模型MT对应的模型参数的梯度,并根据得到的梯度数据更新子模型MT对应的模型参数,之后,经由设备Gk确定子模型Mk对应的模型参数的梯度时,在其他设备中存在空闲设备的情况下,将子模型Mk+1对应的部分模型参数的梯度分发至至少一个空闲设备,以供设备Gk和所述至少一个空闲设备以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度,得到的梯度数据经由设备Gk汇总,并用于更新子模型Mk对应的模型参数,k为小于T大于0的整数。
根据一个进一步的实施例,设备Gk和所述至少一个空闲设备以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度包括:各个设备按照前向计算过程中分配到的模型参数,确定与子模型Mk对应的各部分模型参数的梯度。
根据第二方面,提供一种并行训练业务模型的方法,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述业务模型按照对业务数据的处理顺序分割为多个子模型,所述多个子模型依次关联,并包括第一子模型,所述方法由多个设备执行,所述多个设备包括对应维护所述第一子模型的第一设备;所述方法中,所述第一设备执行的操作包括:获取第一样本对应的当前处理数据,在所述第一子模型是所述业务模型的多个子模型中的第一个子模型的情况下,所述当前处理数据是所述第一样本对应的业务数据,否则,所述当前处理数据是前一个子模型基于所述第一样本的业务数据的当前处理结果;在所述多个设备中具有空闲的第三设备的情况下,将所述第一子模型的部分模型参数广播至所述第三设备,以通过基于第一设备和所述第三设备层内并行所述第一子模型的方式处理所述当前处理数据;将所述第一设备和所述第三设备各自对应的层内并行结果进行汇总,得到所述第一子模型对所述第一样本的第一处理结果。
根据一个实施例,在所述第一子模型是所述业务模型的最后一个子模型的情况下,所述第一设备执行的操作还包括:基于所述第一处理结果与所述第一样本对应的样本标签进行对比得到的模型损失,确定所述第一子模型对应的模型参数的梯度。
根据一个实施例,所述多个设备还包括第二设备、第四设备,所述业务模型还包括第二子模型,在第一设备执行上述操作的同时,所述第二设备还执行以下操作:获取第二样本对应的当前处理数据;在所述第四设备为空闲设备的情况下,将第二子模型的部分模型参数广播至所述第四设备,以通过基于第二设备和所述第四设备层内并行所述第二子模型的方式处理所述第二样本对应的当前处理数据;将所述第三设备和所述第四设备各自对应的层内并行结果进行汇总,得到所述第二子模型对所述第二样本的第二处理结果。
根据一个实施例,在确定所述第一子模型对应的模型参数的梯度过程中:如果第一子模型是所述业务模型的最后一个子模型,将基于所述第一处理结果与所述第一样本对应的样本标签的对比确定的模型损失广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度;如果第一子模型不是所述业务模型的最后一个子模型,将后一个子模型对应的模型参数的梯度广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度。
根据第三方面,提供一种并行训练业务模型的系统,所述系统包括多个设备G1、G2……GT,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述业务模型按照对业务数据的处理顺序分割为多个子模型M1、M2……MT,T为大于或等于2的整数;
所述系统配置为:前向处理过程中,各个设备依次利用各个子模型处理若干当前训练样本,其中,对于单个训练样本,依次经过各个设备G1、G2……GT经由相应子模型M1、M2……MT进行处理,得到单个处理结果,设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,将相应的子模型Mi的部分模型参数广播至若干空闲设备,并将训练样本Si的相关数据分发至所述若干空闲设备,以供设备Gi和所述若干空闲设备以层内并行的方式处理训练样本Sj的相关数据,得到的处理结果经由设备Gi汇总,i为1至T之间的整数。
根据一个实施例,所述设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,配置为通过以下之一的方式将相应的子模型Mi的部分模型参数广播至若干空闲设备:将模型参数按照参数数量在设备Gi和所述若干空闲设备上按照设备数平均分配,并将分配得到的各部分参数分别广播至各个相应设备;或者,将模型参数按照计算单元分配至所述若干空闲设备中的各个设备,单个计算单元分配至单个设备。
根据一个实施例,所述系统还配置为:各个设备对所述若干当前训练样本处理完成的情况下,由各个设备GT……G2、G1,依次确定分别与各个子模型MT……M2、M1对应的模型参数的梯度,其中,对于单个训练样本Sj,经由设备GT确定子模型MT对应的模型参数的梯度,并根据得到的梯度数据更新子模型MT对应的模型参数,之后,经由设备Gk确定子模型Mk对应的模型参数的梯度时,在其他设备中存在空闲设备的情况下,将子模型Mk+1对应的部分模型参数的梯度分发至至少一个空闲设备,以供设备Gk和所述至少一个空闲设备以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度,得到的梯度数据经由设备Gk汇总,并用于更新子模型Mk对应的模型参数,k为小于T大于0的整数。
根据一个进一步的实施例,设备Gk和所述至少一个空闲设备配置为按照以下操作以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度:各个设备按照前向计算过程中分配到的模型参数,确定与子模型Mk对应的各部分模型参数的梯度。
根据第四方面,提供一种并行训练业务模型的装置,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述业务模型按照对业务数据的处理顺序分割为多个子模型,所述多个子模型依次关联,并包括第一子模型,所述装置设于并行训练业务模型的多个设备中的第一设备,所述第一设备对应维护所述第一子模型;所述装置包括:
获取单元,配置为获取第一样本对应的当前处理数据,在所述第一子模型是所述业务模型的多个子模型中的第一个子模型的情况下,所述当前处理数据是所述第一样本对应的业务数据,否则,所述当前处理数据是前一个子模型基于所述第一样本的业务数据的当前处理结果;
层内并行单元,配置为在所述多个设备中具有空闲的第三设备的情况下,将所述第一子模型的部分模型参数广播至所述第三设备,以通过基于第一设备和所述第三设备层内并行所述第一子模型的方式处理所述当前处理数据;
规约单元,配置为将所述第一设备和所述第三设备各自对应的层内并行结果进行汇总,得到所述第一子模型对所述第一样本的第一处理结果。
根据一个实施例,在所述第一子模型是所述业务模型的最后一个子模型的情况下,所述装置还包括:
梯度确定单元,配置为基于所述第一处理结果与所述第一样本对应的样本标签进行对比得到的模型损失,确定所述第一子模型对应的模型参数的梯度。
根据一个实施例,在确定所述第一子模型对应的模型参数的梯度过程中,所述梯度确定单元进一步配置为:
如果第一子模型是所述业务模型的最后一个子模型,将基于所述第一处理结果与所述第一样本对应的样本标签的对比确定的模型损失广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度;
如果第一子模型不是所述业务模型的最后一个子模型,将后一个子模型对应的模型参数的梯度广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
通过本说明书实施例提供的方法和装置,在流水线并行训练业务模型的基础上,可以将单个设备维护的子模型利用层内并行方式进行拆分和规约合并,从而充分利用各个阶段性闲置的设备,缩减并行训练耗时,提高流水线并行训练效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出本说明书中并行训练业务模型的基础实施架构示意图;
图2a和图2b示出两个具体例子的对单个子模型进行层内并行的示意图;
图3示出本说明书提供的技术方案的一个实施例,与流水线并行方案对比的原理及效果示意图;
图4示出根据一个实施例的并行训练业务模型的方法流程图;
图5示出根据一个实施例的并行训练业务模型的系统的示意性架构图;
图6示出根据一个实施例的并行训练业务模型的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1示出了本说明书发明构思的一个实施场景。可以理解,业务模型可以是用于处理业务数据,得到相应业务处理结果的机器学习模型。通过训练样本,针对预定的分类或预测任务对选定的机器学习模型进行训练,得到可以处理任意相关的业务数据的业务模型。然而,根据业务预测的准确性等要求,机器学习模型的规模可能很大。例如,使用预训练的语言模型作为特征提取器,如xxlarge ALBERT等,后续的任务模型也较复杂庞大的情况下,模型本身的参数较多(如80亿个权值等),业务模型的前向计算和反向求梯度值过程中,会产生大量的数据。甚至,模型训练过程中的庞大数据量,可能导致显存要求大于现有设备的最大显存。如此,为模型训练增加了难度。
为了克服以上难题,常规技术提出了并行训练业务模型的方案。参考图1示出的实施场景。假设业务模型可以由N个设备以分布式方式训练,业务模型可以按照执行顺序依次拆分为多个阶段的子模型,例如前文提到的预训练语言模型和后续的任务网络,或者多层神经网络等。图1中,将各个阶段的子模型依次称为第一个子模型M1、第二个子模型M2……第T个子模型MT(T≥2),分别布置在第一个设备G1、第二个设备G2……第T个设备GT。为了描述方便,这里假设子模型和设备一一对应,即,单个子模型由单个设备维护。之后,各个设备以流水线方式并行处理各个训练样本。其中,这里的第几个设备并不对各个设备的排列顺序构成限定,仅作为与子模型对应的依据。
图3中,假设当前批次的训练样本包括S1、S2、S3等,单个训练样本可以包括特征数据和样本标签。各个训练样本的特征数据依次经过第一设备通过第一个子模型、第二设备通过第二个子模型……进行处理。第一个设备G1可以首先处理训练样本S1的特征数据,并将得到的第一个处理结果传递至第二个设备G2,由第二设备通过第二子模型处理该第一个处理结果,以依次向后传递,直至第T个设备GT得到对S1的业务处理结果。容易理解,在第一个设备将S1对应的第一个处理结果传递至第二个设备后,第一个设备空出,可以继续处理S2的特征数据,并将相应的第二个处理结果传递给第二个设备,第二个设备在处理完S1的第一个处理结果后,可以处理第二个处理结果。以此类推,各个设备相当于流水线,分别对各个训练样本进行某个部分的处理。
之后,逆向确定各个训练样本分别对应的模型参数的梯度。梯度确定过程通常与前向处理过程逆向。如图1所示,先由第T个设备确定S3的第T梯度,并传递至第T-1个设备,直至由第一设备确定S1对应的第一梯度。与前向计算过程类似地,当第T个设备将S1的第T梯度传递至第T-1个设备后,第T个设备空闲,可以继续对S2确定第T梯度。也就是说,梯度计算过程可以看作与前向计算过程反向的流水线。
如果将图1看作各个设备的操作时序图,各个设备对应的方框对应着数据处理的时间,则从图1可以看出,第一个设备至第T设备至少在以下时间段存在计算资源浪费:第一个设备处理S1过程中,第二个设备至第T个设备空闲;第T个设备处理S3及确定S1的第T梯度过程中,第一个设备至第T-1个设备空闲……第二个设备确定S1梯度过程中,第T个设备空闲(在T大于3的情况下,第三个设备至第T个设备空闲);第一个设备确定S3的第一梯度过程中,第二个设备至第T个设备空闲。
设备数越多,单批次样本数越少,造成的资源闲置也可能越多。为此,在图1的技术架构基础上,本说明书提出一种动态配置设备资源的方式,充分利用空闲资源,减少资源浪费,提高模型训练效率。
下面详细描述本说明书的技术构思。
图2示出一个实施例的并行训练业务模型的流程。其中,这里的业务模型可以是用于针对给定的业务数据,进行诸如分类、打分等业务处理的模型,其可以是神经网络、决策树、支持向量机等等。这里的业务数据可以是文字、图像、语音、视频等各种类型的数据,其具体内容与具体业务场景相关。例如电子支付平台或银行机构针对业务对象用户的分析场景下,电子支付平台的业务数据可以是其维护的用户的电子支付、转账、借款记录等相关特征,银行机构的业务数据可以是其维护用户的信贷记录、收入、汇款等方面的相关特征。这里,业务模型可以是能够分割成多个独立运算子模型的机器学习模型。例如,多层神经网络,每个子模型可以包括1层或多层神经网络。再例如,前文提到的特征提取和任务网络结构独立的业务模型。为了描述方便,可以假设业务模型按照对业务数据的处理顺序分割为多个子模型M1、M2……MT。其中,T为大于或等于2的整数。
另一方面,并行训练业务模型的方法可以由多个设备执行。例如这多个设备分别记为G1、G2……GT。可以理解的是,这里将各个设备与业务模型的子模型一一对应记录,实践中,一个子模型可以对应一个设备,或者一组设备,一个设备可以对应维护一个或多个子模型,例如,一个设备维护连续的多个子模型。
利用业务模型前向处理各个训练样本的过程中,各个设备可以一次利用各个子模型处理若干个当前的训练样本。具体地:对于一个训练样本而言,经过各个设备G1、G2……GT经由相应子模型M1、M2……MT进行处理,得到单个处理结果;对于一个设备而言,依次对若干个当前训练样本中的各个训练样本分别对应的数据进行处理。
在本说明书的技术构思下,假设i和j分别是区间[1,T]上的整数,设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,可以将相应的子模型Mi的部分模型参数广播至若干空闲设备,并将训练样本Sj的相关数据分发至该若干空闲设备,以供设备Gi和该若干空闲设备以层内并行的方式处理训练样本Sj的相关数据,得到的处理结果经由设备Gi汇总。这里,i分别可以是1至T之间的任意一个整数,Sj可以表示当前批次训练样本中的任意一个样本,如图1示出的例子中S1、S2、S3中的任一个等。
其中,上述的若干空闲设备可以是预先确定的一个或多个设备,也可以是根据当前进程智能检测到的空闲设备,在此不作限定。可以理解的是,在上述的若干空闲设备是预先确定的一个或多个设备的情况下,设备Gi处理任一个训练样本Sj时,可以检测这一个或多个设备是否处于空闲状态,若处于空闲状态,则可以将子模型Mi的部分模型参数广播至这一个或多个设备中的各个设备或其中的部分设备。
在广播模型参数过程中,可以按照预定规则分配参数量。例如,在一个实施例中,将模型参数按照参数数量在设备Gi和所述若干空闲设备上按照设备数平均分配,并将分配得到的各部分参数分别广播至各个相应设备。在另一个实施例中,将模型参数按照计算单元分配至所述若干空闲设备中的各个设备,单个计算单元分配至单个设备。
作为示例,先结合图2a、图2b的具体例子来描述层内并行的概念。图2a、图2b分别给出了两种子模型结构下的并行执行示例。
图2a是一种神经网络结构中的某个神经网络层的并行执行示意。将样本特征数据看作矩阵形式(向量可以看作包含1行或1列元素的特殊矩阵),如图2a所示,为矩阵X。图2a示出的子模型包括2个处理步骤,第一个步骤确定Y=ReLU(XA),第二个步骤确定Z=Dropout(YB)。其中,A、B分别为2个步骤中的参数矩阵。其中,参数矩阵A被分割成A1、A2两个矩阵,并分别可以被第一设备和第二设备各自持有。同理,参数矩阵B被分割成B1、B2两个矩阵,并分别可以被第一设备和第二设备各自持有。例如,参数矩阵A可以被分割为A=(A1,A2),参数矩阵B可以被分割为B=(B1,B2)T。之后,第一设备和第二设备分别按照虚线框201和虚线框202包围的流程,处理特征矩阵X。在分割参数矩阵时,例如可以平均分割,如A为100×100维,A1为50×100维,A2为50×100维,等等。这样,XA=(XA1,XA2)。参数矩阵B也可以采用类似的方式分割。
可以理解,在Mi是业务模型的第一个子模型的情况下,特征矩阵X为训练样本对应的初始特征构成的矩阵,在Mi不是业务模型的第一个子模型的情况下,特征矩阵X可以是子模型Mi-1的输出矩阵(或向量)。
在虚线框201的流程中,第一设备利用参数矩阵A1确定Y的第一分量Y1,并利用参数矩阵B1处理Y1,得到Z的第一分量Z1。同时,在虚线框302的流程中,第二设备可以利用参数矩阵A2确定Y的第二分量Y2,并利用参数矩阵B2处理Y2,得到Z的第二分量Z2。
之后,通过归约函数g对第一设备、第二设备得到的Z分量进行规约,或称为汇总。该汇总可以是分布式汇总操作,例如reduce合并、树结构合并等方式,将各个设备上的处理结果Z的分量进行合并,并最终规约至第一设备。之后,由第一设备完成对合并结果的Dropout处理,即,随机删除部分节点数据,减少模型规模,得到最终的处理结果Z。
图2b给出了一个多头注意力机制的示例。在该示例中,示出了两个注意力头,实践中,可以有更多的注意力头。图2b示出的两个注意力头分别由第一设备和第二设备通过虚线框203和虚线框204示出的流程进行处理。各个注意力头分别具有K、V、Q三种参数。经过注意力机制的处理,单个注意力头可以得到Y=Self-Attention(X)的各个分量。例如,第一设备根据第一注意力头得到第一分量Y1,第二设备根据第二注意力头得到第一分量Y2。其中,在单个设备处理多个注意力头的情况下,单个设备可以根据各个注意力头得到Y的一个分量。可选地,单个设备还可以将自身的多个分量进行融合。后续处理过程与图2a的示例类似,在此不做赘述。这里,单个注意力头可以看作一个计算单元,也就是说,按照计算单元为最小单位向各个空闲设备广播模型参数。单个计算单元仅分配给一个设备,而一个设备可以分配有多个注意力头。
在其他情形下,根据业务模型的设置不同,还可以通过其他方式分配业务模型的子模型的模型参数,实现子模型的层内并行,在此不作限定。总之,子模型Mi对样本Sj的处理过程可以通过多个设备以层内并行方式进行,并经过一次规约处理(如图2a或图2b中的归约函数g处理)得到汇总结果。值得说明的是,拆分函数f和规约函数g通常是成对出现,可以保证反向梯度计算路径与正向计算路径反向。这样的两个函数也可以称之为辅助规约对。
例如,在图1的实施场景下,第一个设备先通过第一个子模型处理第一样本,在得到相应处理结果之前,包括第二个设备在内的各个其他设备均可能处于空闲状态。因此,可以将第一个子模型对第一样本的处理过程进行层内并行。也就是说,将第一个子模型对第一样本的处理过程拆分为多个过程,由多个设备并行执行,并将结果合并。其中,在层内并行过程中,可以通过函数f和函数g分别作为对正向处理过程和反向求梯度过程进行数据规约的归约函数,例如复制(copy)、合并(reduce)等规约函数。函数f和函数g通常是成对的,例如,函数f用于复制参数矩阵的部分元素,函数g用于将数据合并规约。
进一步地,各个设备对当前批次的若干当前训练样本处理完成的情况下,还可以由各个设备按照与正向处理类似的方式,以流水线方式反向计算各个子模型对应的模型参数的梯度。在反向确定模型参数梯度的过程中,针对各个训练样本,可以分别独立计算模型参数的梯度,也可以依据对各个训练样本分别的各个处理结果,确定融合的梯度,如按照求平均、加权求和等方式确定融合的模型损失,并按照融合的模型损失确定的梯度,或者按照各自的模型损失分别确定各个模型参数的梯度,并将相对应的模型性参数的梯度按照求平均、加权求和等方式融合。
在一个实施例中,可以采用与正向处理过程对称的方式进行反向梯度计算,具体地,可以由各个设备GT……G2、G1,依次确定分别与各个子模型MT……M2、M1对应的模型参数的梯度。对于单个训练样本Sj,经由设备GT确定子模型MT对应的模型参数的梯度,并根据得到的梯度数据更新子模型MT对应的模型参数。之后,依次经过设备GT-1至G1确定相应子模型对应的模型参数的梯度。对于GT-1至G1之间的任一个设备Gk,经由设备Gk确定子模型Mk对应的模型参数的梯度时,在其他设备中存在空闲设备的情况下,将子模型Mk+1对应的部分模型参数的梯度广播至至少一个空闲设备,以供设备Gk和该至少一个空闲设备以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度,得到的梯度数据经由设备Gk汇总,并用于更新子模型Mk对应的模型参数。
其中,这里的至少一个空闲设备可以是根据当前的T个设备状态智能选择的空闲设备,也可以是与正向处理过程中,经由设备Gk利用子模型Mk处理训练样本Sj的过程中,所使用的若干空闲设备。在该至少一个空闲设备是与正向处理过程中所使用的若干空闲设备对应一致的情况下,可以将后一个子模型对应的模型参数的梯度广播给这些空闲设备。这是因为,在反向确定梯度的过程中,当前子模型的模型参数梯度依赖于后续子模型的模型参数的梯度。因此,子模型Mk的模型参数的梯度依赖于子模型Mk+1对应的部分模型参数的梯度。为了计算的便利,设备Gk可以通过与正向处理过程中的规约函数一致的方法,向各个空闲设备广播相关梯度数据。如此,各个空闲设备可以分别计算正向处理过程中所涉及的模型参数的梯度。例如图2a中,第二设备负责模型参数A2、B2的梯度计算,第一设备负责模型参数A1、B1的梯度计算。
下面参考图3所示,给出一个更加具体的例子,来阐述以上描述的本说明书技术构思下的技术方案的整体效果。
如图3所示,第一设备、第二设备、第三设备、第四设备构成的设备集群完成流水线并行时,采用的是依次输入各个样本的方式。假设第一设备、第二设备、第三设备、第四设备分别部署有业务模型按处理逻辑顺序排列的第一子模型、第二子模型、第三子模型、第四子模型,当前依次输入的样本为:样本一、样本二、样本三、样本四……。按照从左到右表示时序的方式,可以看出:在第一时间段t1内,第一设备处理样本一,第二设备、第三设备、第四设备闲置;在第二时间段t2内,第一设备处理样本二,第二设备处理样本一被第一设备处理得到的处理结果,第三设备、第四设备闲置;在第三时间段t3内,第一设备处理样本三,第二设备处理样本二被第一设备处理得到的处理结果,第三设备处理样本一被第二设备处理得到的处理结果,第四设备闲置;在第四时间段t4内,各个设备分别处理各个样本对应的数据……各个样本分别经过第一设备处理之后,依次在接下来的多个时间段有:第一设备闲置;第一设备、第二设备闲置;第一设备、第二设备、第三设备闲置,第四设备独自完成对最后一个样本的处理……。之后,各个设备等待第四设备完成正向数据处理过程后,开始反向针对各个样本计算模型参数的梯度。可以理解,对于业务模型来说,由于各个设备上布局的子模型可以依次组合得到业务模型,因此,确定梯度的时候,可以反向从最后一个子模型开始,计算各个子模型所在阶段的模型参数的梯度。第四设备完成各个样本的正向处理之后,可以从任一个样本开始计算梯度,例如样本一或者样本四。其中,梯度计算过程中,各个设备的利用和闲置情形与正向处理过程类似,在此不再赘述。如此,形成了图3输出的“流水线并行”虚线框内的情形,如图,对于4个设备分别布置有业务模型4个阶段的子模型的情况,共划分为14个处理时间段,其中,仅有2个时间段(如t4),各个设备同时进行计算,其他各个时间段均有设备闲置。在当前批次样本数量增多时,设备闲置比例减少。然而,根据业务模型的训练要求,通常单个批次的训练样本数量要求适中,过多则可能梯度浮动过大,过少则可能造成过多的计算。因此,可以在该流水线并行基础上,进一步使用本说明书技术构思所提供的并行训练业务模型的智能并行。
如图3所示,在“智能并行”虚线框,给出了本说明书技术构思所提供的并行训练业务模型的技术原理。其中,智能并行的原理性示意仅示出了正向处理过程的并行原理。其中,图形301示出了流水线并行方案中,正向处理样本数据的时序,图像302示出了在流水线并行方案基础上实施本说明书技术构思的方案的原理,图形303示出了本说明书技术构思的方案中正向处理样本数据的时序。
首先,在与“流水线并行”中的t1时间段相对应的处理阶段,第一设备之外的各个设备都没有当前业务模型训练的处理任务,于是,可以将第一设备对应的处理任务分发给至少一个其他设备共同完成。在图3中,如图形302所示,第一设备可以将第一子模型对样本一的处理过程中的相关数据拆分为4份,并分发给各个设备,各个设备可以分别完成一部分数据的处理,这样,就形成了图形303中示出的效果。也就是说,通过时间段t'1,由各个设备完成经由第一子模型对样本一的并行处理。各个设备对样本一的处理结果可以被第一设备汇总,之后,针对各个设备对样本一的处理结果的汇总结果,经由与第二设备对应的第二子模型进行处理。此时,第一设备可以开始处理样本二。在流水线并行流程中,此时的第三设备和第四设备是空闲的,于是设想,第一设备和第二设备分别将一部分处理任务转移至第三设备和第四设备之一。图形302中,将第一设备对样本二的处理分配给第三设备并行,将第二设备对样本一数据的处理分配给第四设备并行,反之,第一设备向第四设备分配任务,第二设备向第三设备分配任务亦可。这样,通过时间段t'2,由第一设备和第三设备完成经由第一子模型对样本二的并行处理,由第二设备和第四设备完成经由第二子模型对样本一对应数据的并行处理。
可以理解的是,在以上过程中,仅对部分设备空闲导致的资源浪费进行优化,仍允许部分设备的空闲。例如,在时间段t'3,第四设备可以空闲。具体分配可以参照各个子模型的计算量或者计算耗时,在此不再赘述。通过图形303与流水线并行方案的对比可知,第一设备对应的第一子模型处理样本一的过程,在流水线并行方案中对应时间段为t1,在本说明书提供的优化方案下对应时间段为t'1,在各个设备处理数据量相等的情况下,t'1约为t1的四分之一。同理,在各个设备处理数据量相等的情况下,t'2约为t2的二分之一。这样,总时间t'1+t'2+t'3+t'4相较于常规流水线并行的总时间t1+t2+t3+t4小得多。
如此,由于充分利用空闲设备,正向处理过程的总耗时可能大大减小。同样,后续过程中在第一设备空闲之后,第二设备、第三设备或第四设备也可以向第一设备分配数据。如“智能并行效果”虚线框中所示,是将正向处理过程和反向计算梯度过程均采用本说明书提供的技术构思进行智能并行,所达到的效果示意图。假设对应于单个设备,框的宽度与计算耗时正相关,可以看出,“智能并行效果”虚线框中的计算耗时,与“流水线并行”虚线框中的计算耗时相比,大大缩减。
事实上,本说明书的技术构思在实现时,可以通过两个或两个以上的设备完成。下面参考图4示出的实施例详细介绍单个设备执行的操作。
为了描述方便,假设业务模型至少可以分割为依次关联的多个子模型,这多个子模型中的任一个子模型记为第一子模型(并不特指第一个子模型)。本领域技术人员容易理解,这里说的依次关联,可以理解为,第一个子模型的输出结果为第二个子模型的输入,第二个子模型的输出结果为第三个子模型的输入,以此类推。最后一个子模型的输出结果即为业务模型的业务处理结果。并行训练业务模型的流程可以经由多个设备执行,这多个设备至少可以包括对应维护第一子模型的第一设备。
如图4所示,在并行训练业务模型的流程中,第一设备执行的操作可以包括:步骤401,获取第一样本对应的当前处理数据,在第一子模型是业务模型的多个子模型中的第一个子模型的情况下,当前处理数据是第一样本对应的业务数据,否则,当前处理数据是前一个子模型基于第一样本的业务数据的当前处理结果;步骤402,在多个设备中具有空闲的第三设备的情况下,将第一子模型的部分模型参数广播至第三设备,以通过基于第一设备和第三设备层内并行第一子模型的方式处理当前处理数据;步骤403,将第一设备和第三设备各自对应的层内并行结果进行汇总,得到第一子模型对第一样本的第一处理结果。
首先,在步骤401中,获取第一样本对应的当前处理数据。其中,这里的当前处理数据,可以理解为当前待处理的数据。通常,对于第一子模型来说,在第一子模型是业务模型的多个子模型中的第一个子模型的情况下,当前处理数据可以是第一样本对应的业务数据,否则,在第一子模型不是业务模型的多个子模型中的第一个子模型的情况下,当前处理数据是前一个子模型对第一样本的业务数据的当前处理结果(或者称为子输出结果)。这里的业务数据是与样本标签一起构成训练样本的数据,其可以是提取到的各个特征值,也可以是相关业务中用于提取各个业务特征的特征值的数据(如前文提到的图片、文字、动画、视频等类型的业务数据),在此不作限定。通常,一次模型参数的调整所用到的训练样本,作为一个批次。例如,图1中的一个批次的训练样本包括S1、S2、S3等。
接着,通过步骤402,在多个设备中具有空闲的第三设备的情况下,将第一子模型的部分模型参数广播至第三设备,以通过基于第一设备和第三设备层内并行第一子模型的方式处理当前处理数据。
可以理解,本实施例的流程是在图1示出的流水线并行流程基础上提出的,在流水线并行构思下,各个设备依次通过相应子模型处理各个训练样本。因此,排列靠前的子模型在初始时,以及排列靠后的子模型在处理当前批次最后的训练样本时,都容易出现其他设备空闲的情形。在本步骤402中,当前的第一设备可能是对应维护排列靠前的子模型的设备,也可能是对应维护排列靠后的子模型的设备。
在一个实施例中,第一设备在处理当前的第一样本时,可以先检测是否存在空闲设备,如果存在,假设空闲设备中的某个设备为第三设备。这里,第一和第三仅用于区分不同的设备,但不对设备本身或排列次序等构成实质性限定。第一设备可以至少将第一子模型的部分模型参数广播至第三设备。如果还有其他可用空闲设备存在,还可以将第一子模型的部分模型参数广播至其他空闲设备。进一步地,第一设备、第三设备,以层内并行方式处理当前处理数据。如果存在其他空闲设备,还可以由第一设备、第三设备和其他空闲设备一起,以层内并行方式处理当前处理数据。
在另一个实施例中,针对第一样本在当前批次训练样本中的排列次序,第一设备还可以对应有预先设定的指定合作设备,第三设备可以是指定合作设备中的任意一个。例如图3给出的具体例子中,样本一的排列次序为第一个,则第一设备处理该样本时,第二设备、第三设备、第四设备都空闲,因此可以将其他设备都作为处理该排列次序样本的指定合作设备。当该排列次序样本时,作为指定合作设备的第三设备通常处于空闲状态。于是,可以在确定第一样本在当前批次训练样本的排列次序为第一个样本时,确定其他设备空闲,可以直接将部分模型参数广播至空闲的其他设备(包括第三设备)。从而,第一设备和至少包括第三设备在内的空闲设备可以按照层内并行的方式对第一样本进行处理。其中,层内并行的方式见前文的记载,在此不再赘述。
在其他实施例中,空闲的第三设备还可以通过其他方式确定,在此不做赘述。值得说明的是,在第一设备处理第一样本的同时,其他设备也可能在处理其他样本,此时,空闲设备也可能分配给第一设备或其他设备之一进行层内并行计算。例如图3中,第一设备在处理样本二时,将部分数据分配给第三设备,同时,第二设备将对样本一进行处理的部分数据分配给第四设备,等等。
在可能的设计中,空闲设备的利用情况可以基于空闲设备数、以及非空闲设备对应的子模型的计算量或计算耗时确定。例如,在构成流水线的多个设备包括第一设备、第二设备和第三设备的情况下,如果第三设备为空闲设备,第一设备对应的第一子模型、第二设备对应的第二子模型的计算量(或计算耗时)相差比例不大,则第三设备可以在第一设备、第二设备各自处理相应的样本数据期间保持闲置。在第一子模型或第二子模型的其中一个子模型的计算量或计算耗时与另外一个子模型的计算量或计算耗时的两倍较接近(如小于预定阈值或比值大于预定值等)的情况下,如比值在0.8至1.2之间,则可以将计算量较多或计算耗时较长的子模型的处理过程进行拆分,利用相应设备和第三设备以层内并行方式进行相应子模型对相应数据的处理过程。同理,在构成流水线的多个设备包括更多其他设备的情况下,均可以利用类似的分配方法,对当前子模型对样本的处理过程进行分配,以尽可能利用较多设备的计算资源。例如,执行流水线并行的流程的多个设备包括6个设备,在第一设备、第二设备分别处理第二样本、第一样本时,存在4个空闲设备。此时,根据第一设备、第二设备各自对应的子模型的计算耗时或计算量,可以分配为:第一设备和三个空闲设备进行层内并行,处理第二样本,第二设备和另外一个空闲设备进行层内并行,处理第一样本;第一设备和二个空闲设备进行层内并行,处理第二样本,第二设备和另外二个空闲设备进行层内并行,处理第一样本;等等。
然后,在步骤403中,将第一设备和第三设备各自对应的层内并行结果进行汇总,得到第一子模型对第一样本的第一处理结果。可以理解的是,如果空闲设备还包括其他设备(如第二设备、第四设备),第一设备还可以将第一设备、第三设备和其他设备各自对应的层内并行结果进行汇总,得到第一子模型对第一样本的第一处理结果。其中,这里说的层内并行结果的汇总如图2a和图2b所示,可以由第一设备通过复制(copy)、合并(reduce)等规约函数(如函数g)进行融合。
针对单个样本,经过各个设备的流水线处理,可以得到业务模型对其的业务处理结果,例如第一样本可以对应第一处理结果。基于第一处理结果和样本标签的对比,可以确定模型损失,并进一步反向确定各个子模型对应的模型参数的梯度(与第一样本对应的梯度也可以记为第一梯度)。与正向业务处理过程类似地,在反向确定模型参数的梯度的过程中,仍然可以采用流水线并行架构,并可以采用相似的原理综合利用各个设备的计算资源。在此不再赘述。
在一个实施例中,反向计算梯度的过程与正向处理过程的计算顺序对称,如正向处理的训练样本顺序为样本一、样本二、样本三,设备顺序为第一设备、第二设备、第三设备、第四设备的情况下,反向计算梯度过程中,样本顺序为样本三、样本二、样本一,设备顺序为第四设备、第三设备、第二设备、第一设备。进一步地,如果第一子模型是业务模型的最后一个子模型,将基于第一处理结果与第一样本对应的样本标签的对比确定的模型损失广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度;如果第一子模型不是业务模型的最后一个子模型,将后一个子模型对应的模型参数的梯度广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度。容易理解,在第一子模型的层内并行还有其他设备参与,或者在反向确定梯度阶段,还有其他设备空闲的情况下,第一设备还可以将后一个子模型对应的模型参数的梯度广播至其他设备,以供第一设备、第三设备及其他设备一起确定第一子模型的模型参数针对第一样本的梯度。
值得说明的是,以上实施例分别从不同的角度对本说明书的技术构思进行了详细描述,因此,各个实施例间相对应的描述可以相互适用。
回顾以上过程,本说明书提供的技术方案,在流水线并行方案基础上,提出将子模型进行进一步拆分和规约合并操作,以相应阶段的空闲设备上实现子模型的层内并行。如此,可以充分利用各个阶段性闲置的设备,缩减并行训练耗时,提高流水线并行训练效率。
根据另一方面的实施例,还提供一种并行训练业务模型的系统。其中,这里的业务模型用于对业务数据进行处理,得到相应的业务处理结果。为了描述方便,假设该系统包括多个设备G1、G2……GT,业务模型按照对业务数据的处理顺序分割为多个子模型M1、M2……MT,且T为大于或等于2的整数。图5示出了并行训练业务模型的系统500的示意图。
前向处理过程中,系统500中的各个设备依次利用各个子模型处理若干当前训练样本,其中,对于单个训练样本,依次经过各个设备G1、G2……GT经由相应子模型M1、M2……MT进行处理,得到单个处理结果,设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,将相应的子模型Mi的部分模型参数广播至若干空闲设备,并将训练样本Sj的相关数据分发至若干空闲设备,以供设备Gi和若干空闲设备以层内并行的方式处理训练样本Sj的相关数据,得到的处理结果经由设备Gi汇总,i为1至T之间的整数。
根据一个实施例,设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,设备Gi还配置为通过以下之一的方式将相应的子模型Mi的部分模型参数广播至若干空闲设备:将模型参数按照参数数量在设备Gi和若干空闲设备上按照设备数平均分配,并将分配得到的各部分参数分别广播至各个相应设备;或者,将模型参数按照计算单元分配至若干空闲设备中的各个设备,单个计算单元分配至单个设备。
根据一个可能的设计,上述系统500还可以配置为:各个设备对若干当前训练样本处理完成的情况下,由各个设备GT……G2、G1,依次确定分别与各个子模型MT……M2、M1对应的模型参数的梯度,其中,对于单个训练样本Sj,经由设备GT确定子模型MT对应的模型参数的梯度,并根据得到的梯度数据更新子模型MT对应的模型参数,之后,经由设备Gk确定子模型Mk对应的模型参数的梯度时,在其他设备中存在空闲设备的情况下,将子模型Mk+1对应的部分模型参数的梯度分发至至少一个空闲设备,以供设备Gk和至少一个空闲设备以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度,得到的梯度数据经由设备Gk汇总,并用于更新子模型Mk对应的模型参数,k为小于T大于0的整数。
在一个实施例中,设备Gk和至少一个空闲设备配置为按照以下操作以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度:
各个设备按照前向计算过程中分配到的模型参数,确定与子模型Mk对应的各部分模型参数的梯度。
根据另一方面的实施例,还提供一种用于并行训练业务模型的装置,该装置可以设于上述系统的任一个设备。以该装置设于并行训练业务模型的多个设备中对应维护所述第一子模型的第一设备为例,图6示出了该装置的一个实施例。参考图6所示,该装置600包括:
获取单元61,配置为获取第一样本对应的当前处理数据,在第一子模型是业务模型的多个子模型中的第一个子模型的情况下,当前处理数据是第一样本对应的业务数据,否则,当前处理数据是前一个子模型基于第一样本对应的业务数据的当前处理结果;
层内并行单元62,配置为在多个设备中具有空闲的第三设备的情况下,将第一子模型的部分模型参数广播至第三设备,以通过基于第一设备和第三设备层内并行第一子模型的方式处理当前处理数据;
规约单元63,配置为将第一设备和第三设备各自对应的层内并行结果进行汇总,得到第一子模型对第一样本的第一处理结果。
根据一个实施例,在第一子模型是业务模型的最后一个子模型的情况下,装置600还包括:梯度确定单元(未示出),配置为将第一处理结果与第一样本对应的样本标签进行对比,从而确定第一子模型对应的模型参数的梯度。
根据一个实施例,在确定第一子模型对应的模型参数的梯度过程中,梯度确定单元进一步配置为:
如果第一子模型是业务模型的最后一个子模型,将基于第一处理结果与第一样本对应的样本标签的对比确定的模型损失广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度;
如果第一子模型不是业务模型的最后一个子模型,将后一个子模型对应的模型参数的梯度广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度。
值得说明的是,图6所示的装置600是与图4示出的方法实施例相对应的装置实施例,图4示出的方法实施例中的相应描述同样适用于装置600,在此不再赘述。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图4所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图4所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。
Claims (17)
1.一种并行训练业务模型的方法,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述业务模型按照对业务数据的处理顺序分割为多个子模型M1、M2……MT,所述方法由多个设备G1、G2……GT执行,T为大于或等于2的整数;
所述方法包括:
前向处理过程中,各个设备依次利用各个子模型处理若干当前训练样本,其中,对于单个训练样本,依次经过各个设备G1、G2……GT经由相应子模型M1、M2……MT进行处理,得到单个处理结果,设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,将相应的子模型Mi的部分模型参数广播至若干空闲设备,以供设备Gi和所述若干空闲设备以层内并行的方式处理训练样本Sj的相关数据,得到的处理结果经由设备Gi汇总,i为1至T之间的整数。
2.根据权利要求1所述的方法,其中,所述设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,将相应的子模型Mi的部分模型参数广播至若干空闲设备包括:
将模型参数按照参数数量在设备Gi和所述若干空闲设备上按照设备数平均分配,并将分配得到的各部分参数分别广播至各个相应设备;或者
将模型参数按照计算单元分配至所述若干空闲设备中的各个设备,单个计算单元分配至单个设备。
3.根据权利要求1所述的方法,其中,所述方法还包括:
各个设备对所述若干当前训练样本处理完成的情况下,由各个设备GT……G2、G1,依次确定分别与各个子模型MT……M2、M1对应的模型参数的梯度,其中,对于单个训练样本Sj,经由设备GT确定子模型MT对应的模型参数的梯度,并根据得到的梯度数据更新子模型MT对应的模型参数,之后,经由设备Gk确定子模型Mk对应的模型参数的梯度时,在其他设备中存在空闲设备的情况下,将子模型Mk+1对应的部分模型参数的梯度分发至至少一个空闲设备,以供设备Gk和所述至少一个空闲设备以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度,得到的梯度数据经由设备Gk汇总,并用于更新子模型Mk对应的模型参数,k为小于T大于0的整数。
4.根据权利要求3所述的方法,其中,设备Gk和所述至少一个空闲设备以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度包括:
各个设备按照前向计算过程中分配到的模型参数,确定与子模型Mk对应的各部分模型参数的梯度。
5.一种并行训练业务模型的方法,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述业务模型按照对业务数据的处理顺序分割为多个子模型,所述多个子模型依次关联,并包括第一子模型,所述方法由多个设备执行,所述多个设备包括对应维护所述第一子模型的第一设备;所述方法中,所述第一设备执行的操作包括:
获取第一样本对应的当前处理数据,在所述第一子模型是所述业务模型的多个子模型中的第一个子模型的情况下,所述当前处理数据是所述第一样本对应的业务数据,否则,所述当前处理数据是前一个子模型基于所述第一样本的业务数据的当前处理结果;
在所述多个设备中具有空闲的第三设备的情况下,将所述第一子模型的部分模型参数广播至所述第三设备,以通过基于第一设备和所述第三设备层内并行所述第一子模型的方式处理所述当前处理数据;
将所述第一设备和所述第三设备各自对应的层内并行结果进行汇总,得到所述第一子模型对所述第一样本的第一处理结果。
6.根据权利要求5所述的方法,其中,在所述第一子模型是所述业务模型的最后一个子模型的情况下,所述第一设备执行的操作还包括:
基于所述第一处理结果与所述第一样本对应的样本标签进行对比得到的模型损失,确定所述第一子模型对应的模型参数的梯度。
7.根据权利要求5所述的方法,其中,所述多个设备还包括第二设备、第四设备,所述业务模型还包括第二子模型,在第一设备执行权利要求5所述的操作的同时,所述第二设备还执行以下操作:
获取第二样本对应的当前处理数据;
在所述第四设备为空闲设备的情况下,将第二子模型的部分模型参数广播至所述第四设备,以通过基于第二设备和所述第四设备层内并行所述第二子模型的方式处理所述第二样本对应的当前处理数据;
将所述第二设备和所述第四设备各自对应的层内并行结果进行汇总,得到所述第二子模型对所述第二样本的第二处理结果。
8.根据权利要求6所述的方法,其中,在确定所述第一子模型对应的模型参数的梯度过程中:
如果第一子模型是所述业务模型的最后一个子模型,将基于所述第一处理结果与所述第一样本对应的样本标签的对比确定的模型损失广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度;
如果第一子模型不是所述业务模型的最后一个子模型,将后一个子模型对应的模型参数的梯度广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度。
9.一种并行训练业务模型的系统,所述系统包括多个设备G1、G2……GT,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述业务模型按照对业务数据的处理顺序分割为多个子模型M1、M2……MT,T为大于或等于2的整数;
所述系统配置为:
前向处理过程中,各个设备依次利用各个子模型处理若干当前训练样本,其中,对于单个训练样本,依次经过各个设备G1、G2……GT经由相应子模型M1、M2……MT进行处理,得到单个处理结果,设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,将相应的子模型Mi的部分模型参数广播至若干空闲设备,并将训练样本Sj的相关数据分发至所述若干空闲设备,以供设备Gi和所述若干空闲设备以层内并行的方式处理训练样本Sj的相关数据,得到的处理结果经由设备Gi汇总,i为1至T之间的整数。
10.根据权利要求9所述的系统,其中,所述设备Gi处理训练样本Sj时,在其他设备中存在空闲设备的情况下,配置为通过以下之一的方式将相应的子模型Mi的部分模型参数广播至若干空闲设备:
将模型参数按照参数数量在设备Gi和所述若干空闲设备上按照设备数平均分配,并将分配得到的各部分参数分别广播至各个相应设备;或者
将模型参数按照计算单元分配至所述若干空闲设备中的各个设备,单个计算单元分配至单个设备。
11.根据权利要求9所述的系统,其中,所述系统还配置为:
各个设备对所述若干当前训练样本处理完成的情况下,由各个设备GT……G2、G1,依次确定分别与各个子模型MT......M2、M1对应的模型参数的梯度,其中,对于单个训练样本Sj,经由设备GT确定子模型MT对应的模型参数的梯度,并根据得到的梯度数据更新子模型MT对应的模型参数,之后,经由设备Gk确定子模型Mk对应的模型参数的梯度时,在其他设备中存在空闲设备的情况下,将子模型Mk+1对应的部分模型参数的梯度分发至至少一个空闲设备,以供设备Gk和所述至少一个空闲设备以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度,得到的梯度数据经由设备Gk汇总,并用于更新子模型Mk对应的模型参数,k为小于T大于0的整数。
12.根据权利要求11所述的系统,其中,设备Gk和所述至少一个空闲设备配置为按照以下操作以层内并行的方式确定针对训练样本Sj的与子模型Mk对应的模型参数的梯度:
各个设备按照前向计算过程中分配到的模型参数,确定与子模型Mk对应的各部分模型参数的梯度。
13.一种用于并行训练业务模型的装置,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述业务模型按照对业务数据的处理顺序分割为多个子模型,所述多个子模型依次关联,并包括第一子模型,所述装置设于并行训练业务模型的多个设备中的第一设备,所述第一设备对应维护所述第一子模型;所述装置包括:
获取单元,配置为获取第一样本对应的当前处理数据,在所述第一子模型是所述业务模型的多个子模型中的第一个子模型的情况下,所述当前处理数据是所述第一样本对应的业务数据,否则,所述当前处理数据是前一个子模型基于所述第一样本的业务数据的当前处理结果;
层内并行单元,配置为在所述多个设备中具有空闲的第三设备的情况下,将所述第一子模型的部分模型参数广播至所述第三设备,以通过基于第一设备和所述第三设备层内并行所述第一子模型的方式处理所述当前处理数据;
规约单元,配置为将所述第一设备和所述第三设备各自对应的层内并行结果进行汇总,得到所述第一子模型对所述第一样本的第一处理结果。
14.根据权利要求13所述的装置,其中,在所述第一子模型是所述业务模型的最后一个子模型的情况下,所述装置还包括:
梯度确定单元,配置为基于所述第一处理结果与所述第一样本对应的样本标签进行对比得到的模型损失,确定所述第一子模型对应的模型参数的梯度。
15.根据权利要求13所述的装置,其中,在确定所述第一子模型对应的模型参数的梯度过程中,所述梯度确定单元进一步配置为:
如果第一子模型是所述业务模型的最后一个子模型,将基于所述第一处理结果与所述第一样本对应的样本标签的对比确定的模型损失广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度;
如果第一子模型不是所述业务模型的最后一个子模型,将后一个子模型对应的模型参数的梯度广播至第三设备,以供第一设备和第三设备分别确定第一子模型中的各自对应的模型参数的梯度。
16.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-8中任一项的所述的方法。
17.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011211152.8A CN112183668B (zh) | 2020-11-03 | 2020-11-03 | 并行训练业务模型的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011211152.8A CN112183668B (zh) | 2020-11-03 | 2020-11-03 | 并行训练业务模型的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112183668A true CN112183668A (zh) | 2021-01-05 |
CN112183668B CN112183668B (zh) | 2022-07-22 |
Family
ID=73917328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011211152.8A Active CN112183668B (zh) | 2020-11-03 | 2020-11-03 | 并行训练业务模型的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112183668B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925926A (zh) * | 2021-01-28 | 2021-06-08 | 北京达佳互联信息技术有限公司 | 多媒体推荐模型的训练方法、装置、服务器以及存储介质 |
CN113177632A (zh) * | 2021-04-13 | 2021-07-27 | 支付宝(杭州)信息技术有限公司 | 一种基于流水线并行的模型训练方法、装置以及设备 |
CN114091672A (zh) * | 2021-11-29 | 2022-02-25 | 北京百度网讯科技有限公司 | 分布式模型推理方法及装置、电子设备和介质 |
CN114202027A (zh) * | 2021-12-10 | 2022-03-18 | 北京百度网讯科技有限公司 | 执行配置信息的生成方法、模型训练方法和装置 |
CN114860412A (zh) * | 2022-05-19 | 2022-08-05 | 北京百度网讯科技有限公司 | 任务处理方法、装置、电子设备和介质 |
WO2023065656A1 (zh) * | 2021-10-20 | 2023-04-27 | 华为云计算技术有限公司 | 模型推理方法、云平台、设备和存储介质 |
WO2024060788A1 (zh) * | 2022-09-21 | 2024-03-28 | 之江实验室 | 面向智能计算的流水并行训练自适应调整系统、方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226557A (zh) * | 2008-02-22 | 2008-07-23 | 中国科学院软件研究所 | 一种高效的关联主题模型数据处理方法及其系统 |
US20090016470A1 (en) * | 2007-07-13 | 2009-01-15 | The Regents Of The University Of California | Targeted maximum likelihood estimation |
US20120198463A1 (en) * | 2011-01-31 | 2012-08-02 | Tsung-Yo Cheng | Pipeline network device and related data transmission method |
US20140142929A1 (en) * | 2012-11-20 | 2014-05-22 | Microsoft Corporation | Deep neural networks training for speech and pattern recognition |
CN110543939A (zh) * | 2019-06-12 | 2019-12-06 | 电子科技大学 | 一种基于fpga的卷积神经网络后向训练的硬件加速实现架构 |
US20200160171A1 (en) * | 2018-11-20 | 2020-05-21 | Microsoft Technology Licensing, Llc | Mitigating communication bottlenecks during parameter exchange in data-parallel dnn training |
CN111291869A (zh) * | 2020-05-09 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 并行训练业务模型的方法及装置 |
CN111475852A (zh) * | 2020-06-19 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护针对业务模型进行数据预处理的方法及装置 |
-
2020
- 2020-11-03 CN CN202011211152.8A patent/CN112183668B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090016470A1 (en) * | 2007-07-13 | 2009-01-15 | The Regents Of The University Of California | Targeted maximum likelihood estimation |
CN101226557A (zh) * | 2008-02-22 | 2008-07-23 | 中国科学院软件研究所 | 一种高效的关联主题模型数据处理方法及其系统 |
US20120198463A1 (en) * | 2011-01-31 | 2012-08-02 | Tsung-Yo Cheng | Pipeline network device and related data transmission method |
US20140142929A1 (en) * | 2012-11-20 | 2014-05-22 | Microsoft Corporation | Deep neural networks training for speech and pattern recognition |
US20200160171A1 (en) * | 2018-11-20 | 2020-05-21 | Microsoft Technology Licensing, Llc | Mitigating communication bottlenecks during parameter exchange in data-parallel dnn training |
CN110543939A (zh) * | 2019-06-12 | 2019-12-06 | 电子科技大学 | 一种基于fpga的卷积神经网络后向训练的硬件加速实现架构 |
CN111291869A (zh) * | 2020-05-09 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 并行训练业务模型的方法及装置 |
CN111475852A (zh) * | 2020-06-19 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护针对业务模型进行数据预处理的方法及装置 |
Non-Patent Citations (2)
Title |
---|
张杨松: "众核模式下深度学习模型细粒度并行方法研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
赵鲁: "短期交通流深度学习预测模型及其并行训练", 《中国优秀博硕士学位论文全文数据库(硕士)工程科技工辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925926A (zh) * | 2021-01-28 | 2021-06-08 | 北京达佳互联信息技术有限公司 | 多媒体推荐模型的训练方法、装置、服务器以及存储介质 |
CN113177632A (zh) * | 2021-04-13 | 2021-07-27 | 支付宝(杭州)信息技术有限公司 | 一种基于流水线并行的模型训练方法、装置以及设备 |
CN113177632B (zh) * | 2021-04-13 | 2022-10-14 | 支付宝(杭州)信息技术有限公司 | 一种基于流水线并行的模型训练方法、装置以及设备 |
WO2023065656A1 (zh) * | 2021-10-20 | 2023-04-27 | 华为云计算技术有限公司 | 模型推理方法、云平台、设备和存储介质 |
CN114091672A (zh) * | 2021-11-29 | 2022-02-25 | 北京百度网讯科技有限公司 | 分布式模型推理方法及装置、电子设备和介质 |
CN114091672B (zh) * | 2021-11-29 | 2022-09-27 | 北京百度网讯科技有限公司 | 分布式模型推理方法及装置、电子设备和介质 |
CN114202027A (zh) * | 2021-12-10 | 2022-03-18 | 北京百度网讯科技有限公司 | 执行配置信息的生成方法、模型训练方法和装置 |
CN114860412A (zh) * | 2022-05-19 | 2022-08-05 | 北京百度网讯科技有限公司 | 任务处理方法、装置、电子设备和介质 |
WO2024060788A1 (zh) * | 2022-09-21 | 2024-03-28 | 之江实验室 | 面向智能计算的流水并行训练自适应调整系统、方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112183668B (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112183668B (zh) | 并行训练业务模型的方法及装置 | |
Li et al. | Low-latency video semantic segmentation | |
CN107621973B (zh) | 一种跨集群的任务调度方法及装置 | |
CN110308984B (zh) | 一种用于处理地理分布式数据的跨集群计算系统 | |
CN111563820B (zh) | 智能合约并行执行方法及装置 | |
CN110955734B (zh) | 逻辑节点的分布式签名决策系统及其方法 | |
CN111506434B (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
CN112463296B (zh) | 一种创建虚拟机的方法及装置 | |
US20210149985A1 (en) | Method and apparatus for processing large-scale distributed matrix product | |
CN110110849B (zh) | 基于图分割的行固定数据流映射方法 | |
CN111858752A (zh) | 基于区块链的人工智能训练方法、设备及存储介质 | |
CN114615519B (zh) | 视频处理方法、装置、设备和存储介质 | |
CN109343940A (zh) | 一种云平台中多媒体任务调度优化方法 | |
CN114356512A (zh) | 一种数据处理方法、设备以及计算机可读存储介质 | |
CN115048218A (zh) | 一种边缘异构场景中的端云协同推理方法和系统 | |
CN110866605B (zh) | 数据模型训练方法、装置、电子设备及可读介质 | |
CN113887740A (zh) | 联合更新模型的方法、装置及系统 | |
CN112925663A (zh) | 业务数据的计算方法和装置 | |
CN105373498A (zh) | 一种数据处理系统及方法 | |
CN104580498A (zh) | 一种自适应云管理平台 | |
CN116610725B (zh) | 一种应用于大数据的实体增强规则挖掘方法及装置 | |
WO2022120993A1 (zh) | 在线场景的资源分配方法、装置及电子设备 | |
WO2024087844A1 (zh) | 图神经网络的训练方法、训练系统及异常账号识别方法 | |
CN108762918B (zh) | 一种基于概率分布的工作流资源配置优化方法和系统 | |
CN114386533B (zh) | 一种gbdt模型的横向训练方法、装置、电子设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |