CN111291869B - 并行训练业务模型的方法及装置 - Google Patents
并行训练业务模型的方法及装置 Download PDFInfo
- Publication number
- CN111291869B CN111291869B CN202010384216.8A CN202010384216A CN111291869B CN 111291869 B CN111291869 B CN 111291869B CN 202010384216 A CN202010384216 A CN 202010384216A CN 111291869 B CN111291869 B CN 111291869B
- Authority
- CN
- China
- Prior art keywords
- model
- parameter
- gradient
- current
- training
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06N20/00—Machine 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提供一种并行训练业务模型的方法,在并行训练业务模型的过程中,就参与并行训练的多个设备中的单个设备而言,仅保存一部分模型参数的当前值,在其他设备需要相关模型参数时,实时从该单个设备获取这些参数。在参数调整更新过程中,其他设备将相关模型参数的当前梯度反馈给该单个设备,由该单个设备综合考虑各个当前梯度,对所保存的模型参数进行当前值的调整。由于各个设备分别处理部分模型参数,可以有效缩短计算和通信时间,从而提高模型并行训练效率。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及并行训练业务模型的方法及装置。
背景技术
随着计算机技术的发展,人工智能越来越深入到各个领域的业务数据处理过程中。通过机器学习方式训练业务模型,可以处理各种业务数据。业务模型的训练过程中,通常用到梯度下降方法调整模型参数。当业务模型的额参数数量较大时,还采用并行训练的方式,在多个设备上并行训练选定的业务模型。并行训练业务模型时,往往涉及同步梯度。即,对训练业务模型的多个设备的梯度进行同步。
常规方式中,同步梯度通常在模型的前向和后向计算都完成后执行,在模型参数较多时,需要同步的梯度数也会对应的变多,传输耗时随之增加。
发明内容
本说明书一个或多个实施例描述了一种并行训练业务模型的方法及装置,用以解决背景技术提到的一个或多个问题。
根据第一方面,提供了一种用于多个设备上并行训练业务模型的方法,用于同时训练业务模型,所述业务模型用于对相关业务数据进行处理,得到相应业务处理结果,所述多个设备包括第一设备和第二设备,所述第一设备存储有所述业务模型的第一参数的当前值,所述第二设备存储有所述业务模型的第二参数的当前值,所述方法由第一设备执行,包括:从所述第二设备获取所述第二参数的当前值;基于所述第二参数的当前值,针对第一训练样本确定所述业务模型的第一输出结果,所述第一输出结果还基于所述第一参数的当前值确定;按照所述第一输出结果确定所述第一参数的第一当前梯度;从所述第二设备获取所述第一参数的第二当前梯度,其中,所述第一参数的第二当前梯度由所述第二设备通过以下方式确定:从所述第一设备获取所述第一参数的当前值;基于所述第一参数的当前值,针对第二训练样本确定所述业务模型的第二输出结果;按照所述第二输出结果确定所述第一参数的第二当前梯度;基于所述第一当前梯度和所述第二当前梯度,更新所述第一参数的当前值。
在一个实施例中,在所述多个设备还包括其他设备的情况下,所述方法还包括:从各个其他设备分别获取相应的各个其他参数的当前值;同时,所述第一输出结果还基于各个其他参数的当前值确定。
在一个实施例中,所述第一训练样本对应有第一样本标签,所述按照所述第一输出结果确定所述第一参数的第一当前梯度包括:根据所述第一输出结果与所述第一样本标签的偏差确定第一损失函数;按照所述第一损失函数对所述第一参数的偏导数确定所述第一参数的第一当前梯度。
在一个实施例中,所述业务模型包括按顺序连接的多层神经网络,所述第一参数对应所述多层神经网络中的第i层神经网络,所述按照所述第一输出结果确定所述第一参数的第一当前梯度包括:在所述第i层神经网络是所述多层神经网络的最后一层神经网络的情况下,按照所述第一输出结果确定所述第一参数的第一当前梯度;在所述第i层神经网络不是所述最后一层神经网络的情况下,基于第i+1层神经网络的输出结果对所述第i层神经网络的输出结果的梯度,与所述第i层神经网络的输出结果对所述第一参数的梯度,确定所述第一参数的第一当前梯度。
在一个实施例中,所述基于所述第一当前梯度和所述第二当前梯度,更新所述第一参数的当前值包括:至少对所述第一当前梯度、所述第二当前梯度进行融合或选择,得到所述第一参数的当前周期梯度;向所述当前周期梯度下降的方向对所述第一参数的当前值进行更新。
在一个实施例中,所述多个设备还包括至少一个其他设备,各个其他设备分别向所述第一设备反馈有针对所述第一参数的各个其他梯度;所述基于所述第一当前梯度和所述第二当前梯度,更新所述第一参数的当前值包括:对所述第一当前梯度、所述第二当前梯度以及各个其他梯度进行融合或选择,得到所述第一参数的当前周期梯度;向所述当前周期梯度下降的方向对所述第一参数的当前值进行更新。
根据第二方面,还提供一种用于多个设备并行训练业务模型的装置,所述多个设备包括第一设备和第二设备,所述业务模型用于对相关业务数据进行处理,得到相应业务处理结果,所述第一设备存储有所述业务模型的第一参数的当前值,所述第二设备存储有所述业务模型的第二参数的当前值,所述装置设于所述第一设备,包括:
参数获取单元,配置为从所述第二设备获取所述第二参数的当前值;
执行单元,配置为基于所述第二参数的当前值,针对第一训练样本确定所述业务模型的第一输出结果,所述第一输出结果还基于所述第一参数的当前值确定;
梯度确定单元,配置为按照所述第一输出结果确定所述第一参数的第一当前梯度;
梯度获取单元,配置为从所述第二设备获取所述第一参数的第二当前梯度,其中,所述第一参数的第二当前梯度由所述第二设备通过以下方式确定:从所述第一设备获取所述第一参数的当前值;基于所述第一参数的当前值,针对第二训练样本确定所述业务模型的第二输出结果;按照所述第二输出结果确定所述第一参数的第二当前梯度;
更新单元,配置为基于所述第一当前梯度和所述第二当前梯度,更新所述第一参数的当前值。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,在并行训练业务模型的过程中,就参与并行训练的多个设备中的单个设备而言,仅保存一部分模型参数的当前值,在其他设备需要相关模型参数时,实时从该单个设备获取这些参数。在参数调整更新过程中,其他设备将相关模型参数的当前梯度反馈给该单个设备,由该单个设备综合考虑各个当前梯度,对所保存的模型参数进行当前值的调整。由于各个设备分别处理部分模型参数,可以有效缩短计算和通信时间,从而提高模型并行训练效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出本说明书技术构思中并行训练业务模型的实施架构示意图;
图2示出常规技术中并行训练业务模型的一个训练周期示意图;
图3示出根据本说明书发明构思的并行训练业务模型的一个训练周期示意图;
图4示出根据一个实施例的并行训练业务模型的方法流程图;
图5示出根据一个实施例的并行训练业务模型的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
首先,结合图1示出一个具体实施场景进行说明。如图1所示,在该实施场景中,多个设备共同训练业务模型。这里的业务模型可以是各种机器学习模型,例如决策树、支持向量机、全连接神经网络、卷积神经网络、循环神经网络等等。各个设备上都可以存储有训练数据,在业务模型为有监督的机器学习模型的情况下,训练数据例如为训练样本及相应的样本标签。训练样本可以是与具体业务场景相关的文字、图片、音频、视频、动画等各种业务数据,例如用于目标识别的图片、用于客服场景意图识别的用户文字或音频输入信息等。业务模型可以对相关业务数据进行处理,得到相应的业务处理结果,例如相关业务数据为目标识别的图片,相应业务处理结果为目标识别结果,相关业务数据为客服场景意图识别的用户文字或音频输入信息,相应业务处理结果为用户意图对应的答案信息,等等。
这些设备之间可以相互进行数据通信,例如交换参数梯度等。各个设备上的训练数据可以相同也可以不相同,当训练数据相同时,各台设备可以将训练数据按照不同的顺序(如完全随机顺序)输入业务模型。值得说明的是,图1中示出的设备数量仅为示例,实际应用中,设备为两个或两个以上,根据实际需求设置,在此不做限定。
在常规的并行训练业务模型方式中,如图2所示,在业务模型训练的某个训练周期,各个设备将自身存储的训练数据输入当前的业务模型,确定各个模型参数的当前梯度,之后,各个设备相互通信,同步所有参数的梯度。通常,同步梯度的方式例如是求平均、加权和(例如权重与相应设备当前输入的样本数量或样本可信度等正相关)、线性回归等方法。由于每个设备都兼顾了全部模型参数,同步梯度时,多个设备相互之间需要通信全部模型参数,当模型参数量较多时,通信时效降低,进而影响模型训练效率。
为此,本说明书的技术构思提供一种并行训练业务模型的新思路。在单个设备上,存储并更新一部分模型参数的当前值,其他设备从该设备获取这一部分模型参数的当前值,并将其梯度仅反馈给该设备。特别地,对于多层神经网络构成的业务模型,在确定模型参数梯度时,各层神经网络上的模型参数的梯度可能依赖后一层神经网络的模型参数调整结果,此时可以按照神经网络各层所处的阶段来分配模型参数。例如,12层的神经网络,4个设备平分,每个设备存储相邻三层神经网络的模型参数。这样,在相应层神经网络的模型参数的梯度被确定后,可以及时反馈给相应设备,由相应设备接收并更新相应模型参数的当前值。更新后的当前值被相应设备存储并在其他设备需要时从当前设备获取。
图3给出了本说明书技术构思在一个训练周期中的实施效果示意图。图3的示意图中,所针对的业务模型可以是分为多个阶段的业务模型,例如是循环神经网络、多层全连接神经网络、多个卷积层的卷积神经网络等等。如图3所示,假设将业务模型分为4个运算阶段:S0、S1、S2、S3,分别对应的模型参数集为:P0、P1、P2、P3,这些模型参数集的当前值分别存储在设备0、设备1、设备2、设备3上。当并行训练业务模型时,各个设备在S0运算阶段,从设备0获取模型参数集P0中各个模型参数的当前值,在S1运算阶段,从设备1获取模型参数集P1中各个模型参数的当前值,以此类推,按照S0、S1、S2、S3各个运算阶段的顺序获取模型参数集、进行相关运算。在各个设备上的业务模型根据训练样本得到输出结果后,可以按照S3、S2、S1、S0的顺序,反向推导模型参数的梯度。当在S3阶段确定出模型参数集P3的各个模型参数梯度时,反馈给设备3,以供设备3根据各个设备反馈的梯度,更新模型参数集P3的各个模型参数的当前值。以此类推,直至设备0根据各个设备反馈的模型参数集P0的梯度,更新模型参数集P0的各个模型参数的当前值。在下一轮并行训练中,重复以上过程。直至业务模型训练完成。
在图3的示例中,为了节约时间,在并行训练业务模型阶段,获取当前阶段的模型参数集(如P0)中各个模型参数的当前值后,进行当前阶段(如S0运算阶段)运算的同时,还可以获取下一阶段(如S1运算阶段)所需的各个模型参数的当前值。同理,在同步梯度过程中,也可以一边反馈当前阶段的模型参数集的梯度,一边进行下一阶段的模型参数梯度计算。也就是说,在前向计算和反向同步梯度过程中,都可以一边运算,一边通信,节约通信时间。而且,各个设备分别对应负责一部分模型参数,而不需要更新全量参数,减少计算耗时。
值得说明的是,图3示出的模型参数在各个设备上按照运算阶段进行分配,在其他模型中,也可以是按照同时需要的多个运算模块进行划分,在此不作限定。其中,按照多个运算模块进行划分时,由于各个设备分别对应负责一部分模型参数,而不需要更新全量参数,减少计算耗时,可以提高并行训练业务模型的效率。
也就是说,本说明书技术构思下的并行训练业务模型的方法,对各种业务模型具有通用的减少耗时效果。特别地,尤其对于参数量大、具有不同运算阶段的业务模型,减少耗时的优势更加明显。
可以理解的是,在本说明书构思下,各个参与并行训练业务模型的设备具有对等性,下面以其中的任一个设备(以下称为第一设备)为例,详细描述其更新相应模型参数的过程。为了描述方便,还引入其他参与的设备中的任一个设备(以下称为第二设备),进行描述。其中,第一设备和第二设备均可以为具有一定计算能力的任意计算机、服务器、终端等。第一设备可以存储第一参数的当前值,第二设备可以存储第二参数的当前值。这里,第一设备可以存储有一个或多个参数,第一参数可以是这一个或多个参数中的任意一个参数,同理,第二参数可以是第二设备存储的至少一个参数中的任意一个参数。第一、第二是为了对参数进行区分,并分别与第一设备、第二设备向对应,而不对参数在业务模型中的具体位置、顺序等进行限定。
图4示出了根据本说明书一个实施例的并行训练业务模型的流程示意图。对于第一设备而言,该流程包括:步骤401,从第二设备获取第二参数的当前值;步骤402,基于第二参数的当前值,针对第一训练样本确定业务模型的第一输出结果,所述第一输出结果还基于第一参数的当前值确定;步骤403,按照第一输出结果确定第一参数的第一当前梯度;步骤404,从第二设备获取第一参数的第二当前梯度,其中,第一参数的第二当前梯度由第二设备通过以下方式确定:从第一设备获取第一参数的当前值;基于第一参数的当前值,针对第二训练样本确定业务模型的第二输出结果;按照第二输出结果确定第一参数的第二当前梯度;步骤405,基于第一当前梯度和第二当前梯度,更新第一参数的当前值。
首先,通过步骤401,从第二设备获取第二参数的当前值。这里,在当前训练周期为初始周期时,第二参数的当前值为第二参数的初始值,例如随机为第二参数赋的值等。在当前训练周期为其他周期时,第二参数的当前值为前一训练周期中,第二设备对第二参数更新后的值。
可以理解的是,这里的第二参数可以是对应于第二设备的若干个参数(换句话说,是分配给第二设备负责的参数)中的任一个参数。包括第一设备在内的其他设备需要包括第二参数在内的这若干个参数的当前值时,需要向第二设备发送数据请求,以获取相应数据。
如果参与当前业务模型的并行训练的设备还包括第一设备和第二设备中的其他设备,第一设备还可以从其他设备获取相应参数的当前值。特别地,在业务模型是图2或图3示出的可以分阶段的模型时,第一设备可以在对应于第二参数的阶段,仅获取第二参数的当前值,在其他阶段,从其他设备获取其他参数的当前值。
接着,在步骤402,基于第二参数的当前值,针对第一训练样本确定业务模型的第一输出结果,第一输出结果还基于第一参数的当前值确定。这里,第一训练样本可以包括第一设备的任意训练样本。第一训练样本可以包括业务数据和样本标签。业务数据例如可以是图片、字符、音频、视频、动画等各种形式的数据。这里,第一训练样本可以理解为任意一个训练样本,也可以理解为任意一批(如50个)训练样本,在此不作限定。当第一训练样本为一批训练样本时,各个训练样本分别对应各条业务数据及相应样本标签。
可以理解,将第一训练样本输入业务模型,根据业务模型的各个模型参数的当前值,可以确定针对第一训练样本的第一输出结果。其中,这些模型参数包括第一参数和第二参数。在业务模型是图3示出的分阶段模型的情况下,第一设备获取第二参数的当前值时,可能已经通过自身存储的第一参数的当前值针对第一训练样本进行了运算,因此,获取第二参数的当前值后,可以基于第二参数的当前值进行与第二参数相关的运算,进而确定第一输出结果。如果第一设备在获取第二参数的当前值时,还没有进行基于第一参数的运算,或者业务模型不是图3示出的分阶段模型(例如是所有参数一起参与运算的业务模型)的情况下,在获取第二参数的当前值后,可以基于第一参数的当前值和第二参数的当前值,确定第一输出结果。
在业务模型还利用了其他模型参数的情况下,第一输出结果还基于其他模型参数确定,在此不再赘述。
第一输出结果可以是类别预测结果、打分结果等,其与业务模型的具体形式相关,在此不作限定。
然后,在步骤403中,按照当前业务模型的第一输出结果确定第一参数的第一当前梯度。第一输出结果是业务模型针对第一训练样本的输出结果,为了调整业务模型的模型参数,可以根据第一输出结果确定业务模型针对各个模型参数的梯度。
根据第一输出结果相对于第一训练样本对应的第一样本标签的偏差,通常可以通过损失函数(或称为准则函数)来描述。如损失函数为第一输出结果对应的向量与第一样本标签对应的向量的方差、第一输出结果与第一样本标签的差的绝对值等。
由于第一输出结果可以看作各个模型参数的函数,因此,在一个可能的设计中,各个模型参数的梯度可以是损失函数对其的偏导数。
当第一训练样本为一个训练样本时,第一当前梯度可以为该训练样本对应的损失函数对第一参数的偏导数。当第一训练样本为一批训练样本时,第一当前梯度可以为各个训练样本对应的各个损失函数分别对第一参数的偏导数之和,也可以为各个训练样本对应的各个损失函数之和对第一参数的偏导数,在此不作限定。这里的第一当前梯度与第一设备相对应,表示第一设备的当前训练周期产生的梯度。
在业务模型是按照执行顺序划分阶段的模型参数时,第一输出结果可能仅直接影响最后一个阶段(如图3示出的S3,或者最后一层神经网络)的模型参数。因此,根据另一个可能的设计,最后一个阶段的模型参数可以根据第一输出结果确定相应的当前梯度,而之前的各个阶段(如图3示出的S0、S2、S2)的模型参数的梯度可以根据后一阶段的输出结果对当前阶段的输出结果的梯度(偏导数),以及当前结果对相应模型参数的梯度,确定相应模型参数的当前梯度。
作为具体示例,假设图3中,S0阶段对应的输入向量为X0,参数集为P0,则对应输出结果可以记为X1=f0(X0,P0),X1作为S1阶段的输入向量,依次类推,S1阶段对应的输出结果可以记为X2=f1(X1,P1)、S2阶段对应的输出结果可以记为X3=f2(X2,P2)、S3阶段对应的输出结果可以记为F=f2(X3,P3)。其中,P1、P2、P3分别为S1阶段、S2阶段、S3阶段的参数集。可以理解,损失函数是与F=f3(X3,P3)及Y(样本标签)相关的表达式,记为M。为了描述方便,假设每个阶段为一层神经网络,则在S3阶段,参数集P3各个模型参数的梯度为损失函数对相应模型参数的偏导数,如。这里,为参数集P3中的任意模型参数。由于Y是已知项,因此,该梯度可以由输出结果F对的梯度确定。进一步地,容易理解,对于S2阶段的任意模型参数,其梯度可以基于以及确定。也就是说,在第一参数不是最后一层神经网络中的参数的情况下,其梯度基于下一层神经网络的输出结果对当前层神经网络的输出结果的梯度,与当前层神经网络的输出结果对该第一参数的梯度确定。
事实上,第一设备可以对各个模型参数确定第一当前梯度。对于其他设备(包括第二设备)对应的其他模型参数,第一设备可以将其第一当前梯度反馈至相应设备。
同时,其他设备也会根据当前训练周期产生各个模型参数的其他当前梯度,例如第二设备,也可以从包括第一设备在内的各个设备上获取相应模型参数(包括第一参数)的当前值,并基于这些模型参数的当前值确定针对第二训练样本的第二输出结果,然后根据第二输出结果确定各个模型参数的第二当前梯度,以反馈至相应设备。那么,对于第一设备而言,在步骤404中,可以从第二设备获取第一参数的第二当前梯度。可以理解,在并行训练业务模型的设备还包括其他设备的情况下,第一设备还可以从其他设备获取第一参数的其他当前梯度,在此不再赘述。
然后,通过步骤405,基于第一当前梯度和第二当前梯度,更新第一参数的当前值。可以理解的是,根据第一参数的当前值和第一参数的当前梯度,可以向梯度下降的方向调整第一参数的当前值,从而完成对第一参数的当前值的更新。
第一设备可以基于自身确定的第一参数的当前梯度(第一当前梯度),以及接收到的其他设备确定的第一参数的其他当前梯度(包括但不限于第二当前梯度),确定针对第一参数的当前周期梯度,并按照该当前调整梯度调整第一参数。
在一个可选的实现方式中,第一设备可以对第一参数的各个当前梯度进行融合,从而确定针对第一参数的当前周期梯度。这里的梯度融合方式例如是求和、求平均、加权和等等。
在另一个可选的实现方式中,第一设备还可以将各个当前梯度中的最大值或最小值作为针对第一参数的当前周期梯度。
在其他可选的实现方式中,第一设备还可以利用其他合理的方式确定第一参数的当前周期梯度,在此不再赘述。有了当前周期梯度,第一设备可以调整第一参数的当前值。在下一个训练周期,其他设备需要用到第一参数时,可以向第一设备获取更新后的第一参数的当前值。
在可能的设计中,第一设备确定当前周期梯度后,还可以判断当前周期梯度是否小于预定阈值,如果小于预定阈值,不再调整相应模型参数。可选地,如果其他设备也不再调整相应模型参数,可以确定业务模型的训练达到一个稳定阶段。此时,可以获取各个设备存储的模型参数,对模型指标(如准确度、召回率等)进行评估,如果评估结果符合业务需求,则确定业务模型训练完毕。
回顾以上过程,本说明书实施例提供的并行训练业务模型的方法,在参与并行训练的多个设备上,单个设备保存一部分模型参数的当前值,在其他设备需要相关模型参数时,实时从该单个设备获取这些参数。在参数调整更新过程中,其他设备将相关模型参数的当前梯度反馈给该单个设备,由该单个设备综合考虑各个当前梯度,对所保存的模型参数进行当前值的调整。由于各个设备分别处理部分模型参数,可以有效缩短计算和通信时间。特别地,当模型参数具有顺序特点时,可以将其按阶段划分,各个设备之间可以同时进行不同阶段的数据通信和运算,从而节约更多时间,提高模型并行训练效率。
根据另一方面的实施例,还提供一种用于多个设备并行训练业务模型的装置。其中,这里的业务数据可以是文字、图像、语音、视频、动画等各种类型的数据。图5示出了一个实施例的并行训练业务模型的装置500,该装置500可以设于用于并行训练业务模型的多个设备中的任意设备。为了描述方便,假设这里的多个设备包括第一设备和第二设备,装置500设于该第一设备。第一设备可以存储有业务模型的第一参数的当前值,第二设备可以存储有业务模型的第二参数的当前值。第一参数、第二参数分别是第一设备、第二设备针对上述业务模型存储的若干模型参数中的任意参数。
如图5所示,装置500包括:参数获取单元51,配置为从第二设备获取第二参数的当前值;执行单元52,配置为基于第二参数的当前值,针对第一训练样本确定业务模型的第一输出结果,第一输出结果还基于第一参数的当前值确定;梯度确定单元53,配置为按照第一输出结果确定第一参数的第一当前梯度;梯度获取单元54,配置为从第二设备获取第一参数的第二当前梯度,其中,第一参数的第二当前梯度由第二设备通过以下方式确定:从第一设备获取第一参数的当前值;基于第一参数的当前值,针对第二训练样本确定业务模型的第二输出结果;按照第二输出结果确定第一参数的第二当前梯度;更新单元55,配置为基于第一当前梯度和第二当前梯度,更新第一参数的当前值。
根据一个实施方式,在多个设备还包括其他设备的情况下,参数获取单元51还配置为:
从各个其他设备分别获取相应的各个其他参数的当前值;
同时,第一输出结果还基于各个其他参数的当前值确定。
在一个可能的设计中,第一训练样本对应有第一样本标签,梯度确定单元54进一步配置为:
根据第一输出结果与第一样本标签的偏差确定第一损失函数;
按照第一损失函数对第一参数的偏导数确定第一参数的第一当前梯度。
根据一个可选的实现方式,业务模型包括按顺序连接的多层神经网络,第一参数对应多层神经网络中的第i层神经网络,梯度确定单元54还可以配置为:
在第i层神经网络是多层神经网络的最后一层神经网络的情况下,按照第一输出结果确定第一参数的第一当前梯度;
在第i层神经网络不是最后一层神经网络的情况下,基于第i+1层神经网络的输出结果对第i层神经网络的输出结果的梯度,与第i层神经网络的输出结果对第一参数的梯度,确定第一参数的第一当前梯度。
根据一方面的实施例,更新单元55进一步配置为:
对第一当前梯度、第二当前梯度进行融合或选择,得到第一参数的当前周期梯度;
向当前周期梯度下降的方向对第一参数的当前值进行更新。
根据另一方面的实施例,多个设备还包括至少一个其他设备,各个其他设备分别向第一设备反馈有针对第一参数的各个其他梯度;更新单元进一步配置为:
对第一当前梯度、第二当前梯度以及各个其他梯度进行融合或选择,得到第一参数的当前周期梯度;
向当前周期梯度下降的方向对第一参数的当前值进行更新。
值得说明的是,图5所示的装置500是与图4示出的方法实施例相对应的装置实施例,图4示出的方法实施例中的相应描述同样适用于装置500,在此不再赘述。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图4所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图4所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。
Claims (6)
1.一种用于多个设备上并行训练业务模型的方法,所述业务模型用于对相关业务数据进行处理,得到相应业务处理结果,其中:
所述多个设备包括设备T1、T2……Tm,m大于等于2,所述业务模型在训练过程中被划分为至少m个运算阶段S1、S2……Sm,单个运算阶段Si中使用单个模型参数集Pi,i∈[1,m],单个模型参数集Pi中的模型参数当前值由单个对应设备Ti维护及在所述业务模型训练过程中进行更新;
所述方法包括:
在当前训练周期,各个设备T1、T2……Tm分别获取各自的本地当前训练样本X1、X2……Xm,并在单个运算阶段Si,从设备Ti获取模型参数集Pi中各个模型参数的当前值,从而各个设备分别基于本地训练样本确定所述业务模型的m个本地输出结果;
m个设备分别根据m个本地输出结果,按照运算阶段Sm、Sm-1……S0的顺序反向推导各个运算阶段的模型参数的梯度,其中,对于单个设备:Sm运算阶段的参数集Pm中各个模型参数的梯度,基于相应的单个本地输出结果对该运算阶段的各个模型参数分别的偏导数确定;Sm-1运算阶段的参数集Pm-1中各个模型参数的梯度,基于Sm运算阶段的单个本地输出结果对该设备对应的Sm-1阶段的输出结果的偏导数,以及Sm-1运算阶段的输出结果分别对参数集Pm-1中各个模型参数的偏导数共同确定;其余各运算阶段与Sm-1阶段梯度推导方式相同;
单个设备在推导出单个运算阶段Si的模型参数的梯度后,将相应梯度数据反馈至设备Ti,以供设备Ti根据各个设备分别反馈的单个运算阶段Si的各条梯度数据,更新单个运算阶段Si的模型参数。
2.根据权利要求1所述的方法,其中,所述设备Ti根据各个设备分别反馈的单个运算阶段Si的各条梯度数据,更新单个运算阶段Si的模型参数包括:
对于参数集Pi中的单个模型参数,设备Ti根据本地计算得到的模型参数的梯度与从其他设备获取的该模型参数的各个其他梯度进行融合或选择,得到其当前周期梯度;
所述设备Ti向所述当前周期梯度下降的方向对该模型参数的当前值进行更新。
3.一种并行训练业务模型的系统 ,所述系统包括多个设备,所述业务模型用于对相关业务数据进行处理,得到相应业务处理结果,其中:
所述多个设备包括设备T1、T2……Tm,m大于等于2,所述业务模型在训练过程中被划分为至少m个运算阶段S1、S2……Sm,单个运算阶段Si中使用单个模型参数集Pi,i∈[1,m],单个模型参数集Pi中的模型参数当前值由单个对应设备Ti维护及在所述业务模型训练过程中进行更新;
所述系统配置为通过以下操作对所述业务模型执行并行训练:
在当前训练周期,各个设备T1、T2……Tm分别获取各自的本地当前训练样本X1、X2……Xm,并在单个运算阶段Si,从设备Ti获取模型参数集Pi中各个模型参数的当前值,从而各个设备分别基于本地训练样本确定所述业务模型的m个本地输出结果;
m个设备分别根据m个本地输出结果,按照运算阶段Sm、Sm-1……S0的顺序反向推导各个运算阶段的模型参数的梯度,其中,对于单个设备: Sm运算阶段的参数集Pm中各个模型参数的梯度,基于相应的单个本地输出结果对该运算阶段的各个模型参数分别的偏导数确定;Sm-1运算阶段的参数集Pm-1中各个模型参数的梯度,基于Sm运算阶段的单个本地输出结果对该设备对应的Sm-1阶段的输出结果的偏导数,以及Sm-1运算阶段的输出结果分别对参数集Pm-1中各个模型参数的偏导数共同确定;其余各运算阶段与Sm-1阶段梯度推导方式相同;
单个设备在推导出单个运算阶段Si的模型参数的梯度后,将相应梯度数据反馈至设备Ti,以供设备Ti根据各个设备分别反馈的单个运算阶段Si的各条梯度数据,更新单个运算阶段Si的模型参数。
4.根据权利要求3所述的系统,其中,所述设备Ti还配置为通过以下方式更新单个运算阶段Si的模型参数:
对于参数集Pi中的单个模型参数,设备Ti根据本地计算得到的模型参数的梯度与从其他设备获取的该模型参数的各个其他梯度进行融合或选择,得到其当前周期梯度;
所述设备Ti向所述当前周期梯度下降的方向对该模型参数的当前值进行更新。
5.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-2中任一项的所述的方法。
6.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-2中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010384216.8A CN111291869B (zh) | 2020-05-09 | 2020-05-09 | 并行训练业务模型的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010384216.8A CN111291869B (zh) | 2020-05-09 | 2020-05-09 | 并行训练业务模型的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291869A CN111291869A (zh) | 2020-06-16 |
CN111291869B true CN111291869B (zh) | 2020-11-24 |
Family
ID=71019520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010384216.8A Active CN111291869B (zh) | 2020-05-09 | 2020-05-09 | 并行训练业务模型的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291869B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738415B (zh) * | 2020-06-17 | 2023-07-04 | 北京字节跳动网络技术有限公司 | 模型同步更新方法、装置及电子设备 |
CN111738416B (zh) * | 2020-06-17 | 2023-07-18 | 北京字节跳动网络技术有限公司 | 模型同步更新方法、装置及电子设备 |
CN112183668B (zh) * | 2020-11-03 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 并行训练业务模型的方法及装置 |
CN114492723A (zh) * | 2020-11-13 | 2022-05-13 | 华为技术有限公司 | 神经网络模型的训练方法、图像处理方法及装置 |
CN114330673A (zh) * | 2022-03-15 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 一种对业务预测模型进行多方联合训练的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036451B (zh) * | 2014-06-20 | 2018-12-11 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
CN104035751B (zh) * | 2014-06-20 | 2016-10-12 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的数据并行处理方法及装置 |
US10949746B2 (en) * | 2016-10-27 | 2021-03-16 | International Business Machines Corporation | Efficient parallel training of a network model on multiple graphics processing units |
US11488008B2 (en) * | 2017-05-05 | 2022-11-01 | Intel Corporation | Hardware implemented point to point communication primitives for machine learning |
US11093827B2 (en) * | 2017-09-20 | 2021-08-17 | International Business Machines Corporation | Variable ISA vector-based compaction in distributed training of neural networks |
CN108829441B (zh) * | 2018-05-14 | 2022-10-18 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
-
2020
- 2020-05-09 CN CN202010384216.8A patent/CN111291869B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111291869A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111291869B (zh) | 并行训练业务模型的方法及装置 | |
Hu et al. | Decentralized federated learning: A segmented gossip approach | |
CN107944566B (zh) | 一种机器学习方法、主节点、工作节点及系统 | |
CN110677267B (zh) | 信息处理方法和装置 | |
WO2017143773A1 (zh) | 一种众包学习方法及装置 | |
CN112948885B (zh) | 实现隐私保护的多方协同更新模型的方法、装置及系统 | |
CN114650227A (zh) | 一种分层联邦学习场景下的网络拓扑构建方法及系统 | |
CN113018846A (zh) | 结合数据分析和动态渲染的游戏画面处理方法及存储介质 | |
CN114925849A (zh) | 一种图数据上的联邦学习优化方法 | |
CN115759295A (zh) | 一种基于纵向联邦学习的协同训练方法、装置及存储介质 | |
CN111444309B (zh) | 用于对图进行学习的系统 | |
CN115130683A (zh) | 一种基于多代理模型的异步联邦学习方法及系统 | |
CN117785490A (zh) | 一种图神经网络模型的训练架构、方法、系统及服务器 | |
CN114492152A (zh) | 更新网络模型的方法、图像分类的方法、语言建模的方法 | |
CN112766455A (zh) | 一种学习模型训练方法和系统 | |
CN110892427B (zh) | 用于检索数据包的方法和设备 | |
CN111049900A (zh) | 一种物联网流计算调度方法、装置和电子设备 | |
CN111813525B (zh) | 一种异构系统工作流调度方法 | |
CN109224451A (zh) | 基于区块链子链的游戏开发方法、设备以及存储介质 | |
Mudvari et al. | Robust sdn synchronization in mobile networks using deep reinforcement and transfer learning | |
CN114218776A (zh) | 一种基于区块链的分布式仿真实现方法 | |
CN114118358A (zh) | 图像处理方法、装置、电子设备、介质及程序产品 | |
CN113837108B (zh) | 人脸识别方法、装置及计算机可读存储介质 | |
CN111292171A (zh) | 金融理财产品推送方法及装置 | |
CN114462600A (zh) | 一种有向图对应的图神经网络的训练方法及装置 |
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 |