CN104933463B - 深度神经网络模型的训练方法和设备 - Google Patents
深度神经网络模型的训练方法和设备 Download PDFInfo
- Publication number
- CN104933463B CN104933463B CN201510401619.8A CN201510401619A CN104933463B CN 104933463 B CN104933463 B CN 104933463B CN 201510401619 A CN201510401619 A CN 201510401619A CN 104933463 B CN104933463 B CN 104933463B
- Authority
- CN
- China
- Prior art keywords
- training
- processor
- model
- scheme
- parallel
- 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
- 238000012549 training Methods 0.000 title claims abstract description 523
- 238000003062 neural network model Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012545 processing Methods 0.000 claims description 111
- 238000012937 correction Methods 0.000 claims description 80
- 230000001360 synchronised effect Effects 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 10
- 239000000203 mixture Substances 0.000 description 7
- 230000008901 benefit Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Landscapes
- Supply And Distribution Of Alternating Current (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明的实施方式提供了一种深度神经网络模型的训练方法。该方法包括:当训练数据的大小发生改变时,针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时;从预设的至少两个候选训练方案中选取训练耗时最小的训练方案作为所述改变后的训练数据的最佳训练方案;将所述改变后的训练数据在所述最佳训练方案中进行深度神经网络模型训练。本发明的方法可以解决现有技术中由于固定地采用某一种训练方案不适用于所有大小的训练数据而导致训练速度变慢的问题。此外,本发明的另一方面提供了一种深度神经网络模型的训练设备。
Description
技术领域
本发明的实施方式涉及计算机应用领域,更具体地,本发明的实施方式涉及深度神经网络模型的训练方法和设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本申请的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
目前,除了可以采用单个处理器进行深度神经网络模型的训练之外,为了加快训练速度,还可以采用多个处理器进行模型训练。并且,现有技术也提供了多种采用多个处理器进行模型训练的训练方案,例如,基于数据并行的多处理器方案以及基于数据并行与模型并行混合的多处理器方案等。
另外,在模型训练中,为了使最终训练出的模型具有较高的精准度,需要通过迭代处理的方式对模型参数进行多次更新,每一次更新过程即为一次训练过程。
例如,在对深度神经网络模型进行训练时,以一次迭代处理过程为例,先将训练数据从深度神经网络模型的首层到末层逐层地进行正向处理,并在正向处理结束后获得误差信息;然后将误差信息从深度神经网络模型的末层到首层逐层地进行反向处理,并在反向处理过程中获得需要进行模型参数更新的层的模型参数修正量;最后根据模型参数修正量对需要进行模型参数更新的层的模型参数进行更新。
发明内容
但是,本发明人在研究过程中发现,在现有技术中,当进行模型训练时,会根据上一次迭代处理后模型的精准度适当地调整下一次迭代处理时训练数据的大小。也就是说,在每一次迭代处理时,训练数据的大小不是固定不变的,而是根据精准度的需求而不断调整的。而对于特定大小的训练数据来说,采用特定的训练方案会加快训练速度。例如,发明人发现,当训练数据很小时,与其它方案相比,采用单处理器方案可以获得更快的训练速度,而当训练数据很大时,与其它方案相比,采用基于数据并行的多处理器方案可以获得更快的训练速度。
依照现有技术,如果固定地采用同一种模型训练方案进行模型训练,对于某一些大小的训练数据来说,其训练速度是比较快的,但是对于其它大小的训练数据来说,其训练速度是比较慢的。也就是说,由于固定地采用同一种训练方案不适用于所有大小的训练数据,因此不会达到最快的训练速度。
为此,非常需要一种深度神经网络模型的训练方法和设备,以解决现有技术中由于固定地采用同一种训练方案对所有大小的训练数据进行训练而导致对其中一些训练数据的训练速度变慢的问题。
在本上下文中,本发明的实施方式期望提供一种深度神经网络模型的训练方法和设备。
在本发明实施方式的第一方面中,提供了一种深度神经网络模型的训练方法,包括:
当训练数据的大小发生改变时,针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时;
从预设的至少两个候选训练方案中选取训练耗时最小的训练方案作为所述改变后的训练数据的最佳训练方案;
将所述改变后的训练数据在所述最佳训练方案中进行深度神经网络模型训练。
在本发明实施方式的第二方面中,提供了一种深度神经网络模型的训练设备,包括:
计算单元,用于当训练数据的大小发生改变时,针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时;
选取单元,用于从预设的至少两个候选训练方案中选取训练耗时最小的训练方案作为所述改变后的训练数据的最佳训练方案;
模型训练单元,用于将所述改变后的训练数据在所述最佳训练方案中进行深度神经网络模型训练。
在本发明实施方式中,在模型训练时,对于不同大小的训练数据,不再固定地采用同一种训练方案进行训练,而在选择适用于该训练数据的最佳训练方案进行训练,即,采用训练速度最快的训练方案。这样可以避免由于固定地采用同一种训练方案对所有大小的训练数据进行训练而导致的对其中一些训练数据的训练速度变慢的问题。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了本发明实施方式可以在其中实施的一个示例性场景;
图2示意性地示出了根据本发明的一个实施方式的深度神经网络模型的训练方法的流程图;
图3示意性地示出了根据本发明的一个实施方式的计算改变后的训练数据在一个候选训练方案中的训练耗时的方法的流程图;
图4示意性地示出了根据本发明的一个实施方式的基于数据并行的多处理器方案的训练方法的流程图;
图5示意性地示出了根据本发明的一个实施方式的基于数据并行与模型并行混合的多处理器方案的训练方法的流程图;
图6示意性地示出了根据本发明的另一个实施方式的深度神经网络模型的训练方法的流程图;
图7示意性地示出了根据本发明的一个实施方式的模型参数同步的操作示意图;
图8示意性地示出了根据本发明的另一个实施方式的模型参数同步的操作示意图;
图9示意性地示出了根据本发明的另一个实施方式的模型参数同步的操作示意图;
图10示意性地示出了根据本发明的另一个实施方式的模型参数同步的操作示意图;
图11示意性地示出了根据本发明一个实施方式的深度神经网络模型的训练设备的结构框架图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种深度神经网络模型的训练方法和设备。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,针对不同大小的训练数据,如果固定地采用同一种模型训练方案进行模型训练,很可能会只会达到对其中一些训练数据的训练速度比较快,而对其余一些训练数据的训练数据比较慢。即,从训练速度最优化的角度来看,固定的同一种训练方案并不适用于所有大小的训练数据。
如果针对不同大小的训练数据,采用适用于该训练数据的最佳训练方案,即,采用训练速度最快的训练方案,而不是固定地采用同一种训练方案的话,就可以避免前面所述的由于固定地采用同一种训练方案对所有大小的训练数据进行训练而导致的对其中一些训练数据的训练速度变慢的问题。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1,图1示意性地示出了本发明的实施方式可以在其中实施的示例性应用场景。其中,在进行每一次模型训练时,将本次训练的训练数据10输入到用于模型训练的处理***20中,由处理***20将训练数据10在基于本次训练所确定的最佳训练方案中进行模型训练。在经过多次模型训练之后,处理***20最终输出一个精准度符合用户要求的深度神经网络模型30。其中,如果基于本次训练所确定的最佳训练方案为单处理器方案,则在处理***20中仅包含一个处理器21,在该一个处理器21中布置一个完整的深度神经网络模型,一个完整的深度神经网络模型包含所有用于对训练数据进行映射和运算等处理的处理层。如果基于本次训练所确定的最佳训练方案为基于数据并行的多处理器方案,则在处理***20中包含多个处理器21,例如,共包含4个处理器21,在4个处理器21中各布置有一个完整的深度神经网络模型,并且4个处理器21中的完整的深度神经网络模型是相同的。如果基于本地训练所确定的最佳训练方案为基于数据并行与模型并行混合的多处理器方案,则在处理***20中包含多个处理器21,并且,将该多个处理器21平均分成多个组,为每一个组各布置一个完整的深度神经网络模型,将布置在每一个组内的一个完整的深度神经网络模型平均拆分为多个子模型,而经过平均拆分后,每个子模型所包含的处理层的层数相同或基本相同。其中,处理器的分组个数与一个完整的深度神经网络模型中的子模型的个数的乘积为处理器的总个数。例如,处理***20共包含4个处理器21,将4个处理器21平均分成2个组,每一个组包含2个处理器21,为每一个组各布置一个完整的深度神经网络模型,将布置在每一个组内的一个完整的深度神经网络模型平均拆分为2个子模型A和B(子模型A和B的层数相同或基本相同),即,对于每一个组来说,在其中一个处理器21中布置子模型A,在另一个处理器21中布置子模型B。其中,处理器21可以是专用的图形处理器(GraphicsProcessing Unit,GPU),也可以是其它处理器,如通用的中央处理器(Central ProcessingUnit,CPU)。本领域技术人员可以理解,图1所示的示意图仅是本发明的实施方式可以在其中得以实现的一个示例。本发明实施方式的应用范围不受到该框架任何方面的限制。例如,在基于数据并行的多处理器方案以及在基于数据并行与模型并行混合的多处理器方案中,除了可以包含4个处理器之外,也可以包含其它数量的处理器。
示例性方法
下面结合图1的应用场景,参考图2来描述根据本发明示例性实施方式的、用于深度神经网络模型的训练的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
请参阅图2,其示意性地示出了根据本发明的一个实施方式的深度神经网络模型的训练方法的流程图,例如,该方法可以由处理***20执行,方法具体例如可以包括:
步骤201:当训练数据的大小发生改变时,针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时。
步骤202:从预设的至少两个训练方案中选取训练耗时最小的训练方案作为所述改变后的训练数据的最佳训练方案。
步骤203:将所述改变后的训练数据在所述最佳训练方案中进行深度神经网络模型训练。
通常,深度神经网络模型的训练过程包括正向处理、反向处理、模型参数修正量同步以及模型参数更新四个过程,因此,在发明的一个优选实施方式中,如图3所示,可以通过如下方式计算改变后的训练数据在一个候选训练方案中的训练耗时。
步骤301:统计所述改变后的训练数据在所述候选训练方案中的正向处理耗时和反向处理耗时;
步骤302:统计在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量在所述候选训练方案中的同步耗时,以及统计一个完整的深度神经网络模型的模型参数在所述候选训练方案中的更新耗时;
步骤303:计算所述正向处理耗时、反向处理耗时、同步耗时和更新耗时的总和值,所述总和值即为所述改变后的训练数据在所述候选训练方案中的训练耗时。
例如,如果采用基于数据并行的多处理器方案进行模型训练,下面以该方案中共包含4个处理器为例说明模型训练的过程,如图1所示。其中,在4个处理器(210-213)上各布置有一个完整的深度神经网络模型,且布置在4个处理器上的深度神经网络模型是相同的。在训练之前,先将一份完整的训练数据平均拆分成4份,将4个1/4份完整的训练数据分别作为4个处理器的训练数据并输入到4个处理器中。当进行训练时,如图4所示,该训练过程具体可以包括:
步骤401:4个处理器同时将各自的训练数据从一个完整的深度神经网络模型的首层到末层逐层地进行正向处理,经过正向处理后,4个处理器各获得一份误差信息;
步骤402:4个处理器同时将各自的误差信息从一个完整的深度神经网络模型的末层到首层逐层地进行反向处理,经过反向处理后,4个处理器各获得一份可对需要进行模型参数更新的层进行更新的模型参数修正量R0-R3(R0由处理器210产生,依次类推);
步骤403:4个处理器将模型参数修正量进行同步处理;
该同步处理过程具体包括:
1)处理器210与处理器211同时向对方发送各自的模型参数修正量,与此同时,处理器212与处理器213也同时向对方发送各自的模型参数修正量。
2)每一个处理器在获得新的模型参数修正量之后,计算该新的模型参数修正量与自身的模型参数修正量的算术平均值,从而完成第一次同步,并得到各自的第一次同步结果。
其中,处理器210与处理器211获得相同的第一次同步结果,即,(R0+R1)/2,处理器212与处理器213获得相同的第一次同步结果,即,(R2+R3)/2。
3)处理器210与处理器212同时向对方发送各自的第一次同步结果,与此同时,处理器211与处理器213也同时向对方发送各自的第一次同步结果。
4)每一个处理器在获得新的第一次同步结果之后,计算该新的第一次同步结果与自身的第一次同步结果的算术平均值,从而完成第二次同步,并得到各自的第二次同步结果。
其中,4个处理器经过第二次同步后获得相同的同步结果,即,(R0+R1+R2+R3)/4,至此,模型参数修正量的同步过程结束,第二次同步结果即为同步后的模型参数修正量。
步骤404:4个处理器同时根据同步后的模型参数修正量对各自的完整的深度神经网络模型中需要进行模型参数更新的层的模型参数进行更新。
其中,在步骤401中,由于4个处理器的处理能力相同,布置的深度神经网络模型相同,正向处理输入数据的大小也相同,因此,当4个处理器同时进行正向处理时,步骤401中的正向处理耗时即为4个处理器中的任意一个处理器的正向处理耗时Tfore-4,Tfore-4表示1/4份完整的训练数据在一个完整的深度神经网络模型中进行正向处理的耗时。
同样,在步骤402中,当4个处理器同时进行反向处理时,步骤402中的反向处理耗时即为4个处理器中的任意一个处理器的反向处理耗时Tback-4,Tback-4表示1/4份完整的训练数据在一个完整的深度神经网络模型中进行反向处理的耗时。
在步骤403中,假设计算第一次同步结果的时间以及计算第二次同步结果的时间可以忽略不计,并且,假设在两个处理器之间传输的模型参数修正量与第一次同步结果的大小也几乎相等,即,模型参数修正量在两个处理器之间的传输耗时与第一次同步结果在两个处理器之间的传输耗时相等,即都为Ttrans,因此,步骤403中的同步耗时即为2×Ttrans,Ttrans=M/S,Ttrans为在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量的传输时间,M为一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量的大小,S为该模型参数修正量在两个处理器之间的传输速率。
当然,当训练方案中存在更多的处理器时,处理器之间除了传输第一次同步结果之外,还需要传输更多的同步结果。因此,模型参数修正量的同步耗时的大小不仅与模型参数修正量在处理器之间的传输耗时有关,同时也与最佳训练方案中处理器的数量有关。
当处理器为GPU时,GPU与GPU之间可以直接进行传输,也可以通过CPU进行传输。
在步骤404中,由于4个处理器所获得的同步后的模型模型参数修正量的大小相同,在4个处理器中布置的深度神经网络模型也相同,因此,当4个处理器同时进行模型参数更新时,步骤404中的更新耗时即为4个处理器中的任意一个处理器的模型参数更新耗时Tupdate-1,Tupdate-1表示一个完整的深度神经网络模型的模型参数在一个处理器中的更新耗时。
综上,当基于数据并行的多处理器方案中包含4个处理器时,其训练耗时为:T=Tfore-4+Tback-4+2×Ttrans+Tupdate-1。
如果将基于数据并行的多处理器方案推广为包含N个处理器,则训练耗时为:其中N为2的n次方,n为零或正整数。
如果采用单处理器方案进行模型训练,与基于数据并行的多处理器方案不同,由于只有一个处理器完整模型训练,因此不需要在处理器之间对模型参数修正量进行同步,也就是说,在训练耗时中,模型参数修正量同步耗时为0。其训练耗时为:T=Tfore-1+Tback-1+Tupdate-1。其中,Tfore-1表示1份完整的训练数据在一个完整的深度神经网络模型中进行正向处理的耗时,Tback-1表示1份完整的训练数据在一个完整的深度神经网络模型中进行正向处理的耗时,Tupdate-1表示一个完整的深度神经网络模型的模型参数在一个处理器中的更新耗时。
另外,需要说明的是,对于单处理器方案和基于数据并行的多处理器方案,其更新耗时是相等的,因此,在具体实现时,只要计算出其中一个方案的更新耗时,即可得到另一个方法的更新耗时。另外,其正向处理耗时之间存在如下计算关系:N×Tfore-N≥Tfore-1,其反向处理耗时之间存在如下计算关系:N×Tback-N≥Tback-1,N为基于数据并行的多处理方案中处理器的个数。在具体实现时,可以在单处理器方案中,利用一份完整的训练数据计算出单处理器方案中的正向处理耗时Tfore-1以及反向处理耗时Tback-1,利用1/N份的训练数据计算出基于数据并行的多处理器方案的正向处理耗时Tfore-N以及反向处理耗时Tback-N。
如果采用基于数据并行与模型并行混合的多处理器方案进行模型训练,下面以该方案中共包含4个处理器为例说明模型训练的过程,其中,如图1所示,将4个处理器(210-213)平均分成2个组,第一个组包含处理器210和212,第二个组包含处理器211和213,为每一个组各布置一个完整的深度神经网络模型,并将布置在每一个组内的一个完整的深度神经网络模型平均拆分成两个子模型A和B(子模型A和B的层数相同或基本相同),即,对于第一个组,在处理器210中布置子模型A,在处理器212中布置子模型B,对于第二个组,在处理器211中布置子模型A,在处理器213中布置子模型B。在训练之前,先将一份完整的训练数据平均分成2份,将2个1/2份完整的训练数据分别作为处理器210与211的训练数据并输入到处理器210与211中。当进行训练时,如图5所示,该训练过程具体可以包括:
步骤501:处理器210和211同时将各自的训练数据从各自的子模型A的首层到末层逐层地进行正向处理。
接下来,处理器210将其正向处理输出数据作为处理器212的训练数据输入到处理器212中,处理器211将其正向处理输出数据作为处理器213的训练数据输入到处理器213中。
步骤502:处理器212和213同时将各自的正向处理输入数据从各自的子模型B的首层到末层逐层地进行正向处理,经过正向处理后,2个处理器各获得一份误差信息。
步骤503:处理器212和213同时将各自的误差信息从各自的子模型B的末层到首层逐层地进行反向处理。
接下来,处理器212将其反向处理输出数据作为处理器210的误差信息输入到处理器210中,处理器213将其反向处理输出数据作为处理器211的误差信息输入到处理器211中;
步骤504:处理器210和211同时将各自的误差信息从各自的子模型A的末层到首层逐层地进行反向处理,经过反向处理后,4个处理器各获得一份可对需要进行模型参数更新的层进行更新的模型参数修正量RA0、RB0、RA1和RB1(RA0由处理器210产生,依次类推)。
步骤505:4个处理器将模型参数修正量进行同步处理。
该同步处理过程具体包括:
1)处理器210与处理器211同时向对方发送各自的模型参数修正量,与此同时,处理器212与处理器213也同时向对方发送各自的模型参数修正量。
2)每一个处理器在获得新的模型参数修正量之后,计算新的模型参数修正量与自身的模型参数修正量的算术平均值,从而完成第一次同步,并得到各自的第一次同步结果。
其中,处理器210与处理器211获得的第一次同步结果相同,即,(RA0+RA1)/2,,并且为关于子模型A的同步后的模型参数修正量,处理器211与处理器213获得的第一次同步结果相同,即,(RB0+RB1)/2,并且为关于子模型B的同步后的模型参数修正量。至此,模型参数修正量的同步过程结束。
步骤506:4个处理器同时根据同步后的模型参数修正量对各自的子模型中需要进行模型参数更新的层进行模型参数的更新。
其中,在步骤501中,由于处理器210和211的处理能力相同,布置的深度神经网络子模型也相同,处理的训练数据的大小也相同,因此,当处理器210和211同时进行正向处理时,步骤501中的正向处理耗时即为两个处理器中的任意一个处理器的正向处理耗时。由于处理器210和211处理的训练数据为1/2份完整的训练数据,并且布置在处理器210和211中的模型都是子模型,每一个子模型都是一个完整的深度神经网络模型的1/2,因此,任意一个处理器的正向处理耗时为Tfore-2/2,Tfore-2表示1/2份完整的训练数据在一个完整的深度神经网络模型中进行正向处理的耗时。
同样,在步骤502中,当处理器212和213同时进行正向处理时,步骤502中的正向处理耗时也为Tfore-2/2。
同样,在步骤503中,当处理器212和213同时进行反向处理时,步骤503中的反向处理耗时即为两个处理器中的任意一个处理器的反向处理耗时,即为Tback-2/2。
在步骤504中,当处理器210和211同时进行反向处理时,步骤504中的反向处理耗时也为Tback-2/2。并且,上述正向处理耗时与反向处理耗时的大小不仅与训练数据的大小有关,也与一个完整的深度神经网络模型被拆分成的子模型的个数有关。
在步骤505中,假设计算第一次同步结果的时间可以忽略不计,并且,由于布置在4个处理器中的模型都是子模型,每一个子模型都是一个完整的深度神经网络模型的1/2,因此,4个处理器获得的模型参数修正量是在一个完整的深度神经模型中获得的模型参数修正量的1/2,则步骤505中的同步耗时即为Ttrans/2,Ttrans=M/S,Ttrans为在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量的传输时间,M为一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量的大小,S为该模型参数修正量在两个处理器之间的传输速率。
当然,当训练方案中存在更多的处理器以便将处理器划分成更多的组时,处理器之间除了传输各自的模型参数修正量之外,还需要传输各自的同步结果。因此,模型参数修正量的同步耗时的大小不仅与模型参数修正量在处理器之间的传输耗时有关,同时也与最佳训练方案中处理器的数量以及将处理器划分的组数有关。
在步骤506中,由于4个处理器同时进行模型参数更新时,更新耗时可以近似为4个处理器中的任意一个处理器的模型参数更新耗时。另外,由于布置在4个处理器中的模型都为子模型,并且每一个子模型是一个完整的深度神经网络模型的1/2,因此,每一个子模型的模型参数是一个完整的深度神经网络模型的模型参数的1/2,任意一个处理器的模型参数更新耗时为Tupdate-1/2,Tupdate-1表示一个完整的深度神经网络模型的模型参数在一个处理器中的更新耗时。
综上,当基于数据并行和模型并行混合的多处理器方案中包含4个处理器时,其训练耗时为:T=Tfore-2+Tback-2+Ttrans/2+Tupdate-1/2。
如果将基于数据并行和模型并行混合的多处理器方案推广为包含N个处理器,则训练耗时为:T=Tfore-k+Tback-k+log2 k×Ttrans/(N/k)+Tupdate-1/(N/k),k为将处理器划分成不同组进行并行训练的组数,k<N,且k与N都为2的n次方,n为零或正整数。
另外,需要说明的是,对于单处理器方案和基于数据并行与模型并行混合的多处理器方案,其更新耗时之间存在如下的计算关系:Tupdate-1=Tupdate-N/k×(N/k),k为将处理器划分成不同组进行并行训练的组数,N为基于数据并行与模型并行混合的多处理器方案中处理器的个数。因此,在具体实现时,只要计算出其中一个方案的更新耗时,就可以按照上述计算公式推导出另一个方案的更新耗时。另外,其正向处理耗时之间存在如下计算关系:k×Tfore-k≥Tfore-1,其反向处理耗时之间存在如下计算关系:k×Tback-k≥Tback-1。在具体实现时,可以在单处理器方案中,利用一份完整的训练数据计算出单处理器方案中的正向处理耗时Tfore-1以及反向处理耗时Tback-1,利用1/N份训练数据计算出基于数据并行与模型并行混合的多处理器方案的正向处理耗时Tfore-k以及反向处理耗时Tback-k。
在本发明中,用于计算训练耗时的处理器和用于模型训练的处理器可以为相同的处理,也可以为不同的处理器。
如果用于计算训练耗时的处理器与用于模型训练的处理器为相同的处理器,每当训练数据发生改变时,该处理器可以先将训练方案切换至单处理器方案下,在单处理器方案中先对一份完整的训练数据进行一次训练,从而获得单处理器方案的正向处理耗时Tfore-1和反向处理耗时Tback-1,以及单处理器方案与基于数据并行的多处理器方案的更新耗时Tupdate-1,然后在单处理器方案中对1/N份训练数据进行一次训练,获得基于数据并行的多处理器方案的正向处理耗时Tfore-N和反向处理耗时Tback-N,对1/k份训练数据进行一次训练,获得基于数据并行与模型并行混合的多处理器方案的正向处理耗时Tfore-k和反向处理耗时Tback-k,接着根据单处理器方案与基于数据并行与模型并行混合的多处理器方案中的更新耗时之间关系,计算得到基于数据并行与模型并行混合的多处理器方案的更新耗时,最后计算出单处理器方案、基于数据并行的多处理器方案以及基于数据并行和模型同步的多处理器方案的训练耗时。在确定训练耗时最小的最佳训练方案之后,该处理器再将训练方案从单处理器方案切换至最佳训练方案。
如果用于计算训练耗时的处理器与用于模型训练的处理器为不同的处理器,用于计算训练耗时的处理器与用于模型训练的处理器可以独立地、并行地工作。其中,用于计算训练耗时的处理器可以按照上述方式计算单处理器方案、基于数据并行的多处理器方案以及基于数据并行和模型同步的多处理器方案的训练耗时。
为了提高处理器对模型训练的处理效率,在本发明的一个优选实施方式中,用于计算训练耗时的处理器与用于模型训练的处理器为不同的处理器。
在本发明的一个优选实施方式中,如图6所示,还可以保存改变后的训练数据的最佳训练方案。例如,可以在处理器中保存每一种大小的训练数据与其最佳训练方案的对应关系。进而,在执行步骤201之前,可以先从保存的训练方案中查找该改变后的训练数据的最佳训练方案,如果查找到该改变后的训练数据的最佳训练方案,直接从保存的训练方案中调取该改变后的训练数据的最佳训练方案,并进入到步骤203中进行模型训练,如果没有查找到该改变后的训练数据的最佳训练方案,再继续步骤201。
另外,在本发明的一个优选实施方式中,采用最佳训练方案对改变后的训练数据进行模型训练可以包括:将当前训练方案中的模型参数同步给所述最佳训练方案,采用同步后的最佳训练方案对改变后的训练数据进行模型训练。
其中,如果当前训练方案为单处理器方案,且第一处理器为单处理器方案中的处理器,最佳训练方案为基于数据并行的多处理器方案,如图7所示,则将单处理器方案中的模型参数同步给基于数据并行的多处理器方案为:将第一处理器中的模型参数传输给第二处理器,并行地将所述第一处理器中的模型参数传输给第三处理器,将所述第二处理器中的模型参数传输给第四处理器。
如果当前训练方案为单处理器方案,且第一处理器为单处理器方案中的处理器,最佳训练方案为基于数据并行与模型并行混合的多处理器方案,且第一处理器和第三处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型,第二处理器和第四处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型,如图8所示,则将单处理器方案中的模型参数同步给基于数据并行与模型并行混合的多处理器方案为:将第一处理器中的第二子模型的模型参数传输给第三处理器,并行地将第一处理器中的第一子模型的模型参数传输给第二处理器,将第三处理器中的第二子模型的模型参数传输给第四处理器。
如果当前训练方案为基于数据并行与模型并行混合的多处理器方案,且第一处理器和第三处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型,第二处理器和第四处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型,最佳方案为单处理器方案,且第一处理器为单处理器方案中的处理器,如图9所示,则将基于数据并行与模型并行混合的多处理器方案中的模型参数同步给单处理器方案为:将第三处理器或第四处理器中的第二子模型的模型参数传输给第一处理器,将第一处理器中的第一子模型的模型参数与第二子模型的模型参数进行合并。
如果当前训练方案为基于数据并行与模型并行混合的多处理器方案,且第一处理器和第三处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型,第二处理器和第四处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型,最佳训练方案为基于数据并行的多处理器方案,如图10所示,则将基于数据并行与模型并行混合的多处理器方案中的模型参数同步给基于数据并行的多处理器方案为:并行地将第一处理器中的第一子模型的模型参数传输给第三处理器,将第二处理器中的第一子模型的模型参数传输给第四处理器,与此同时,并行地将第三处理器中的第二子模型的模型参数传输给第一处理器,将第四处理器中的第二子模型的模型参数传输给第二处理器,将各处理器中第一子模型的模型参数与第二子模型的模型参数进行合并。
当然,需要说明的是,如果当前训练方案为基于数据并行的多处理器方案,最佳训练方案为单处理器方案,由于第一处理器上的所需的模型参数已经存在于该处理器上,因此,直接在第一处理器上进行模型训练即可,无需再进行模型参数的同步。如果当前训练方案为基于数据并行的多处理器方案,最佳训练方案为基于数据并行与模型并行混合的多处理器方案,由于第一处理器、第二处理器、第三处理器和第四处理器所需的子模型的模型参数已经存在于该处理器上,因此,直接在第一处理器、第二处理器、第三处理器和第四处理器上进行模型训练即可,无需再进行模型参数的同步。
根据本发明,在本发明实施方式中,在模型训练时,对于不同大小的训练数据,不再固定地采用同一种训练方案进行训练,而在选择适用于该训练数据的最佳训练方案进行训练,即,采用训练速度最快的训练方案。这样可以避免由于固定地采用同一种训练方案对所有大小的训练数据进行训练而导致的对其中一些训练数据的训练速度变慢的问题。
示例性设备
在介绍了本发明示例性实施方式的方法之后,接下来,参考图5来描述根据本发明示例性实施方式的、用于深度神经网络模型的训练设备。
参考图11,其示意性地示出了根据本发明一个实施方式的深度神经网络模型的训练设备的结构框架图,具体地,该设备例如可以包括:
计算单元1101,用于当训练数据的大小发生改变时,针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时;
选取单元1102,用于从预设的至少两个候选训练方案中选取训练耗时最小的训练方案作为所述改变后的训练数据的最佳训练方案;
模型训练单元1103,用于将所述改变后的训练数据在所述最佳训练方案中进行深度神经网络模型训练。
在本发明的一个优选实施方式中,计算单元1101包括:
第一统计子单元,用于统计所述改变后的训练数据在所述候选训练方案中的正向处理耗时和反向处理耗时;
第二统计子单元,用于统计在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量在所述候选训练方案中的同步耗时,以及统计一个完整的深度神经网络模型的模型参数在所述候选训练方案中的更新耗时;
计算子单元,用于计算所述正向处理耗时、反向处理耗时、同步耗时和更新耗时的总和值,所述总和值即为所述改变后的训练数据在所述候选训练方案中的训练耗时。
在本发明的另一个优选实施方式中,如果所述候选训练方案为基于数据并行的多处理器方案;第二统计子单元包括:
第一计算子单元,用于按照Ttrans=M/S计算在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量的传输时间;
第二计算子单元,用于按照计算所述模型参数修正量在所述候选训练方案中的同步耗时;
其中,M为所述模型参数修正量的大小,S为所述模型参数修正量在两个处理器之间的传输速率,Ttrans为所述模型参数修正量的传输时间,Tsync为所述模型参数修正量在所述候选训练方案中的同步耗时,N为所述候选训练方案中处理器的个数,其中N为2的n次方,n为零或正整数。
在本发明的另一个优选实施方式中,如果所述候选训练方案为基于数据并行与模型并行混合的多处理器方案;第二统计子单元包括:
第一计算子单元,用于按照Ttrans=M/S计算在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量的传输时间;
第三计算子单元,用于按照计算所述模型参数修正量在所述候选训练方案中的同步耗时;
其中,M为所述模型参数修正量的大小,S为所述模型参数修正量在两个处理器之间的传输速率,Ttrans为所述模型参数修正量的传输时间,Tsync为所述模型参数修正量在所述候选训练方案中的同步耗时,N为所述候选训练方案中处理器的个数,k为将处理器划分成不同组进行并行训练的组数,k<N,且k与N都为2的n次方,n为零或正整数。
在本发明的另一个优选实施方式中,如果所述候选训练方案为基于数据并行与模型并行混合的多处理器方案;第二统计子单元还包括:
确定子单元,用于确定一个完整的深度神经网络模型中的模型参数在一个处理器中的更新耗时;
第四计算子单元,用于按照Tupdate-N/k=Tupdate-1/(N/k)计算所述模型参数在所述候选训练方案中的更新耗时;
其中,Tupdate-N/k为所述模型参数在所述候选训练方案中的更新耗时,Tupdate-1为一个完整的深度神经网络模型的模型参数在一个处理器中的更新耗时,N为所述候选训练方案中处理器的个数,k为将处理器划分成不同组进行并行训练的组数,k<N,且k与N都为2的n次方,n为零或正整数。
在本发明的另一个优选实施方式中,用于计算训练耗时的处理器与用于模型训练的处理器为不同的处理器。
在本发明的另一个优选实施方式中,模型训练单元1103包括:
同步子单元,用于将当前训练方案中的模型参数同步给所述最佳训练方案;
训练子单元,用于将所述改变后的训练数据在同步后的所述最佳训练方案中进行模型训练。
在本发明的一个优选实施方式中,该设备还包括保存单元,用于保存所述改变后的训练数据的最佳训练方案。
在本发明的另一个优选实施方式中,该设备还包括:
查找单元,用于在计算单元1101针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时之前从保存的训练方案中查找所述改变后的训练数据的最佳训练方案;
第二触发单元,用于如果没有查找到所述改变后的训练数据的最佳训练方案,则触发计算单元1101工作。
在本发明的另一个优选实施方式中,该设备还包括:
调取单元,用于如果查找到所述改变后的训练数据的最佳训练方案,直接调取所述改变后的训练数据的最佳训练方案;
第二触发单元,用于触发模型训练单元1103工作。
在本发明的另一个优选实施方式中,同步子单元具体用于:
如果当前训练方案为单处理器方案,最佳训练方案为基于数据并行的多处理器方案,则将第一处理器中的模型参数传输给第二处理器,并行地将所述第一处理器中的模型参数传输给第三处理器,将所述第二处理器中的模型参数传输给第四处理器;
或者,
如果当前训练方案为单处理器方案,最佳训练方案为基于数据并行与模型并行混合的多处理器方案,则将第一处理器中的第二子模型的模型参数传输给第三处理器,并行地将第一处理器中的第一子模型的模型参数传输给第二处理器,将第三处理器中的第二子模型的模型参数传输给第四处理器;
或者,
如果当前训练方案为基于数据并行与模型并行混合的多处理器方案,最佳训练方案为单处理器方案,则将第三处理器或第四处理器中的第二子模型的模型参数传输给第一处理器,将第一处理器中的第一子模型的模型参数与第二子模型的模型参数进行合并;
或者
如果当前训练方案为基于数据并行与模型并行混合的多处理器方案,最佳训练方案为基于数据并行的多处理器方案,则并行地将第一处理器中的第一子模型的模型参数传输给第三处理器,将第二处理器中的第一子模型的模型参数传输给第四处理器,与此同时,并行地将第三处理器中的第二子模型的模型参数传输给第一处理器,将第四处理器中的第二子模型的模型参数传输给第二处理器,将各处理器中的第一子模型的模型参与第二子模型的模型参数进行合并;
其中,第一处理器为单处理器方案中的处理器,在基于数据并行与模型并行混合的多处理器方案中,第一处理器和第三处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型,第二处理器和第四处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型。
根据本发明,在本发明实施方式中,在模型训练时,对于不同大小的训练数据,不再固定地采用同一种训练方案进行训练,而在选择适用于该训练数据的最佳训练方案进行训练,即,采用训练速度最快的训练方案。这样可以避免由于固定地采用同一种训练方案对所有大小的训练数据进行训练而导致的对其中一些训练数据的训练速度变慢的问题。
应当注意,尽管在上文详细描述中提及了深度神经网络模型的训练设备的若干单元或子单元,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (22)
1.一种深度神经网络模型的训练方法,包括:
在模型训练中,当训练数据的大小发生改变时,针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时;
从预设的至少两个候选训练方案中选取训练耗时最小的训练方案作为所述改变后的训练数据的最佳训练方案;
将所述改变后的训练数据在所述最佳训练方案中进行模型训练。
2.根据权利要求1所述的方法,其中,所述当训练数据的大小发生改变时,针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时,包括:
统计所述改变后的训练数据在所述候选训练方案中的正向处理耗时和反向处理耗时;
统计在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量在所述候选训练方案中的同步耗时,以及统计一个完整的深度神经网络模型的模型参数在所述候选训练方案中的更新耗时;
计算所述正向处理耗时、反向处理耗时、同步耗时和更新耗时的总和值,所述总和值即为所述改变后的训练数据在所述候选训练方案中的训练耗时。
3.根据权利要求2所述的方法,其中,所述候选训练方案为基于数据并行的多处理器方案;
所述统计在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量在所述候选训练方案中的同步耗时,包括:
按照Ttrans=M/S计算在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量的传输时间;
按照计算所述模型参数修正量在所述候选训练方案中的同步耗时;
其中,M为所述模型参数修正量的大小,S为所述模型参数修正量在两个处理器之间的传输速率,Ttrans为所述模型参数修正量的传输时间,Tsync为所述模型参数修正量在所述候选训练方案中的同步耗时,N为所述候选训练方案中处理器的个数,N为2的n次方,n为零或正整数。
4.根据权利要求2所述的方法,其中,所述候选训练方案为基于数据并行与模型并行混合的多处理器方案;
所述统计在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量在所述候选训练方案中的同步耗时,包括:
按照Ttrans=M/S计算在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量的传输时间;
按照计算所述模型参数修正量在所述候选训练方案中的同步耗时;
其中,M为所述模型参数修正量的大小,S为所述模型参数修正量在两个处理器之间的传输速率,Ttrans为所述模型参数修正量的传输时间,Tsync为所述模型参数修正量在所述候选训练方案中的同步耗时,N为所述候选训练方案中处理器的个数,k为将处理器划分成不同组进行并行训练的组数,k<N,且k与N都为2的n次方,n为零或正整数。
5.根据权利要求2所述的方法,其中,所述训练方案为基于数据并行与模型并行混合的多处理器方案;
所述统计一个完整的深度神经网络模型的模型参数在所述候选训练方案中的更新耗时,包括:
确定一个完整的深度神经网络模型中的模型参数在一个处理器中的更新耗时;
按照Tupdate-N/k=Tupdate-1/(N/k)计算所述模型参数在所述候选训练方案中的更新耗时;
其中,Tupdate-N/k为所述模型参数在所述候选训练方案中的更新耗时,Tupdat-e1为一个完整的深度神经网络模型的模型参数在一个处理器中的更新耗时,N为所述候选训练方案中处理器的个数,k为将处理器划分成不同组进行并行训练的组数,k<N,且k与N都为2的n次方,n为零或正整数。
6.根据权利要求1所述的方法,其中,用于计算训练耗时的处理器与用于模型训练的处理器为不同的处理器。
7.根据权利要求1或2所述的方法,其中,所述将所述改变后的训练数据在所述最佳训练方案中进行深度神经网络模型训练,包括:
将当前训练方案中的模型参数同步给所述最佳训练方案;
将所述改变后的训练数据在同步后的所述最佳训练方案中进行模型训练。
8.根据权利要求1所述的方法,还包括:
保存所述改变后的训练数据的最佳训练方案。
9.根据权利要求8所述的方法,还包括:
在针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时之前,从保存的训练方案中查找所述改变后的训练数据的最佳训练方案,如果没有查找到所述改变后的训练数据的最佳训练方案,则进入到针对改变后的训练数据,分别计算预设的至少两个候选训练方案对所述改变后的训练数据的训练耗时的步骤。
10.根据权利要求9所述的方法,其中,还包括:
如果查找到所述改变后的训练数据的最佳训练方案,直接调取所述改变后的训练数据的最佳训练方案,以便进行模型训练。
11.根据权利要求7所述的方法,其中,所述将当前训练方案中的模型参数同步给所述最佳训练方案为:
如果当前训练方案为单处理器方案,最佳训练方案为基于数据并行的多处理器方案,则将第一处理器中的模型参数传输给第二处理器,并行地将所述第一处理器中的模型参数传输给第三处理器,将所述第二处理器中的模型参数传输给第四处理器;
或者,
如果当前训练方案为单处理器方案,最佳训练方案为基于数据并行与模型并行混合的多处理器方案,则将第一处理器中的第二子模型的模型参数传输给第三处理器,并行地将第一处理器中的第一子模型的模型参数传输给第二处理器,将第三处理器中的第二子模型的模型参数传输给第四处理器;
或者,
如果当前训练方案为基于数据并行与模型并行混合的多处理器方案,最佳训练方案为单处理器方案,则将第三处理器或第四处理器中的第二子模型的模型参数传输给第一处理器,将第一处理器中的第一子模型的模型参数与第二子模型的模型参数进行合并;
或者
如果当前训练方案为基于数据并行与模型并行混合的多处理器方案,最佳训练方案为基于数据并行的多处理器方案,则并行地将第一处理器中的第一子模型的模型参数传输给第三处理器,将第二处理器中的第一子模型的模型参数传输给第四处理器,与此同时,并行地将第三处理器中的第二子模型的模型参数传输给第一处理器,将第四处理器中的第二子模型的模型参数传输给第二处理器,将各处理器中的第一子模型的模型参与第二子模型的模型参数进行合并;
其中,第一处理器为单处理器方案中的处理器,在基于数据并行与模型并行混合的多处理器方案中,第一处理器和第三处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型,第二处理器和第四处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型。
12.一种深度神经网络模型的训练设备,包括:
计算单元,用于在模型训练中,当训练数据的大小发生改变时,针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时;
选取单元,用于从预设的至少两个候选训练方案中选取训练耗时最小的训练方案作为所述改变后的训练数据的最佳训练方案;
模型训练单元,用于将所述改变后的训练数据在所述最佳训练方案中进行深度神经网络模型训练。
13.根据权利要求12所述的设备,其中,计算单元包括:
第一统计子单元,用于统计所述改变后的训练数据在所述候选训练方案中的正向处理耗时和反向处理耗时;
第二统计子单元,用于统计在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量在所述候选训练方案中的同步耗时,以及统计一个完整的深度神经网络模型的模型参数在所述候选训练方案中的更新耗时;
计算子单元,用于计算所述正向处理耗时、反向处理耗时、同步耗时和更新耗时的总和值,所述总和值即为所述改变后的训练数据在所述候选训练方案中的训练耗时。
14.根据权利要求13所述的设备,其中,如果所述候选训练方案为基于数据并行的多处理器方案;第二统计子单元包括:
第一计算子单元,用于按照Ttrans=M/S计算在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量的传输时间;
第二计算子单元,用于按照计算所述模型参数修正量在所述候选训练方案中的同步耗时;
其中,M为所述模型参数修正量的大小,S为所述模型参数修正量在两个处理器之间的传输速率,Ttrans为所述模型参数修正量的传输时间,Tsync为所述模型参数修正量在所述候选训练方案中的同步耗时,N为所述候选训练方案中处理器的个数,其中N为2的n次方,n为零或正整数。
15.根据权利要求13所述的设备,其中,如果所述候选训练方案为基于数据并行与模型并行混合的多处理器方案;第二统计子单元包括:
第一计算子单元,用于按照Ttrans=M/S计算在一个完整的深度神经网络模型中先后进行正向和反向处理后所产生的模型参数修正量的传输时间;
第三计算子单元,用于按照计算所述模型参数修正量在所述候选训练方案中的同步耗时;
其中,M为所述模型参数修正量的大小,S为所述模型参数修正量在两个处理器之间的传输速率,Ttrans为所述模型参数修正量的传输时间,Tsync为所述模型参数修正量在所述候选训练方案中的同步耗时,N为所述候选训练方案中处理器的个数,k为将处理器划分成不同组进行并行训练的组数,k<N,且k与N都为2的n次方,n为零或正整数。
16.根据权利要求13所述的设备,其中,如果所述候选训练方案为基于数据并行与模型并行混合的多处理器方案;第二统计子单元还包括:
确定子单元,用于确定一个完整的深度神经网络模型中的模型参数在一个处理器中的更新耗时;
第四计算子单元,用于按照Tupdate-N/k=Tupdate-1/(N/k)计算所述模型参数在所述候选训练方案中的更新耗时;
其中,Tupdate-N/k为所述模型参数在所述候选训练方案中的更新耗时,Tupdate-1为一个完整的深度神经网络模型的模型参数在一个处理器中的更新耗时,N为所述候选训练方案中处理器的个数,k为将处理器划分成不同组进行并行训练的组数,k<N,且k与N都为2的n次方,n为零或正整数。
17.根据权利要求12所述的设备,其中,用于计算训练耗时的处理器与用于模型训练的处理器为不同的处理器。
18.根据权利要求12或13所述的设备,其中,模型训练单元包括:
同步子单元,用于将当前训练方案中的模型参数同步给所述最佳训练方案;
训练子单元,用于将所述改变后的训练数据在同步后的所述最佳训练方案中进行模型训练。
19.根据权利要求12所述的设备,其中,还包括保存单元,用于保存所述改变后的训练数据的最佳训练方案。
20.根据权利要求19所述的设备,其中,该设备还包括:
查找单元,用于在计算单元针对改变后的训练数据,分别计算所述改变后的训练数据在预设的至少两个候选训练方案中的训练耗时之前从保存的训练方案中查找所述改变后的训练数据的最佳训练方案;
第二触发单元,用于如果没有查找到所述改变后的训练数据的最佳训练方案,则触发计算单元工作。
21.根据权利要求20所述的设备,其中,该设备还包括:
调取单元,用于如果查找到所述改变后的训练数据的最佳训练方案,直接调取所述改变后的训练数据的最佳训练方案;
第二触发单元,用于触发模型训练单元工作。
22.根据权利要求18所述的设备,其中,同步子单元具体用于:
如果当前训练方案为单处理器方案,最佳训练方案为基于数据并行的多处理器方案,则将第一处理器中的模型参数传输给第二处理器,并行地将所述第一处理器中的模型参数传输给第三处理器,将所述第二处理器中的模型参数传输给第四处理器;
或者,
如果当前训练方案为单处理器方案,最佳训练方案为基于数据并行与模型并行混合的多处理器方案,则将第一处理器中的第二子模型的模型参数传输给第三处理器,并行地将第一处理器中的第一子模型的模型参数传输给第二处理器,将第三处理器中的第二子模型的模型参数传输给第四处理器;
或者,
如果当前训练方案为基于数据并行与模型并行混合的多处理器方案,最佳训练方案为单处理器方案,则将第三处理器或第四处理器中的第二子模型的模型参数传输给第一处理器,将第一处理器中的第一子模型的模型参数与第二子模型的模型参数进行合并;
或者
如果当前训练方案为基于数据并行与模型并行混合的多处理器方案,最佳训练方案为基于数据并行的多处理器方案,则并行地将第一处理器中的第一子模型的模型参数传输给第三处理器,将第二处理器中的第一子模型的模型参数传输给第四处理器,与此同时,并行地将第三处理器中的第二子模型的模型参数传输给第一处理器,将第四处理器中的第二子模型的模型参数传输给第二处理器,将各处理器中的第一子模型的模型参与第二子模型的模型参数进行合并;
其中,第一处理器为单处理器方案中的处理器,在基于数据并行与模型并行混合的多处理器方案中,第一处理器和第三处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型,第二处理器和第四处理器依次保存一个完整的深度神经网络模型的第一子模型和第二子模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510401619.8A CN104933463B (zh) | 2015-07-07 | 2015-07-07 | 深度神经网络模型的训练方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510401619.8A CN104933463B (zh) | 2015-07-07 | 2015-07-07 | 深度神经网络模型的训练方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104933463A CN104933463A (zh) | 2015-09-23 |
CN104933463B true CN104933463B (zh) | 2018-01-23 |
Family
ID=54120623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510401619.8A Active CN104933463B (zh) | 2015-07-07 | 2015-07-07 | 深度神经网络模型的训练方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104933463B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107292385A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种类Alexnet网络的模型训练方法和装置 |
CN108073986B (zh) * | 2016-11-16 | 2020-05-12 | 北京搜狗科技发展有限公司 | 一种神经网络模型训练方法、装置及电子设备 |
CN108122027B (zh) * | 2016-11-29 | 2021-01-12 | 华为技术有限公司 | 一种神经网络模型的训练方法、装置及芯片 |
CN107742151A (zh) * | 2017-08-30 | 2018-02-27 | 电子科技大学 | 一种中医脉象的神经网络模型训练方法 |
CN109426701B (zh) * | 2017-08-30 | 2022-04-05 | 西门子(中国)有限公司 | 数据模型的运行方法、运行***和存储介质 |
CN109993299B (zh) * | 2017-12-29 | 2024-02-27 | 中兴通讯股份有限公司 | 数据训练方法及装置、存储介质、电子装置 |
CN109685202B (zh) * | 2018-12-17 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、存储介质和电子装置 |
CN111723916A (zh) * | 2019-03-21 | 2020-09-29 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置及相关产品 |
CN111723919A (zh) * | 2019-03-21 | 2020-09-29 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置及相关产品 |
CN113705766A (zh) * | 2020-05-22 | 2021-11-26 | 成都鼎桥通信技术有限公司 | 一种神经网络模型的实现方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154168A (zh) * | 2006-09-29 | 2008-04-02 | 国际商业机器公司 | 在处理环境中调度作业的方法和*** |
WO2011146366A1 (en) * | 2010-05-18 | 2011-11-24 | Shazam Entertainment Ltd. | Methods and systems for performing synchronization of audio with corresponding textual transcriptions and determining confidence values of the synchronization |
CN102289712A (zh) * | 2011-08-10 | 2011-12-21 | 天津商业大学 | 基于鱼群蚁群算法的时间最短应急物流路径的优化方法 |
CN102682345A (zh) * | 2012-01-11 | 2012-09-19 | 河南科技大学 | 基于双最优学习率快速学习神经网络的交通流预测方法 |
CN103996069A (zh) * | 2013-02-20 | 2014-08-20 | 百度在线网络技术(北京)有限公司 | 一种基于多gpu的bpnn训练方法和装置 |
CN104408518A (zh) * | 2014-11-12 | 2015-03-11 | 山东地纬数码科技有限公司 | 基于粒子群优化算法的神经网络学习优化方法 |
-
2015
- 2015-07-07 CN CN201510401619.8A patent/CN104933463B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154168A (zh) * | 2006-09-29 | 2008-04-02 | 国际商业机器公司 | 在处理环境中调度作业的方法和*** |
WO2011146366A1 (en) * | 2010-05-18 | 2011-11-24 | Shazam Entertainment Ltd. | Methods and systems for performing synchronization of audio with corresponding textual transcriptions and determining confidence values of the synchronization |
CN102289712A (zh) * | 2011-08-10 | 2011-12-21 | 天津商业大学 | 基于鱼群蚁群算法的时间最短应急物流路径的优化方法 |
CN102682345A (zh) * | 2012-01-11 | 2012-09-19 | 河南科技大学 | 基于双最优学习率快速学习神经网络的交通流预测方法 |
CN103996069A (zh) * | 2013-02-20 | 2014-08-20 | 百度在线网络技术(北京)有限公司 | 一种基于多gpu的bpnn训练方法和装置 |
CN104408518A (zh) * | 2014-11-12 | 2015-03-11 | 山东地纬数码科技有限公司 | 基于粒子群优化算法的神经网络学习优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104933463A (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104933463B (zh) | 深度神经网络模型的训练方法和设备 | |
US11948352B2 (en) | Speculative training using partial gradients update | |
US11604958B2 (en) | Method and apparatus for processing computation of zero value in processing of layers in neural network | |
Huo et al. | Asynchronous stochastic gradient descent with variance reduction for non-convex optimization | |
EP4128056A1 (en) | Partitioning for an execution pipeline | |
CN114356578B (zh) | 自然语言处理模型的并行计算方法、装置、设备及介质 | |
US20240232630A1 (en) | Neural network training in a distributed system | |
CN114911596B (zh) | 针对模型训练的调度方法、装置、电子设备和存储介质 | |
WO2017185248A1 (zh) | 用于执行人工神经网络自学习运算的装置和方法 | |
US20190130274A1 (en) | Apparatus and methods for backward propagation in neural networks supporting discrete data | |
Zhang et al. | MPMoE: Memory Efficient MoE for Pre-trained Models with Adaptive Pipeline Parallelism | |
CN110008436B (zh) | 基于数据流架构的快速傅里叶变换方法、***和存储介质 | |
JP2020003860A (ja) | 学習システム、処理装置、処理方法、およびプログラム | |
CN116092587A (zh) | 一种基于生产者-消费者模型的生物序列分析***及方法 | |
Kouzinopoulos et al. | Performance study of parallel hybrid multiple pattern matching algorithms for biological sequences | |
US11297127B2 (en) | Information processing system and control method of information processing system | |
CN113298241A (zh) | 一种深度可分离卷积神经网络加速方法和加速器 | |
Niknami et al. | SmartPipe: Intelligently Freezing Layers in Pipeline Parallelism for Distributed DNN Training | |
JP2020190894A (ja) | 演算処理装置、プログラム、及び演算処理装置の制御方法 | |
Wang et al. | Accelerating the Smith-Waterman algorithm by GPU for high-throughput sequence alignment | |
CN118093203B (zh) | 数据搬运方法、分布式训练***、电子设备和存储介质 | |
Li et al. | A Memory-Efficient Hybrid Parallel Framework for Deep Neural Network Training | |
US11995554B2 (en) | Apparatus and methods for backward propagation in neural networks supporting discrete data | |
US20240211211A1 (en) | Mac apparatus using floating point unit and control method thereof | |
EP4374262A2 (en) | Multi-lane cryptographic engines with systolic architecture and operations thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190626 Address after: 311215 Room 102, 6 Blocks, C District, Qianjiang Century Park, Xiaoshan District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou Yixian Advanced Technology Co., Ltd. Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: Hangzhou Langhe Technology Limited |
|
TR01 | Transfer of patent right |