CN115759232B - 深度学习框架的多任务并行处理方法、装置、设备和介质 - Google Patents

深度学习框架的多任务并行处理方法、装置、设备和介质 Download PDF

Info

Publication number
CN115759232B
CN115759232B CN202211496576.2A CN202211496576A CN115759232B CN 115759232 B CN115759232 B CN 115759232B CN 202211496576 A CN202211496576 A CN 202211496576A CN 115759232 B CN115759232 B CN 115759232B
Authority
CN
China
Prior art keywords
target
fusion
model parameter
gradient information
tensor
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
Application number
CN202211496576.2A
Other languages
English (en)
Other versions
CN115759232A (zh
Inventor
沈亮
吴志华
于佃海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202211496576.2A priority Critical patent/CN115759232B/zh
Publication of CN115759232A publication Critical patent/CN115759232A/zh
Application granted granted Critical
Publication of CN115759232B publication Critical patent/CN115759232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开提供了一种深度学习框架的多任务并行处理方法,涉及人工智能技术领域,尤其涉及分布式计算技术领域和深度学习技术领域。具体实现方案为:响应于获取到目标模型参数组的至少一个参数梯度信息,将目标模型参数组的至少一个参数梯度信息融合,得到第一融合张量;利用目标通信组将与多个任务分别对应的多个第一融合张量融合,得到第二融合张量,其中,目标通信组来自与多个设备相关的至少一个通信组,通信组用于指示多个设备之间进行通信;从第一目标设备接收到的第二融合张量中切分出目标张量,其中,目标张量包括多个设备中至少一个第二目标设备各自的第一融合张量。本公开还提供了一种深度学习框的多任务并行处理装置、设备和介质。

Description

深度学习框架的多任务并行处理方法、装置、设备和介质
技术领域
本公开涉及人工智能技术领域,尤其涉及分布式计算技术领域和深度学习技术领域。更具体地,本公开提供了一种深度学习框架的多任务并行处理方法、装置、电子设备和存储介质。
背景技术
随着人工智能技术的发展,深度学习框架的应用场景不断增加。基于深度学习框架,可以高效地将深度学习模型应用于相关场景中,降低了深度学习模型的使用门槛。
发明内容
本公开提供了一种深度学习框架的多任务并行处理方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种深度学习框架的多任务并行处理方法,该方法包括:响应于获取到目标模型参数组的至少一个参数梯度信息,将目标模型参数组的至少一个参数梯度信息融合,得到第一融合张量,其中,模型参数与参数梯度信息对应,目标模型参数组来自与任务对应的至少一个模型参数组,模型参数组包括任务的至少一个模型参数;利用目标通信组将与多个任务分别对应的多个第一融合张量融合,得到第二融合张量,其中,任务由部署有深度学习框架的设备执行,目标通信组来自与多个设备相关的至少一个通信组,通信组用于指示多个设备之间进行通信;以及从第一目标设备接收到的第二融合张量中切分出目标张量,其中,第一目标设备为多个设备中的一个设备,目标张量包括多个设备中至少一个第二目标设备各自的第一融合张量。
根据本公开的另一方面,提供了一种深度学习框架的多任务并行处理装置,该装置包括:第一融合模块,用于响应于获取到目标模型参数组的至少一个参数梯度信息,将目标模型参数组的至少一个参数梯度信息融合,得到第一融合张量,其中,模型参数与参数梯度信息对应,目标模型参数组来自与任务对应的至少一个模型参数组,模型参数组包括任务的至少一个模型参数;第二融合模块,用于利用目标通信组将与多个任务分别对应的多个第一融合张量融合,得到第二融合张量,其中,任务由部署有深度学习框架的设备执行,目标通信组来自与多个设备相关的至少一个通信组,通信组用于指示多个设备之间进行通信;以及切分模块,用于从第一目标设备接收到的第二融合张量中切分出目标张量,其中,第一目标设备为多个设备中的一个设备,目标张量包括多个设备中至少一个第二目标设备各自的第一融合张量。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行根据本公开提供的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行根据本公开提供的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据本公开提供的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开的一个实施例的深度学习框架的多任务并行处理方法的流程图;
图2A是根据本公开的一个实施例的多个设备的示意图;
图2B是根据本公开的一个实施例的多任务并行处理方法的原理图;
图2C是根据本公开的一个实施例的多任务并行处理方法的原理图;
图3是根据本公开的一个实施例的深度学习框架的多任务并行处理装置的框图;以及
图4是根据本公开的一个实施例的可以应用深度学习框架的多任务并行处理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在深度学习领域,数据并行是实现分布式模型训练的技术路径之一。此外,动态图是一种常用的编程范式。与静态图相比,动态图具有“所见即所得”的优点,即代码执行到某一行代码,模型就运行到该行代码,没有编译期。在实现数据并行的过程中,为了提升通信性能,可以将尺寸较小的张量融合为尺寸较大的张量,减少通信,进而充分使用通信带宽。
在数据并行情况下,训练任务被切分到多个设备上,每个设备可以维护相同的模型参数和相同的计算任务,也可以处理不同的数据(Batch Data)。由此,同一全局批次(Global Batch)下的数据和计算被切分到了不同的设备,从而减轻了单个设备的计算压力和存储压力。
数据并行的实现方式可以有多种,下文将描述基于梯度同步的数据并行。
模型训练可以包括前向计算、反向计算和参数更新。例如,在前向计算过程中,多个设备根据各自输入数据,分别进行前向计算,得到多个不同的输出数据。根据这些输出数据,多个设备可以分别得到各自的损失数据。又例如,在反向计算过程中,多个设备根据各自的损失数据分别进行反向计算。多个设备之间的损失数据不同。在反向计算过程中,多个设备可以分别计算出不同的梯度数据。在参数更新之前,可以对所有设备上的梯度数据进行同步,以便后续参数更新过程中每个设备可以使用相同的全局梯度来更新模型参数。梯度同步可以使用全规约操作(Allreduce)实现。在对多个梯度数据使用全规约操作后,每个设备上得到的全局梯度数据可以是相同的。又例如,在参数更新过程中,根据上述的全局梯度数据,多个设备各自完成参数更新。由此,在参数更新过程中,部署了该模型的多个设备的相关参数是相同的,更新过程中采用的全局梯度数据也是相同的。在参数更新之后,各设备的参数也可以是相同的。
为了实现更加高效的数据并行,可以进行通信融合(Fuse Allreduce)处理或通信计算重叠(Overlap)处理。
在一些实施例中,若模型有非常多的参数,基于数据并行进行训练的过程中,每一个模型处理步骤中可以有非常多次的全规约通信。通信时间可以包括通信延迟(Lantency)时间和数据传输时间。在单次通信中,通信延迟时间相对固定,而通信传输时间由通信的数据量和相关设备的带宽决定。将多次的全规约通信合并成一次全规约通信,可以减少大量的通信延迟时间。由此,可以减少通信频率,进而减少总的通信时间。例如,为了实现全规约融合,在通信之前,将多个梯度张量拼接为同一个内存地址的连续的拼接张量。在梯度同步时,对拼接张量做一次全规约操作。在参数更新时,将拼接张量切分,还原回之前的多个梯度张量,以便后续完成参数更新。
在另一些实施例中,大部分的深度学习框架不支持通信和计算重叠。例如,在基于Pytorch框架的动态图执行训练任务时,难以实现多流通信。此外,在基于Pytorch框架进行通信融合处理时,利用多个小型算子来实现通信融合,可以导致通信效率下降。
图1是根据本公开的一个实施例的深度学习框架的多任务并行处理方法的流程图。
如图1所示,该方法100可以包括操作S110至操作S130。
在操作S110,响应于获取到目标模型参数组的至少一个参数梯度信息,将目标模型参数组的至少一个参数梯度信息融合,得到第一融合张量。
在本公开实施例中,任务与深度学习模型相关。例如,深度学习模型的第一处理层可以通过以下公式实现相关操作:
y=w1*x+b1 (公式一)
权重w1和偏置b1可以作为模型参数。x可以作为变量。
又例如,深度学习模型的第二处理层可以通过以下公式实现相关操作:
z=w2*y+b2 (公式二)
权重w2和偏置b2可以作为模型参数。y可以作为变量。可以理解,第一处理层与第二处理层可以级联。第一处理层的输出y可以作为第二处理层的输入。
在本公开实施例中,模型参数与参数梯度信息对应。例如,深度学习模型的梯度信息可以包括模型参数的参数梯度信息和变量的变量梯度信息。又例如,权重w1的权重梯度gw1以及偏置b1的偏置梯度gb1可以分别作为参数梯度信息。变量x的变量梯度可以作为变量梯度信息。
在本公开实施例中,任务由部署有深度学习框架的设备执行。例如,设备可以包括各种计算单元。又例如,计算单元可以包括图形处理单元(Graphics Processing Unit,GPU)和中央处理单元(Central Processing Unit,CPU)中的至少一种。
在本公开实施例中,目标模型参数组来自与任务对应的至少一个模型参数组。模型参数组包括任务的至少一个模型参数。
又例如,至少一个模型参数组可以包括模型参数组Groupl和模型参数组Group2。模型参数组Groupl可以包括权重w1和偏置b1。模型参数组w2和b2。在获取到模型参数组Group2的两个参数梯度信息之后,可以将模型参数组Group2作为目标模型参数组。通过本公开实施例,基于上述的公式一和公式二,在确定模型参数(例如权重w1)的参数梯度信息时,可以使用变量(例如y)的变量梯度信息,可以不使用模型参数(例如权重w2和偏置b2)的参数梯度信息。即,模型参数组Group1中参数梯度信息的计算与模型参数组Group2中参数梯度信息的通信可以并行。由此,对于一个设备,可以实现梯度计算和通信的相互重叠(Overlap),有助于减少反向计算所需的总时间。
在本公开实施例中,可以将至少一个参数梯度信息拼接,得到第一融合张量。例如,可以将权重w1的权重梯度gw1和偏置b1的偏置梯度gb1拼接为第一融合张量T1。
在操作S120,利用目标通信组将与多个任务分别对应的多个第一融合张量融合,得到第二融合张量。
在本公开实施例中,多个任务分别由多个设备执行。
在本公开实施例中,通信组用于指示多个设备之间进行通信。例如,通信组的数量可以是预先设置。又例如,通信组的数量可以为1个或2个。
在本公开实施例中,目标通信组来自与多个设备相关的至少一个通信组。例如,如上述,通信组的数量可以为1个或2个。目标通信组可以为这些通信组中的任一个。
在本公开实施例中,对多个第一融合张量进行全规约操作,以将多个第一融合张量融合,得到第二融合张量。例如,全规约操作可以包括全规约融合(Allreduce_sum)操作。
在操作S130,从第一目标设备接收到的第二融合张量中切分出目标张量。
在本公开实施例中,第一目标设备可以为多个设备中的一个设备。例如,多个设备可以包括设备Node1和设备Node2。可以将设备Node1作为第一目标设备。
在本公开实施例中,目标张量可以包括多个设备中至少一个第二目标设备各自的第一融合张量。例如,可以从设备node1接收到的第二融合张量中切分出目标张量。该目标张量可以包括设备Node2的第一融合张量。
通过本公开实施例,对于一个设备,在目标模型参数组相关的参数梯度信息通信时,可以计算其他模型参数组的参数梯度信息,实现了通信和计算的重叠。此外,设置了至少一个通信组,可以实现至少一个通信流,有助于提高通信效率。
可以理解,上文对本公开的方法进行说明,下面将结合相关实施例对本公开的方法进行进一步说明。
在一些实施例中,任务可以包括模型训练任务。例如,模型训练任务可以包括前向计算任务、反向计算任务和参数更新任务。例如,任务可以包括多个周期的模型训练任务。
在一些实施例中,可以将深度学习模型部署于多个设备。这些设备部署有深度学习框架。每个设备的模型参数可以是相同的。将当前数据切分,得到多个子数据,作为多个设备各自的输入数据。由此,根据相应的输入数据,每个设备可以执行前向计算任务,得到前向计算的输出数据。根据标签和输出数据,可以得到每个设备的损失信息。
接下来,根据各自的损失信息,多个设备可以分别执行反向计算任务。下面将结合图2A对前向计算任务进行说明。
图2A是根据本公开的一个实施例的多个设备的示意图。
在一些实施例中,多个任务可以为M个任务。M个任务分别部署于M个设备。例如,M个设备各自部署有深度学习模型。以M=2为示例,如图2A所示,设备Node1 210可以部署有深度学习模型。设备Node2220也可以部署有深度学习模型。部署于设备Node1 210的深度学习模型可以包括第一处理层211和第二处理层212。第一处理层211可以按照上述的公式一执行相关操作。第二处理层212可以按照上述的公式二执行相关操作。又例如,在设备Node1210执行当前训练周期的前向计算任务时,根据上述的公式一和输入数据中的变量值x1,第一处理层211可以确定中间输出值y1。接下来,根据上述的公式二和中间输出值y1,第二处理层212可以确定输出值z1。根据输出值z1和输入数据的标签,设备Node1 210可以确定损失值Loss1,作为设备Node1 210的损失信息。
如图2A所示,部署于设备Node2220的深度学习模型可以包括第一处理层221和第二处理层222。又例如,在设备Node2220执行当前训练周期的前向计算任务时,根据上述的公式一和输入数据中的变量值x2,第一处理层221可以确定中间输出值y2。接下来,根据上述的公式二和中间输出值y2,第二处理层222可以确定输出值z2。根据输出值z2和输入数据的标签,设备Node2220可以确定损失值Loss2,作为设备Node2220的损失信息。可以理解,第一处理层221和第一处理层211可以具有相同的权重w1和偏置b1。第二处理层222和第二处理层212可以具有相同的权重w2和偏置b2。
在本公开实施例中,可以建立N个通信组。N为不小于1的整数。例如,N的取值可以为1或2。本实施例中,N可以为2。通过本公开实施例,基于N个通信组,可以实现N流通信,进一步提高通信效率。
在本公开实施例中,可以根据设备的模型参数,确定I个模型参数组。例如,I为不小于1的整数。又例如,以I=2为示例,设备Nodel 210的第1个模型参数组可以包括第一处理层211的模型参数(权重w1和偏置b1)。设备Node1 210的第2个模型参数组可以包括第二处理层212的模型参数(权重w2和偏置b2)。又例如,设备Node2220的第1个模型参数组可以包括第一处理层221的模型参数(权重w1和偏置b1)。设备Node2 220的第2个模型参数组可以包括第二处理层222的模型参数(权重w2和偏置b2)。
在一些实施例中,上述的方法100还可以包括:根据任务的当前损失信息,在当前训练周期确定任务的模型参数的参数梯度信息。下面将结合图2B进行详细说明。
图2B是根据本公开的一个实施例的多任务并行处理方法的原理图。
例如,在设备Node1 210执行当前训练周期的反向计算任务时,根据损失值Loss1,可以利用随机梯度下降算子SGD 213来确定权重w2的权重梯度gw21和偏置b2的偏置梯度gb21。可以理解,根据上述的公式二确定模型参数的参数梯度时,偏置梯度gb21和权重梯度gw21可以是先后确定的。
例如,在设备Node2 220执行当前训练周期的反向计算任务时,根据损失值Loss2,可以利用随机梯度下降算子SGD 223来确定权重w2的权重梯度gw22和偏置b2的偏置梯度gb22。可以理解,根据上述的公式二确定模型参数的参数梯度时,偏置梯度gb22和权重梯度gw22可以是先后确定的。
在一些实施例中,在上述的操作S110的一些实施方式中,将目标模型参数组的至少一个参数梯度信息融合可以包括:根据目标模型参数组和至少一个通信组,确定目标通信组。利用目标通信组将目标模型参数组的至少一个参数梯度信息融合。
在本公开实施例中,响应于获取到第i个模型参数组的全部参数梯度信息,将第i个模型参数组作为目标模型参数组。将目标模型参数组的至少一个参数梯度信息融合,得到第j个第一融合张量。在本公开实施例中,可以利用目标通信组将目标模型参数组的至少一个参数梯度信息融合。
例如,i为不小于1且不大于I的整数。又例如,j为不小于1且不大于I的整数。例如,在确定了权重w2的权重梯度gw21和偏置b2的偏置梯度gb21之后,可以确定获取到了设备Node1 210的第2个模型参数组的全部模型参数的参数梯度信息。又例如,在确定了权重w2的权重梯度gw22和偏置b2的偏置梯度gb22之后,可以确定获取到了设备Node2 220第2个模型参数组的全部模型参数的参数梯度信息。可以将第2个模型参数组作为两个设备各自的目标模型参数组。
接下来,可以根据第2个模型参数组和N个通信组,确定目标通信组。例如,可以随机选择一个空闲的通信组作为目标通信组。在一个示例中,可以将第1个通信组作为目标通信组。接下来,可以利用目标通信组将权重梯度gw21和偏置梯度gb21拼接为第一融合张量T21。可以利用目标通信组将权重梯度gw22和偏置梯度gb22拼接为第一融合张量T22。可以理解,在反向计算过程中,与第二处理层相关的参数梯度可以先产生。上述的i、j和I之间的关系可以为:i+j=I+1。第一融合张量T21可以作为设备Nodel 210的第1个第一融合张量。第一融合张量T22可以作为设备Node2 220的第1个第一融合张量。可以理解,在如图2B所示的示例中,i=2,j=1。
可以理解,在获取了2个第一融合张量之后,可以执行上述的操作S120。
在一些实施例中,在上述的操作S120的一些实施方式中,利用目标通信组将与多个任务分别对应的多个第一融合张量融合,得到第二融合张量可以包括:利用目标通信组将与M个任务分别对应的M个第一融合张量融合,得到第二融合张量。在本公开实施例中,可以利用目标通信组将与M个任务分别对应的M个第j个第一融合张量融合,得到第二融合张量。例如,可以利用目标通信组对第一融合张量T21和第一融合张量T22执行全规约融合操作,得到第二融合张量T2。可以理解,在执行全规约融合操作之后,设备Node1 210和设备Node2 220可以分别接收到第二融合张量T2。
接下来,在一些实施例中,可以从第一目标设备接收到的第二融合张量中切分出目标张量。例如,可以将设备Node1 210作为第一目标设备,将设备Node2 220作为第二目标设备。可以从设备Node1 210接收到的第二融合张量T2切分出第一融合张量T22,作为目标张量。此外,又例如,可以将设备Node2 220作为第一目标设备,将设备Node1 210作为第二目标设备。可以从设备Node2 220接收到的第二融合张量T2切分出第一融合张量T21,作为目标张量。在一个示例中,对于设备Node1 210,可以对第一融合张量T22进行切分,得到权重梯度gw22和偏置梯度gb22。对于设备Node2 220,可以对第一融合张量T21进行切分,得到权重梯度gw21和偏置梯度gb21。
可以理解,通过上述实施方式,可以完成两个设备之间的一次通信。接下来,两个设备之间还可以进行一次通信,下面将结合图2C进行详细说明。
图2C是根据本公开的一个实施例的多任务并行处理的原理图。
如图2C所示,在确定了中间输出值y1的变量梯度之后,可以利用随机梯度下降算子SGD 214,来确定权重w1的权重梯度gw11和偏置b1的偏置梯度gbl1。此外,在确定了中间输出值y1的变量梯度之后,可以利用随机梯度下降算子SGD 224,来确定权重w1的权重梯度gw12和偏置b1的偏置梯度gb12。
在本公开实施例中,响应于获取到第i个模型参数组的全部参数梯度信息,将第i个模型参数组作为目标模型参数组。例如,在确定了权重w1的权重梯度gw11和偏置b1的偏置梯度gb11之后,可以确定获取到了设备Node1 210的第1个模型参数组的全部模型参数的参数梯度信息。又例如,在确定了权重w1的权重梯度gw12和偏置b1的偏置梯度gb12之后,可以确定获取到了设备Node2 220的第1个模型参数组的全部模型参数的参数梯度信息。可以将第1个模型参数组作为两个设备各自的目标模型参数组。可以理解,在如图2C所示的示例中,i=1。
接下来,可以根据第1个模型参数组和N个通信组,确定目标通信组。例如,可以随机选择一个空闲的通信组作为目标通信组。可以理解,在获取到第1个模型参数组的全部模型参数的参数梯度信息时,第1个通信组可能仍被占有。本实施例中,可以将第2个通信组作为第1个模型参数组的目标通信组。
接下来,可以利用第2个通信组将权重梯度gw11和偏置梯度gb11拼接为第一融合张量T11。可以利用第2通信组将权重梯度gw12和偏置梯度gb12拼接为第一融合张量T12。第一融合张量T11可以作为设备Node1 210的第2个第一融合张量。第一融合张量T12可以作为设备Node2 220的第2个第一融合张量。
接下来,在本公开实施例中,可以利用目标通信组将与M个任务分别对应的M个第j个第一融合张量融合,得到第二融合张量。可以利用第2个通信组对第一融合张量T11和第一融合张量T12执行全规约融合操作,得到第二融合张量T1。可以理解,在执行全规约融合操作之后,设备Node1210和设备Node2 220均接收到了第二融合张量T1。可以理解,在如图2C所示的示例中,j=2。
接下来,可以从设备Node1 210接收到的第二融合张量T1切分出第一融合张量T12。此外,可以从设备Node2 220接收到的第二融合张量T1切分出第一融合张量T11。在一个示例中,对于设备Node1 210,可以对第一融合张量T12进行切分,得到权重梯度gw12和偏置梯度gb12。对于设备Node2 220,可以对第一融合张量T11进行切分,得到权重梯度gw11和偏置梯度gb11。
可以理解,对于设备Node1 210和设备Node2 220,确定了全部模型参数(权重w1、权重w2、偏置b1和偏置b2)的参数梯度信息之后,可以执行以下操作:根据当前损失信息的在后损失信息,在当前训练周期的在后训练周期中确定任务的模型参数的参数梯度信息。例如,根据在后损失信息,可以重复上述操作。
在本公开实施例中,设备还可以部署有计数单元。例如,可以利用计数单元确定是否获取到模型参数组中全部模型参数的参数梯度信息。可以理解,对于设备Node1 210的第2个模型参数组和设备Node2 220的第2个模型参数组,全部模型参数的参数梯度信息可以是同时确定的,由此,针对不同设备的标识相同的模型参数组,可以利用一个计数单元,来确定是否获取了全部模型参数的参数梯度信息。
可以理解,部署于设备Node1 210和设备Node2 220的深度学习模型仅为示例,在本公开实施例中,深度学习模型可以包括更多的处理层,深度学习模型的结构也可以为各种形式,本公开对此不进行限制。
在本公开实施例中,在第i个模型参数组作为目标模型参数组的情况下,可以根据i与N之间的余数,确定目标通信组。例如,在i=1且N=2的情况下,i%N=1。可以将第1个通信组作为目标通信组。由此,在模型参数组较多时,可以准确地确定目标通信组,有助于提高通信效率。图3是根据本公开的一个实施例的深度学习框架的多任务并行处理装置的框图。
如图3所示,该装置300可以包括第一融合模型310、第二融合模块320和切分模块330。
第一融合模块310,用于响应于获取到目标模型参数组的至少一个参数梯度信息,将目标模型参数组的至少一个参数梯度信息融合,得到第一融合张量。例如,模型参数与参数梯度信息对应,目标模型参数组来自与任务对应的至少一个模型参数组,模型参数组包括任务的至少一个模型参数。
第二融合模块320,用于利用目标通信组将与多个任务分别对应的多个第一融合张量融合,得到第二融合张量。例如,任务由部署有深度学习框架的设备执行,目标通信组来自与多个设备相关的至少一个通信组,通信组用于指示多个设备之间进行通信。
切分模块330,用于从第一目标设备接收到的第二融合张量中切分出目标张量,其中,第一目标设备为多个设备中的一个设备,目标张量包括多个设备中至少一个第二目标设备各自的第一融合张量。
在一些实施例中,第一融合模块包括:第一确定子模块,用于根据目标模型参数组和至少一个通信组,确定目标通信组;以及第一融合子模块,用于利用目标通信组将目标模型参数组的至少一个参数梯度信息融合。
在一些实施例中,任务与I个模型参数组对应,I为不小于1的整数,第一融合模块包括:第二确定子模块,用于响应于获取到第i个模型参数组的全部参数梯度信息,将第i个模型参数组作为目标模型参数组,其中,i为不小于1且不大于I的整数;以及第二融合子模块,用于将目标模型参数组的至少一个参数梯度信息融合,得到第j个第一融合张量,j为不小于1且不大于I的整数。
在一些实施例中,多个任务为M个任务,M为不小于1的整数,第二融合模块包括:第三融合子模块,用于利用目标通信组将与M个任务分别对应的M个第一融合张量融合,得到第二融合张量。
在一些实施例中,第二融合子模块包括:第一确定单元,用于根据第i个模型参数组和N个通信组,确定目标通信组;以及第一融合单元,用于利用目标通信组将目标模型参数组的至少一个参数梯度信息融合。
在一些实施例中,任务包括模型训练任务。
在一些实施例中,装置300还包括:第一确定模块,用于根据任务的当前损失信息,在当前训练周期确定任务的模型参数的参数梯度信息。
在一些实施例中,装置300还包括:第二确定模块,用于响应于在当前训练周期中确立了任务的全部模型参数的参数梯度信息,根据当前损失信息的在后损失信息,在当前训练周期的在后训练周期中确定任务的模型参数的参数梯度信息。
在一些实施例中,设备包括至少一个计算单元,计算单元包括图形处理单元和中央处理单元中的至少一个。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图4示出了可以用来实施本公开的实施例的示例电子设备400的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如深度学习框架的多任务并行处理方法。例如,在一些实施例中,深度学习框架的多任务并行处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的深度学习框架的多任务并行处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行深度学习框架的多任务并行处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)显示器或者LCD(液晶显示器));以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (20)

