CN114356578B - 自然语言处理模型的并行计算方法、装置、设备及介质 - Google Patents
自然语言处理模型的并行计算方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114356578B CN114356578B CN202210026412.7A CN202210026412A CN114356578B CN 114356578 B CN114356578 B CN 114356578B CN 202210026412 A CN202210026412 A CN 202210026412A CN 114356578 B CN114356578 B CN 114356578B
- Authority
- CN
- China
- Prior art keywords
- computing
- calculation
- natural language
- computing node
- computing devices
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 145
- 238000003058 natural language processing Methods 0.000 title claims abstract description 78
- 238000012549 training Methods 0.000 claims abstract description 219
- 238000000034 method Methods 0.000 claims abstract description 115
- 230000006854 communication Effects 0.000 claims abstract description 26
- 238000004891 communication Methods 0.000 claims abstract description 25
- 230000001360 synchronised effect Effects 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 230000015556 catabolic process Effects 0.000 abstract description 2
- 238000006731 degradation reaction Methods 0.000 abstract description 2
- 238000003062 neural network model Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种自然语言处理模型的并行计算方法、装置、设备及介质;在本方案中,不同计算节点组内的多个计算设备通过流水线并行方式进行训练,不同计算节点组间使用数据并行方式进行梯度共享,该方式可将流水线并行控制在一定的结点数量中,避免大规模计算结点训练中,流水线过度划分带来的性能下降的问题,可有效适用于大规模网络模型在大规模计算结点上的并行训练。并且,本方案将计算节点组间同步通信隐藏在流水线并行计算过程中,使得在迭代计算结束后,各计算结点组可尽快进入下一次迭代计算,通过该方式,可在确保自然语言处理模型的处理效果的基础上,减少自然语言处理模型训练的计算时间,提高分布式训练的效率。
Description
技术领域
本发明涉及自然语言处理技术领域,更具体地说,涉及一种自然语言处理模型的并行计算方法、装置、设备及介质。
背景技术
自然语言处理模型为自然语言处理领域的深度神经网络模型,其主要用于实现语言翻译、问题回答等功能。随着模型参数量的不断增大,使得模型的训练成为一项非常耗时的工作。神经网络的训练过程,需要将训练数据按照批次输入到神经网络中计算,迭代地更新神经网络的参数,直到神经网络的输出更加准确的达到预期的效果,如:翻译的语言更加准确、回答问题更加合理。
但是,对于大型深度神经网络模型,由于参数量和数据量的增大,导致计算量巨大。单机硬件设备的计算能力已无法满足模型的运算需求,对于大规模深度神经网络模型,单机的训练周期甚至达到数月数年,过长周期带来诸多不便。对于大规模神经网络模型,需要依赖分布式手段来进行训练,如:利用多个显卡设备,或多个计算机设备共同训练一个模型,多个设备可以使训练的过程并行进行,缩短训练周期。目前已经出现一些较为成熟的分布式训练技术,但是对于大型模型、大规模节点的分布式训练加速效果一般,并且适用性较低,需要一定的硬件门槛。
因此,如何提高自然语言处理模型的训练效率,确保自然语言处理模型的处理效果,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种自然语言处理模型的并行计算方法、装置、设备及介质,以在确保自然语言处理模型的处理效果的基础上,提高自然语言处理模型的训练效率。
为实现上述目的,本发明提供一种自然语言处理模型的并行计算方法,包括:
将自然语言处理模型中的多个网络层划分为M份网络层,并将所述M份网络层分配至每个计算结点组的M个计算设备中;
确定每个计算结点组的M份训练数据,并将与每个计算结点组的M份训练数据依次输入到对应计算结点组的M个计算设备,通过M个计算设备对M份训练数据进行流水线并行方式进行前向计算及后向计算,并在所述自然语言处理模型训练完成后,通过训练后的自然语言处理模型执行对应的数据处理任务;其中,训练数据为自然语言句子数据;
其中,在每个计算结点组的当前迭代训练过程中,先完成前向计算的一部分计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,并继续进行后向计算;后完成前向计算的另一部分计算设备,在完成前向计算及后向计算后,再将当前迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信。
其中,将自然语言处理模型中的多个网络层划分为M份网络层,包括:
通过预定训练数据对所述自然语言处理模型进行预训练,确定所述自然语言处理模型中每个网络层的计算时间;
根据每个网络层的计算时间,将所述自然语言处理模型中的多个网络层划分为M份网络层。
其中,所述先完成前向计算的一部分计算设备为:先完成当前迭代训练过程的前向计算的M/2个计算设备;所述后完成前向计算的另一部分计算设备为:后完成当前迭代训练过程的前向计算的M/2个计算设备。
其中,所述确定每个计算结点组的M份训练数据,包括:
若计算结点组的数量为D个,则获取当前迭代训练过程的总训练数据后,将总训练数据平均分为D份训练数据分配给每个计算结点组;
将每个计算节点组对应的一份训练数据平均分为M份,得到每个计算结点组的M份训练数据。
其中,所述在每个计算结点组的当前迭代训练过程中,先完成前向计算的一部分计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,包括:
判断当前迭代训练过程是否为第一次迭代训练过程;
若是,则先完成前向计算的M/2个计算设备直接进行后向计算;
若否,则每个计算结点组中先完成前向计算的M/2个计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,以便不同计算节点组中对应的计算设备间进行梯度共享。
其中,若先完成前向计算的一部分计算设备,或者后完成前向计算的另一部分计算设备,为M个计算设备中的第i个计算设备,其中,0≤i≤M,则将第i个计算设备在迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信的过程,具体包括:
将第i个计算设备对应的网络层在迭代训练过程得到的梯度信息,发送至其他计算结点组中第i个计算设备,以便每个计算结点组中的第i个计算设备根据所有计算结点组中第i个计算设备的梯度信息执行梯度共享操作。
为实现上述目的,本发明进一步提供一种自然语言处理模型的并行计算装置,包括:
划分模块,用于将自然语言处理模型中的多个网络层划分为M份网络层,并将所述M份网络层分配至每个计算结点组的M个计算设备中;
训练模块,用于确定每个计算结点组的M份训练数据,并将与每个计算结点组的M份训练数据依次输入到对应计算结点组的M个计算设备,通过M个计算设备对M份训练数据进行流水线并行方式进行前向计算及后向计算;其中,在每个计算结点组的当前迭代训练过程中,先完成前向计算的一部分计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,并继续进行后向计算;后完成前向计算的另一部分计算设备,在完成前向计算及后向计算后,再将当前迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,训练数据为自然语言句子数据;
处理模块,用于在所述自然语言处理模型训练完成后,通过训练后的自然语言处理模型执行对应的数据处理任务。
其中,所述划分模块包括:
预训练单元,用于通过预定训练数据对所述自然语言处理模型进行预训练,确定所述自然语言处理模型中每个网络层的计算时间;
划分单元,用于根据每个网络层的计算时间,将所述自然语言处理模型中的多个网络层划分为M份网络层。
为实现上述目的,本发明进一步提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述自然语言处理模型的并行计算方法的步骤。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述自然语言处理模型的并行计算方法的步骤。
通过以上方案可知,本发明实施例提供了一种自然语言处理模型的并行计算方法、装置、设备及介质;在本方案中,不同计算节点组内的多个计算设备通过流水线并行方式进行训练,不同计算节点组间使用数据并行方式进行梯度共享,该方式可将流水线并行控制在一定的结点数量中,避免大规模计算结点训练中,流水线过度划分带来的性能下降的问题,可有效适用于大规模网络模型在大规模计算结点上的并行训练。并且,本方案将计算节点组间同步通信隐藏在流水线并行计算过程中,使得在迭代计算结束后,各计算结点组可尽快进入下一次迭代计算,通过该方式,可在确保自然语言处理模型的处理效果的基础上,减少自然语言处理模型训练的计算时间,提高分布式训练的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种自然语言处理模型的并行计算方法流程图;
图2为本发明实施例公开的一种计算设备的训练拓扑图;
图3为本发明实施例公开的一种自然语言处理模型的并行计算装置结构示意图;
图4为本发明实施例公开的一种电子设备结构示意图。
具体实施方式
需要说明的是,目前在自然语言处理领域的深度神经网络模型中,常见的分布式训练的加速方法包括:数据并行、模型并行、流水线并行三种方法:
数据并行是指:每个设备都存放模型参数的一份复制,将训练数据分成若干份分别输入模型进行训练,定期将每个设备的训练结果进行同步进而达到协同训练的目的。该方法的缺陷是:同步时需要通信的数据量较大,同步的开销会拖慢训练速度,在大规模节点的分布式训练中更为明显。另外,设备的存储空间需要大于模型的大小,对硬件条件要求较高。
模型并行是针对大规模神经网络模型训练而出现的并行方法,当单个设备的存储空间无法容纳整个模型参数时,需要将模型的参数切分成多份存放在多个设备中,而模型的训练过程也将由多个设备合作完成。该方法的缺陷是:由于模型的层与层之间存在依赖关系,后一层的计算需要依赖前一层的输出结果,所以在任何时刻仅有一个设备在运算,计算资源利用率低。
流水线并行同样切分了模型参数并存放在多个设备上,同时又将训练数据划分成多份一次输入模型进行训练,进而可以达到流水线的效果,较好提高了并行度。相比数据并行,不需要定期同步,相比模型并行又较大提高了计算资源的利用率。该方法的缺陷:扩展性不好,即如果希望在大规模节点(数十数百个设备)上进行训练,如何平衡的划分模型将是一大难点,而即便可以将模型布局在更多的设备中,流水线并行的运算效率会因流水级数的增大明显降低,扩展性不强。
可见,对于超大规模模型,单独利用数据并行、模型并行和流水线并行都不能获得较好的并行训练效率。因此,在本方案中,通过结合数据并行和流水线并行的混合并行训练方法对自然语言处理模型进行训练,解决在大规模计算结点上,流水线并行无法有效进行模型划分的问题,支持大规模模型在大规模计算结点上的高效并行训练;并且,由于数据并行训练需要在每次迭代结束后进行模型的全局同步,导致大量的通信开销,使得扩展到更多节点上时计算效率会明显降低。因此本方案通过隐藏通信开销,从而在确保自然语言处理模型的处理效果的基础上,提高自然语言处理模型的训练效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例提供的一种自然语言处理模型的并行计算方法流程图,该方法包括:
S101、将自然语言处理模型中的多个网络层划分为M份网络层,并将所述M份网络层分配至每个计算结点组的M个计算设备中;
需要说明的是,本方案需要对自然语言处理模型及计算设备进行划分。具体来说,本申请首先需要获得待训练的自然语言处理模型、训练数据、计算结点配置(计算设备总数量N、网络带宽等),其中,本方案中的训练数据具体为自然语言句子。本申请在划分时,首先从训练数据中获取若干批量的训练数据作为预定训练数据,通过该预定训练数据先对自然语言处理模型进行预训练,确定自然语言处理模型中每个网络层的计算时间;然后根据每个网络层的计算时间,将自然语言处理模型中的多个网络层划分为M份网络层。其中,本申请划分M份网络层时,可根据每个网络层的计算时间划分,使得划分后的每份网络层的计算时间尽量一致。
并且,在本方案中,N个计算设备可根据M划分为多个计算结点组,计算结点组的数量D=N/M,本申请将自然语言处理模型划分为M份网络层后,将M份网络层分配至每个计算节点组的M个计算设备中,如:第1份网络层分配至每个计算节点组的第1个计算设备中,第2份网络层分配至每个计算节点组的第2个计算设备中,以此类推。一个计算结点组内的每个计算设备作为一级流水,在计算结点组内形成流水线并行,每个计算结点组训练一个自然语言处理模型副本,通过流水线并行方式训练,在D个计算结点组之间,将以数据并行的方式进行训练和通信。需要说明的是,在实际应用中,可将连接紧密、通信带宽较大的多个计算设备所在的一个或多个计算结点划分为一个计算结点组。参见图2,为本发明实施例提供的一种计算设备的训练拓扑图,通过图2可以看出,将N个计算设备划分为D个计算节点组,每个节点组包括M个计算设备;纵向计算设备将进行流水线并行训练,横向计算结点组之间将进行数据并行训练。
S102、确定每个计算结点组的M份训练数据,并将与每个计算结点组的M份训练数据依次输入到对应计算结点组的M个计算设备,通过M个计算设备对M份训练数据进行流水线并行方式进行前向计算及后向计算;其中,在每个计算结点组的当前迭代训练过程中,先完成前向计算的一部分计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,并继续进行后向计算;后完成前向计算的另一部分计算设备,在完成前向计算及后向计算后,再将当前迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信;其中,训练数据为自然语言句子数据;
S103、在自然语言处理模型训练完成后,通过训练后的自然语言处理模型执行对应的数据处理任务。
可以理解的是,通过上述方式完成自然语言处理模型划分和计算设备划分后,便进入训练计算步骤。训练计算步骤与传统训练过程一样,采用迭代训练的方式,直到神经网络模型达到目标精度,便可通过训练后的自然语言处理模型执行对应的数据处理任务,例如:通过训练后的自然语言处理模型执行语言翻译任务、回答问题任务等等。
需要说明的是,本方案在每次迭代训练过程中,使用整个训练数据集的一部分训练数据进行自然语言处理模型的前向计算、后向计算和同步通信,并且,本方案还可将同步通信时间隐藏在前向计算和后向计算的过程中,在此,对其中一次迭代训练过程进行具体说明:
1)若计算结点组的数量为D个,则获取当前迭代训练过程的总训练数据后,将总训练数据平均分为D份训练数据分配给每个计算结点组;将每个计算节点组对应的一份训练数据平均分为M份,得到每个计算结点组的M份训练数据。
具体来说,在本申请中,每次迭代训练过程的总训练数据可以为一个批量的训练数据,若计算结点组的数量为D个,则需要将该训练数据等分为D份,每个计算结点组使用一个小批量。同时,还需要将每个计算结点组的小批量训练数据再等分为M份迷你批量。如:一个批量的总训练数据包括128条句子,那么每个计算结点组使用一个小批量有128/D条句子,再等分为M分迷你批量有128/D/M条句子。
2)在每个计算结点组的当前迭代训练过程中,先完成前向计算的一部分计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,并继续进行后向计算;
具体来说,本方案在每个计算结点组内,使用M份迷你批量训练数据,依次输入到M个计算设备组成的流水线中,依次进行前向计算;按照流水线的执行方式,M个计算设备将先后完成前向计算。因此本方案按照前向计算完成的顺序,将每个计算结点组内的M个计算设备划分成两部分,第一部分计算设备是先完成前向计算的设备,第二部分计算设备为后完成前向计算的其他设备。在本方案中,这两部分可进行均匀等分,先完成前向计算的一部分计算设备为:先完成当前迭代训练过程的前向计算的M/2个计算设备;后完成前向计算的另一部分计算设备为:后完成当前迭代训练过程的前向计算的M/2个计算设备。若M为奇数不能取整,则可根据约定规则设定哪部分多一个计算设备,例如:M为5,则设置先完成前向计算的2个计算设备作为第一部分计算设备,后完成前向计算的3个计算设备作为第二部分计算设备。
对于先完成前向计算的第一部分计算设备,需要立即进行该设备的网络层的同步通信,将上一个迭代训练过程产生的梯度信息,在其他计算结点组的对应设备间进行同步,但是,对于第一次迭代训练过程,由于暂时未产生梯度信息,因此不需要这个步骤。因此本方案首先需要判断当前迭代训练过程是否为第一次迭代训练过程;若是,则先完成前向计算的M/2个计算设备直接进行后向计算;若否,则每个计算结点组中先完成前向计算的M/2个计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,以便不同计算节点组中对应的计算设备间进行梯度共享。先完成前向计算的第一部分计算设备在同步通信结束后,再执行后向计算。
3)后完成前向计算的另一部分计算设备,在完成前向计算及后向计算后,再将当前迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信;其中,训练数据为自然语言句子数据;
在本方案中,对于后完成前向计算的第二部分计算设备,在前向计算完成后,按照正常训练过程继续进行后向计算,然后在所有计算结点组的对应设备上进行梯度同步通信。
在本申请中,若先完成前向计算的一部分计算设备,或者后完成前向计算的另一部分计算设备,为M个计算设备中的第i个计算设备,其中,0≤i≤M,则本方案的同步通信过程为:将第i个计算设备对应的网络层在迭代训练过程得到的梯度信息,发送至其他计算结点组中第i个计算设备,以便每个计算结点组中的第i个计算设备根据所有计算结点组中第i个计算设备的梯度信息执行梯度共享操作。
具体来说,在本方案中,可根据每个计算结点组中M个计算设备计算顺序,设置每个计算设备的序号,在同步通信时,若第i个计算设备需要同步通信,则需要将第i个计算设备的梯度信息与其他计算结点组中的第i个计算设备进行通信,如:计算结点组有三个,每个计算结点组内有5个计算设备,如果计算结点组1中计算设备1和计算设备2先完成了前向计算,则计算结点组1的计算设备1与计算结点组2的计算设备1、计算结点组3的计算设备1之间同步上次迭代产生的梯度信息,同理,计算结点组1的计算设备2与计算结点组2的计算设备2、计算结点组3的计算设备2之间同步上次迭代产生的梯度信息。计算节点组1中的计算设备3~计算设备5是后完成前向计算的,则计算设备3~计算设备5完成反向计算后,计算结点组1的计算设备3与计算结点组2的计算设备3、计算结点组3的计算设备3同步本轮迭代产生的梯度信息,依次类推,直至每个计算设备均与其他计算结点组中对应的计算设备完成同步通信。
通过上述过程可以看出,在本方案中,任意计算设备会先后接收到其他计算节点组中的计算设备通过同步通信发送的梯度信息。同步通信的目的是在所有需要同步设备上共享梯度信息,一般情况下,计算设备需要接收到待同步的所有设备的梯度信息后,再进行梯度累加或平均。需要说明的是,具体的同步方法和计算方式有多种,在此并不具体限定。
需要说明的是,目前的流水线并行方法中,反向计算的开始需要在所有网络层的前向计算完成后才能开始,而整个网络的前向计算是在多个设备中先后执行的,在时间轴上,这就会产生部分设备的空闲;所有设备都完成前向计算后,最后完成前向计算的设备再开始进行反向计算,其他设备依照前向计算开始的相反顺序,依次开始反向计算。因此,前向计算和后向计算在时间轴上就形成了一个梯形,梯形内部存在很多空闲的时间,导致设备计算效率的降低。若自然语言处理模型的同步通信集中在反向计算之后,则会进一步造成计算设备的空闲等待,导致整个训练效率的降低。
而在本方案中,通过结合流水线并行和数据并行方法,将节点间耗时最大的通信开销使用流水线的计算部分进行覆盖,可以提高分布式训练的效率,降低大型神经网络模型训练的计算时间。并且在扩展到更多节点上时,几乎能够保持线性扩展。本方案有两个关键点:
第一,本方案提出了一种新的数据并行与流水线并行的融合方法,将一个神经网络模型划分为多个部分,并在一定数量的计算结点组内,通过多个计算结点进行流水线并行;同时,多个模型副本使用相同的模型划分方法和流水线并行方法,分布到多个计算结点组上,计算结点组之间使用数据并行的方法进行同步通信,该方式可将流水线并行控制在一定的结点数量中,避免大规模计算结点训练中,流水线过度划分带来的性能下降的问题,可有效适用于大规模神经网络模型在大规模计算结点上的并行训练。
第二,本方案提出了一种混合并行中通信隐藏的方法,将每个训练迭代中多个计算结点组之间的神经网络模型同步通信开销,隐藏到计算结点组内的流水线并行计算过程中,使得在迭代计算结束后,各计算结点组可尽快进入下一次迭代计算。该方法避免了神经网络模型同步开销成为整个训练过程的性能瓶颈,可以有效提高在上述混合并行方法的在大规模计算结点上的扩展效率。
下面对本发明实施例提供的并行计算装置、设备及介质进行介绍,下文描述的并行计算装置、设备及介质与上文描述的并行计算方法可以相互参照。
参见图3,本发明实施例提供的一种自然语言处理模型的并行计算装置结构示意图,包括:
划分模块11,用于将自然语言处理模型中的多个网络层划分为M份网络层,并将所述M份网络层分配至每个计算结点组的M个计算设备中;
训练模块12,用于确定每个计算结点组的M份训练数据,并将与每个计算结点组的M份训练数据依次输入到对应计算结点组的M个计算设备,通过M个计算设备对M份训练数据进行流水线并行方式进行前向计算及后向计算;其中,在每个计算结点组的当前迭代训练过程中,先完成前向计算的一部分计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,并继续进行后向计算;后完成前向计算的另一部分计算设备,在完成前向计算及后向计算后,再将当前迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,训练数据为自然语言句子数据;
处理模块13,用于在所述自然语言处理模型训练完成后,通过训练后的自然语言处理模型执行对应的数据处理任务。
其中,所述划分模块包括:
预训练单元,用于通过预定训练数据对所述自然语言处理模型进行预训练,确定所述自然语言处理模型中每个网络层的计算时间;
划分单元,用于根据每个网络层的计算时间,将所述自然语言处理模型中的多个网络层划分为M份网络层。
其中,所述先完成前向计算的一部分计算设备为:先完成当前迭代训练过程的前向计算的M/2个计算设备;所述后完成前向计算的另一部分计算设备为:后完成当前迭代训练过程的前向计算的M/2个计算设备。
其中,所述训练模块包括:
训练数据获取单元,用于在计算结点组的数量为D个时,获取当前迭代训练过程的总训练数据,将总训练数据平均分为D份训练数据分配给每个计算结点组;将每个计算节点组对应的一份训练数据平均分为M份,得到每个计算结点组的M份训练数据。
其中,所述训练模块包括:
判断单元,用于判断当前迭代训练过程是否为第一次迭代训练过程;
计算单元,用于在当前迭代训练过程为第一次迭代训练过程时,将先完成前向计算的M/2个计算设备直接进行后向计算;
通信单元,用于在当前迭代训练过程不为第一次迭代训练过程时,每个计算结点组中先完成前向计算的M/2个计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,以便不同计算节点组中对应的计算设备间进行梯度共享。
其中,所述训练模块具体用于:若先完成前向计算的一部分计算设备,或者后完成前向计算的另一部分计算设备,为M个计算设备中的第i个计算设备,其中,0≤i≤M,则将第i个计算设备对应的网络层在迭代训练过程得到的梯度信息,发送至其他计算结点组中第i个计算设备,以便每个计算结点组中的第i个计算设备根据所有计算结点组中第i个计算设备的梯度信息执行梯度共享操作。
参见图4,本发明实施例还提供了一种电子设备结构示意图,该电子设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述方法实施例所述的自然语言处理模型的并行计算方法的步骤。
在本实施例中,设备可以是终端设备或者服务器,如:PC(Personal Computer,个人电脑),也可以是平板电脑、便携计算机等设备。在本实施例中,该电子设备的数量可以为多个,具体数量按照实际需求确定。
该设备可以包括存储器21、处理器22和总线23。
其中,存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器21在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器21在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器21还可以既包括设备的内部存储单元也包括外部存储设备。存储器21不仅可以用于存储安装于设备的应用软件及各类数据,例如执行并行计算方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器22在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器21中存储的程序代码或处理数据,例如执行并行计算方法的程序代码等。
该总线23可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口24,网络接口24可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
可选地,该设备还可以包括用户接口25,用户接口25可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口25还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。
图4仅示出了具有组件21-25的设备,本领域技术人员可以理解的是,图4示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法实施例所述的自然语言处理模型的并行计算方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种自然语言处理模型的并行计算方法,其特征在于,包括:
将自然语言处理模型中的多个网络层划分为M份网络层,并将所述M份网络层分配至每个计算结点组的M个计算设备中;
确定每个计算结点组的M份训练数据,并将每个计算结点组的M份训练数据依次输入到对应计算结点组的M个计算设备,通过M个计算设备对M份训练数据采用流水线并行方式进行前向计算及后向计算,并在所述自然语言处理模型训练完成后,通过训练后的自然语言处理模型执行对应的数据处理任务;其中,训练数据为自然语言句子数据;
其中,在每个计算结点组的当前迭代训练过程中,先完成前向计算的一部分计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,并继续进行后向计算;后完成前向计算的另一部分计算设备,在完成前向计算及后向计算后,再将当前迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信;
所述将自然语言处理模型中的多个网络层划分为M份网络层,包括:
通过预定训练数据对所述自然语言处理模型进行预训练,确定所述自然语言处理模型中每个网络层的计算时间;
根据每个网络层的计算时间,将所述自然语言处理模型中的多个网络层划分为M份网络层;
所述先完成前向计算的一部分计算设备为:先完成当前迭代训练过程的前向计算的M/2个计算设备;所述后完成前向计算的另一部分计算设备为:后完成当前迭代训练过程的前向计算的M/2个计算设备;若M为奇数,则根据约定规则将多出的一个计算设备划分至所述先完成前向计算的一部分计算设备中,或划分至所述后完成前向计算的另一部分计算设备中;
所述确定每个计算结点组的M份训练数据,包括:
若计算结点组的数量为D个,则获取当前迭代训练过程的总训练数据后,将总训练数据平均分为D份训练数据分配给每个计算结点组;
将每个计算节点组对应的一份训练数据平均分为M份,得到每个计算结点组的M份训练数据;
所述在每个计算结点组的当前迭代训练过程中,先完成前向计算的一部分计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,包括:
判断当前迭代训练过程是否为第一次迭代训练过程;
若是,则先完成前向计算的M/2个计算设备直接进行后向计算;
若否,则每个计算结点组中先完成前向计算的M/2个计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,以便不同计算节点组中对应的计算设备间进行梯度共享。
2.根据权利要求1所述的并行计算方法,其特征在于,若先完成前向计算的一部分计算设备,或者后完成前向计算的另一部分计算设备,为M个计算设备中的第i个计算设备,其中,0≤i≤M,则将第i个计算设备在迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信的过程,具体包括:
将第i个计算设备对应的网络层在迭代训练过程得到的梯度信息,发送至其他计算结点组中第i个计算设备,以便每个计算结点组中的第i个计算设备根据所有计算结点组中第i个计算设备的梯度信息执行梯度共享操作。
3.一种自然语言处理模型的并行计算装置,其特征在于,包括:
划分模块,用于将自然语言处理模型中的多个网络层划分为M份网络层,并将所述M份网络层分配至每个计算结点组的M个计算设备中;
训练模块,用于确定每个计算结点组的M份训练数据,并将每个计算结点组的M份训练数据依次输入到对应计算结点组的M个计算设备,通过M个计算设备对M份训练数据采用流水线并行方式进行前向计算及后向计算;其中,在每个计算结点组的当前迭代训练过程中,先完成前向计算的一部分计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,并继续进行后向计算;后完成前向计算的另一部分计算设备,在完成前向计算及后向计算后,再将当前迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,训练数据为自然语言句子数据;
处理模块,用于在所述自然语言处理模型训练完成后,通过训练后的自然语言处理模型执行对应的数据处理任务;
所述划分模块包括:
预训练单元,用于通过预定训练数据对所述自然语言处理模型进行预训练,确定所述自然语言处理模型中每个网络层的计算时间;
划分单元,用于根据每个网络层的计算时间,将所述自然语言处理模型中的多个网络层划分为M份网络层;
其中,所述先完成前向计算的一部分计算设备为:先完成当前迭代训练过程的前向计算的M/2个计算设备;所述后完成前向计算的另一部分计算设备为:后完成当前迭代训练过程的前向计算的M/2个计算设备;若M为奇数,则根据约定规则将多出的一个计算设备划分至所述先完成前向计算的一部分计算设备中,或划分至所述后完成前向计算的另一部分计算设备中;
所述训练模块包括:
训练数据获取单元,用于在计算结点组的数量为D个时,获取当前迭代训练过程的总训练数据,将总训练数据平均分为D份训练数据分配给每个计算结点组;将每个计算节点组对应的一份训练数据平均分为M份,得到每个计算结点组的M份训练数据;
其中,所述训练模块包括:
判断单元,用于判断当前迭代训练过程是否为第一次迭代训练过程;
计算单元,用于在当前迭代训练过程为第一次迭代训练过程时,将先完成前向计算的M/2个计算设备直接进行后向计算;
通信单元,用于在当前迭代训练过程不为第一次迭代训练过程时,每个计算结点组中先完成前向计算的M/2个计算设备,将上一次迭代训练过程得到的梯度信息与其他计算结点组中对应的计算设备进行同步通信,以便不同计算节点组中对应的计算设备间进行梯度共享。
4.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1或2所述的自然语言处理模型的并行计算方法的步骤。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1或2所述的自然语言处理模型的并行计算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210026412.7A CN114356578B (zh) | 2022-01-11 | 2022-01-11 | 自然语言处理模型的并行计算方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210026412.7A CN114356578B (zh) | 2022-01-11 | 2022-01-11 | 自然语言处理模型的并行计算方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114356578A CN114356578A (zh) | 2022-04-15 |
CN114356578B true CN114356578B (zh) | 2024-03-12 |
Family
ID=81109357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210026412.7A Active CN114356578B (zh) | 2022-01-11 | 2022-01-11 | 自然语言处理模型的并行计算方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356578B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116596091B (zh) * | 2022-11-08 | 2024-02-02 | 北京百度网讯科技有限公司 | 模型训练方法、装置、设备以及存储介质 |
CN115730681B (zh) * | 2022-11-11 | 2023-08-15 | 北京百度网讯科技有限公司 | 模型训练方法、装置、设备以及存储介质 |
CN116991483B (zh) * | 2023-09-25 | 2024-04-05 | 粤港澳大湾区数字经济研究院(福田) | 一种针对语言模型计算的流水线并行方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9460711B1 (en) * | 2013-04-15 | 2016-10-04 | Google Inc. | Multilingual, acoustic deep neural networks |
CN112214222A (zh) * | 2020-10-27 | 2021-01-12 | 华中科技大学 | COStream中用于实现前馈神经网络的sequential结构及其编译方法 |
CN112784968A (zh) * | 2021-01-29 | 2021-05-11 | 东南大学 | 一种加速分布式深度神经网络训练的混合流水线并行方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11232356B2 (en) * | 2019-08-09 | 2022-01-25 | Google Llc | Training giant neural networks using pipeline parallelism |
-
2022
- 2022-01-11 CN CN202210026412.7A patent/CN114356578B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9460711B1 (en) * | 2013-04-15 | 2016-10-04 | Google Inc. | Multilingual, acoustic deep neural networks |
CN112214222A (zh) * | 2020-10-27 | 2021-01-12 | 华中科技大学 | COStream中用于实现前馈神经网络的sequential结构及其编译方法 |
CN112784968A (zh) * | 2021-01-29 | 2021-05-11 | 东南大学 | 一种加速分布式深度神经网络训练的混合流水线并行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114356578A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114356578B (zh) | 自然语言处理模型的并行计算方法、装置、设备及介质 | |
CN113408746B (zh) | 一种基于区块链的分布式联邦学习方法、装置及终端设备 | |
US20200090073A1 (en) | Method and apparatus for generating machine learning model | |
US10984319B2 (en) | Neural architecture search | |
US11372688B2 (en) | Resource scheduling method, scheduling server, cloud computing system, and storage medium | |
JP2022515302A (ja) | 深層学習モデルをトレーニングするための方法及び装置、電子機器、コンピュータ可読記憶媒体並びにコンピュータプログラム | |
CN107229966B (zh) | 一种模型数据更新方法、装置及系统 | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN101887367A (zh) | 一种多级并行化编程方法 | |
CN112149808B (zh) | 拓展单机图神经网络训练至分布式训练方法、系统及介质 | |
CN110502310B (zh) | 一种虚拟机的时间同步方法及装置 | |
US20210357816A1 (en) | System with hybrid communication strategy for large-scale distributed deep learning | |
US20210304008A1 (en) | Speculative training using partial gradients update | |
CN114968559B (zh) | 基于lsf的多主机多gpu分布式布置深度学习模型的方法 | |
CN111708641A (zh) | 一种内存管理方法、装置、设备及计算机可读存储介质 | |
US20230351145A1 (en) | Pipelining and parallelizing graph execution method for neural network model computation and apparatus thereof | |
CN114911596B (zh) | 针对模型训练的调度方法、装置、电子设备和存储介质 | |
CN114970830A (zh) | 一种面向数据并行分布式深度学习训练加速的灵活通信方法 | |
CN111858440A (zh) | 一种分布式数据并行训练系统、方法、终端及存储介质 | |
CN112825154A (zh) | 深度学习中在线推理的优化方法、装置及计算机存储介质 | |
CN112463340A (zh) | 基于tensorflow的多任务弹性调度方法及系统 | |
CN113821313A (zh) | 一种任务调度方法、装置及电子设备 | |
CN108595455B (zh) | 一种空间数据坐标转换方法及装置 | |
CN111208980B (zh) | 一种数据分析处理方法和系统 | |
CN111722937B (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 |