1.一种深度学习框架的多任务并行处理方法,包括:
响应于获取到目标模型参数组的至少一个参数梯度信息,将所述目标模型参数组的至少一个所述参数梯度信息融合,得到第一融合张量,其中,所述模型参数与所述参数梯度信息对应,所述目标模型参数组来自与所述任务对应的至少一个所述模型参数组,所述模型参数组包括所述任务的至少一个模型参数;
利用目标通信组将与多个所述任务分别对应的多个所述第一融合张量融合,得到第二融合张量,其中,所述任务由部署有深度学习框架的设备执行,所述目标通信组来自与多个所述设备相关的至少一个通信组,所述通信组用于指示多个所述设备之间进行通信;以及
从第一目标设备接收到的所述第二融合张量中切分出目标张量,其中,所述第一目标设备为多个所述设备中的一个所述设备,所述目标张量包括多个所述设备中至少一个第二目标设备各自的第一融合张量。
2.根据权利要求1所述的方法,其中,所述将所述目标模型参数组的至少一个所述参数梯度信息融合包括:
根据所述目标模型参数组和至少一个所述通信组,确定目标通信组;以及
利用所述目标通信组将所述目标模型参数组的至少一个所述参数梯度信息融合。
3.根据权利要求1或2所述的方法,其中,所述任务与I个模型参数组对应,I为不小于1的整数,
所述响应于获取到目标模型参数组的至少一个参数梯度信息,将所述目标模型参数组的至少一个所述参数梯度信息融合包括:
响应于获取到第i个所述模型参数组的全部所述参数梯度信息,将第i个所述模型参数组作为所述目标模型参数组,其中,i为不小于1且不大于I的整数;以及
将所述目标模型参数组的至少一个所述参数梯度信息融合,得到第j个所述第一融合张量,j为不小于1且不大于I的整数。
4.根据权利要求3所述的方法,其中,多个所述任务为M个所述任务,M为不小于1的整数,
所述利用目标通信组将与多个所述任务分别对应的多个所述第一融合张量融合,得到第二融合张量包括:
利用所述目标通信组将与M个所述任务分别对应的M个所述第一融合张量融合,得到所述第二融合张量。
5.根据权利要求3所述方法,其中,所述将所述目标模型参数组的至少一个所述参数梯度信息融合包括:
根据第i个所述模型参数组和N个所述通信组,确定所述目标通信组;以及
利用所述目标通信组将所述目标模型参数组的至少一个所述参数梯度信息融合。
6.根据权利要求1所述的方法,其中,所述任务包括模型训练任务。
7.根据权利要求6所述的方法,还包括:
根据所述任务的当前损失信息,在当前训练周期确定所述任务的所述模型参数的参数梯度信息。
8.根据权利要求7所述的方法,还包括:
响应于在所述当前训练周期中确立了所述任务的全部所述模型参数的参数梯度信息,根据所述当前损失信息的在后损失信息,在所述当前训练周期的在后训练周期中确定所述任务的所述模型参数的参数梯度信息。
9.根据权利要求1所述的方法,其中,所述设备包括至少一个计算单元,所述计算单元包括图形处理单元和中央处理单元中的至少一个。
10.一种深度学习框架的多任务并行处理装置,包括:
第一融合模块,用于响应于获取到目标模型参数组的至少一个参数梯度信息,将所述目标模型参数组的至少一个所述参数梯度信息融合,得到第一融合张量,其中,所述模型参数与所述参数梯度信息对应,所述目标模型参数组来自与所述任务对应的至少一个所述模型参数组,所述模型参数组包括所述任务的至少一个模型参数;
第二融合模块,用于利用目标通信组将与多个所述任务分别对应的多个所述第一融合张量融合,得到第二融合张量,其中,所述任务由部署有深度学习框架的设备执行,所述目标通信组来自与多个所述设备相关的至少一个通信组,所述通信组用于指示多个所述设备之间进行通信;以及
切分模块,用于从第一目标设备接收到的所述第二融合张量中切分出目标张量,其中,所述第一目标设备为多个所述设备中的一个所述设备,所述目标张量包括多个所述设备中至少一个第二目标设备各自的第一融合张量。
11.根据权利要求10所述的装置,其中,所述第一融合模块包括:
第一确定子模块,用于根据所述目标模型参数组和至少一个所述通信组,确定目标通信组;以及
第一融合子模块,用于利用所述目标通信组将所述目标模型参数组的至少一个所述参数梯度信息融合。
12.根据权利要求10或11所述的装置,其中,所述任务与I个模型参数组对应,I为不小于1的整数,
所述第一融合模块包括:
第二确定子模块,用于响应于获取到第i个所述模型参数组的全部所述参数梯度信息,将第i个所述模型参数组作为所述目标模型参数组,其中,i为不小于1且不大于I的整数;以及
第二融合子模块,用于将所述目标模型参数组的至少一个所述参数梯度信息融合,得到第j个所述第一融合张量,其中,j为不小于1且不大于I的整数。
13.根据权利要求12所述的装置,其中,多个所述任务为M个所述任务,M为不小于1的整数,
所述第二融合模块包括:
第三融合子模块,用于利用所述目标通信组将与M个所述任务分别对应的M个所述第一融合张量融合,得到所述第二融合张量。
14.根据权利要求12所述装置,其中,所述第二融合子模块包括:
第一确定单元,用于根据第i个所述模型参数组和N个所述通信组,确定所述目标通信组;以及
第一融合单元,用于利用所述目标通信组将所述目标模型参数组的至少一个所述参数梯度信息融合。
15.根据权利要求10所述的装置,其中,所述任务包括模型训练任务。
16.根据权利要求15所述的装置,还包括:
第一确定模块,用于根据所述任务的当前损失信息,在当前训练周期确定所述任务的所述模型参数的参数梯度信息。
17.根据权利要求16所述的装置,还包括:
第二确定模块,用于响应于在所述当前训练周期中确立了所述任务的全部所述模型参数的参数梯度信息,根据所述当前损失信息的在后损失信息,在所述当前训练周期的在后训练周期中确定所述任务的所述模型参数的参数梯度信息。
18.根据权利要求10所述的装置,其中,所述设备包括至少一个计算单元,所述计算单元包括图形处理单元和中央处理单元中的至少一个。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至9中任一项所述的方法。
CN202211496576.2A 2022-11-23 2022-11-23 深度学习框架的多任务并行处理方法、装置、设备和介质 Active CN115759232B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211496576.2A CN115759232B (zh) 2022-11-23 2022-11-23 深度学习框架的多任务并行处理方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211496576.2A CN115759232B (zh) 2022-11-23 2022-11-23 深度学习框架的多任务并行处理方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN115759232A CN115759232A (zh) 2023-03-07
CN115759232B true CN115759232B (zh) 2023-08-22

Family

ID=85338723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211496576.2A Active CN115759232B (zh) 2022-11-23 2022-11-23 深度学习框架的多任务并行处理方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN115759232B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342345A (zh) * 2021-05-17 2021-09-03 北京百度网讯科技有限公司 深度学习框架的算子融合方法、装置
CN114841327A (zh) * 2022-05-27 2022-08-02 北京字节跳动网络技术有限公司 计算图的处理方法、装置、可读介质及电子设备
CN115221103A (zh) * 2021-04-30 2022-10-21 寒武纪行歌(南京)科技有限公司 计算装置、数据处理方法及相关产品

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113657465B (zh) * 2021-07-29 2024-04-09 北京百度网讯科技有限公司 预训练模型的生成方法、装置、电子设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115221103A (zh) * 2021-04-30 2022-10-21 寒武纪行歌(南京)科技有限公司 计算装置、数据处理方法及相关产品
CN113342345A (zh) * 2021-05-17 2021-09-03 北京百度网讯科技有限公司 深度学习框架的算子融合方法、装置
CN114841327A (zh) * 2022-05-27 2022-08-02 北京字节跳动网络技术有限公司 计算图的处理方法、装置、可读介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于深度学习的网络资源优先协同过滤推荐;佘学兵,等;计算机仿真;全文 *

Also Published As

Publication number Publication date
CN115759232A (zh) 2023-03-07

Similar Documents

Publication Publication Date Title
CN113538235B (zh) 图像处理模型的训练方法、装置、电子设备及存储介质
CN112884086A (zh) 模型训练方法、装置、设备、存储介质以及程序产品
CN114819084B (zh) 模型推理方法、装置、设备及存储介质
CN114816393B (zh) 信息生成方法、装置、设备以及存储介质
CN112506581A (zh) 渲染小程序的方法、装置、电子设备和可读存储介质
CN110633717A (zh) 一种目标检测模型的训练方法和装置
CN115373861A (zh) Gpu资源调度方法、装置、电子设备及存储介质
CN114428907A (zh) 信息搜索方法、装置、电子设备及存储介质
CN112817660B (zh) 扩展小程序能力的方法、装置、设备以及存储介质
CN116468112B (zh) 目标检测模型的训练方法、装置、电子设备和存储介质
CN115759232B (zh) 深度学习框架的多任务并行处理方法、装置、设备和介质
CN116934571A (zh) 任务处理方法、装置、电子设备和存储介质
CN114374703B (zh) 云手机信息的获取方法、装置、设备以及存储介质
CN114091686B (zh) 数据处理方法、装置、电子设备和存储介质
CN113570067B (zh) 分布式系统的同步方法、装置
CN113691403B (zh) 拓扑节点配置方法、相关装置及计算机程序产品
CN113642654B (zh) 图像特征的融合方法、装置、电子设备和存储介质
CN113850394B (zh) 联邦学习方法、装置、电子设备及存储介质
CN113554550B (zh) 图像处理模型的训练方法、装置、电子设备及存储介质
CN115759209A (zh) 神经网络模型的量化方法、装置、电子设备及介质
CN113407844B (zh) 小程序框架的版本推荐方法、装置、设备以及存储介质
CN116502680B (zh) 一种用于混合专家模型的并行训练方法及装置
CN115600687B (zh) 模型训练方法、装置、设备以及存储介质
CN115660064B (zh) 基于深度学习平台的模型训练方法、数据处理方法和装置
CN116436828A (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