CN118277040A - 模型训练的部署方法及电子设备 - Google Patents
模型训练的部署方法及电子设备 Download PDFInfo
- Publication number
- CN118277040A CN118277040A CN202211708929.0A CN202211708929A CN118277040A CN 118277040 A CN118277040 A CN 118277040A CN 202211708929 A CN202211708929 A CN 202211708929A CN 118277040 A CN118277040 A CN 118277040A
- Authority
- CN
- China
- Prior art keywords
- deployment
- processors
- running time
- model
- strategy
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 179
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000005070 sampling Methods 0.000 claims description 59
- 238000012545 processing Methods 0.000 claims description 48
- 238000004364 calculation method Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 9
- 239000002699 waste material Substances 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
提供一种模型训练的部署方法及电子设备,涉及计算机技术领域。该方法可以先针对于待训练模型,确定出每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略。再基于多个第一部署策略获得运行时间和处理器数量之间的对应关系,并基于该对应关系确定待训练模型的目标部署策略。上述目标部署策略为基于运行时间和处理器数量确定的用户的资源消耗最少的部署策略。目标部署策略可以平衡模型训练使用的处理器数量和运行时间之间的关系,这样可以使用合理数量的处理器在合理的时间内完成模型训练,不会造成处理器资源的浪费,同时可以满足用户对于模型训练的需求。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种模型训练的部署方法及电子设备。
背景技术
大模型是指包括几百万、千亿、万亿或者更多数量的参数的模型,例如神经网络模型等。大模型的训练对于大模型在实际应用时的准确性等有着至关重要的作用。而由于参数数量比较多,一个电子设备上的处理器的数量往往不足以支持一个大模型的训练,因此对于大模型的训练,通常需要在多个电子设备组成的集群上进行。
一个电子设备可以包括多个处理器。由多个电子设备组成的集群中,可以包括不同电子设备对应的多个处理器。在进行大模型训练时,可以将大模型的训练任务分散到集群中不同的处理器上并行处理,从而实现分布式、并发地训练过程,同时提高大模型训练的速度。大模型在上述集群中进行训练之前,需要先通过自动部署系统或者智能算法等确定训练的最佳部署策略和对应的运行时间,即,确定出集群中的每个处理器处理哪个或者哪些训练任务。之后,再按照最佳的部署策略进行训练。
然而,目前的自动部署系统或者智能算法等,在确定上述部署策略时,通常会存在消耗大量设备的问题,也会过多地浪费用户的资源,同时也难以满足用户的使用需求。
发明内容
本申请实施例提供了一种模型训练的部署方法及电子设备,可以从多个部署策略中确定目标部署策略。目标部署策略可以平衡模型训练使用的处理器数量和运行时间之间的关系,这样可以使用合理数量的处理器在合理的时间内完成模型训练,不会造成处理器资源的浪费,同时也可以满足用户对于模型训练的需求。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供一种模型训练的部署方法,该方法包括:首先针对于待训练模型,确定出每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略。其中,处理器用于处理待训练模型的一个或者多个训练任务,以及不同第一部署策略之间的处理器数量和运行时间均不同。然后,基于多个第一部署策略,获得运行时间和处理器数量之间的对应关系,并基于对应关系确定待训练模型的目标部署策略。
上述方法中获得的目标部署策略为基于运行时间和处理器数量确定的用户的资源消耗最少的部署策略。
在获得目标部署策略后,可以将待训练模型的训练任务按照目标部署策略进行部署,即,将待训练模型的训练任务分配到目标部署策略对应的处理器上进行处理。目标部署策略可以平衡模型训练使用的处理器数量和运行时间之间的关系,这样可以使用合理数量的处理器,不会造成处理器资源的浪费,并且可以使模型训练的过程在合理的运行时间内结束,避免浪费用户过多的时间。
另外,使用合理数量处理器的数量,也可以减少用户租用处理器所消耗的资源,例如减少用户租用处理器的费用等,从而使得模型训练部署方式的性价比变高,节省用户的资源,经济性也较好,可以满足用户的使用需求。
在第一方面的一种可实现方式中,上述方法在得到多个第一部署策略时,可以先根据待训练模型对应的多个训练任务和设备集群中的多个处理器,确定多个第二部署策略,其中,第二部署策略中包括模型训练时对应的处理器数量和处理器信息。然后,分别获取每个第二部署策略中处理器基于部署方式的运行时间,并从多个第二部署策略中确定每种处理器数量下运行时间最短的部署策略,从而得到多个第一部署策略,其中,部署方式包括不同处理器之间并行和/或串行运行。这种实现方式中,可以先针对待训练模型确定出多个候选的第二部署策略,相当于预先排除一些其他不太合适的训练任务部署策略或者训练任务部署方式的干扰,之后从第二部署策略中确定出多个第一部署策略,也能更加准确和更加快速。
在第一方面的一种可实现方式中,上述方法在确定多个第二部署策略时,可以先获取待训练模型的拓扑结构,其中,拓扑结构表示待训练模型中各个训练任务之间的执行逻辑。再根据待训练模型的拓扑结构,获取待训练模型对应的计算图,其中,计算图中包括多个计算节点,计算节点用于表征待训练模型的训练任务,计算节点之间具有层级顺序和逻辑顺序。最后,根据计算图中计算节点之间的层级顺序和逻辑顺序,以及设备集群中的多个处理器,确定多个第二部署策略。这种实现方式中,计算图能更好地展示出被训练模型的拓扑结构,从而根据计算图也可以更加准确地确定出多个第二部署策略。
在第一方面的一种可实现方式中,上述方法在获得运行时间和处理器数量之间的对应关系时,可以根据多个第一部署策略分别对应的处理器数量和运行时间,对多个第一部署策略进行插值处理,获得运行时间与处理器数量之间的对应关系。这种实现方式中,可以通过对多个第二部署策略进行插值处理获得对应关系,例如帕累托前沿曲线等,其中,帕累托前沿曲线的横轴可以表示部署策略对应的运行时间的倒数,并且运行时间的倒数也可以表示部署策略对应的训练性能,运行时间越长,训练性能越差,而运行时间越短,训练性能越好。
在第一方面的一种可实现方式中,上述方法在获得运行时间和处理器数量之间的对应关系时,还可以根据多个第一部署策略中,目标第一部署策略对应的目标处理器数量与目标运行时间,获得多个第一部署策略中其他第一部署策略对应的运行时间,其中,其他第一部署策略对应的处理器数量与目标处理器数量的比值乘以扰动系数,等于其他第一部署策略对应的运行时间与目标运行时间的比值。再根据多个其他第一部署策略对应的处理器数量和运行时间,对多个其他第一部署策略进行插值处理,获得运行时间与处理器数量之间的对应关系。这种实现方式中,可以基于目标部署策略对应的处理器数量和运行时间的比例关系,确定出多个符合该比例关系条件的其他的部署策略,从而根据其他的部署策略获得对应关系。其中,对应关系可以是帕累托前沿曲线等,帕累托前沿曲线可以表征部署策略的集合,帕累托前沿曲线上的点也可以表征各个部署策略,同样的,帕累托前沿曲线的横轴可以表示部署策略对应的运行时间的倒数,并且运行时间的倒数也可以表示部署策略对应的训练性能,运行时间越长,训练性能越差,而运行时间越短,训练性能越好。
在第一方面的一种可实现方式中,上述方法在确定待训练模型的目标部署策略时,可以在表示对应关系的帕累托前沿曲线上,等间隔获取多个采样策略,其中,每个采样策略包括对应关系中的一个处理器数量和对应的运行时间;等间隔获取包括根据相同的处理器数量间隔获取或者根据相同的运行时间间隔获取。再基于每个采样策略对应的处理器数量和运行时间,确定每个采样策略对应的资源消耗量,以及将资源消耗量最少的采样策略作为目标部署策略。这种实现方式中,当前述对应关系可以表示为帕累托前沿曲线时,在获得的帕累托前沿曲线是非凸函数的情况下,可以通过采样的方式获得目标部署策略。从而,在对被训练模型进行训练时,可以根据目标部署策略将被训练模型的训练任务分配到对应数量的处理器上,从而实现处理器资源消耗较少、用户资源消耗较少、运行时间也较合理的模型训练过程。
在第一方面的一种可实现方式中,上述方法在确定待训练模型的目标部署策略时,还可以对表示对应关系的帕累托前沿曲线进行求导处理,基于求导操作后获得的数据所对应的处理器数量和运行时间,确定目标部署策略。这种实现方式中,当前述对应关系可以表示为帕累托前沿曲线时,在获得的帕累托前沿曲线是凸函数的情况下,可以通过求导的方式获得目标部署策略。
在第一方面的一种可实现方式中,上述方法在确定每个采样策略对应的资源消耗量时,可以根据采样策略对应的处理器数量、运行时间和单位时间内每个处理器对应的资源消耗量,确定采样策略对应的资源消耗量。
在第一方面的一种可实现方式中,上述方法还可以在进行模型训练的过程中,将待训练模型对应的各个训练任务分配到目标部署策略对应的多个处理器上进行处理,其中,多个处理器用于按照目标部署策略对应的部署方式处理训练任务。这种实现方式中,目标部署策略可以平衡模型训练使用的处理器数量和运行时间之间的关系,这样可以使用合理数量的处理器,不会造成处理器资源的浪费,并且可以使模型训练的过程在合理的运行时间内结束,避免浪费用户过多的时间。
第二方面,提供一种电子设备,包括第一策略确定模块、对应关系确定模块和第二策略确定模块。其中,第一策略确定模块,用于针对于待训练模型,确定出每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略;处理器用于处理待训练模型的一个或者多个训练任务;不同第一部署策略之间的处理器数量和运行时间均不同;对应关系确定模块,用于基于多个第一部署策略,获得运行时间和处理器数量之间的对应关系;第二策略确定模块,用于基于对应关系,确定待训练模型的目标部署策略;目标部署策略为基于运行时间和处理器数量确定的资源消耗最少的部署策略。
在第二方面的一种可实现方式中,第一策略确定模块,还用于根据待训练模型对应的多个训练任务和设备集群中的多个处理器,确定多个第二部署策略;第二部署策略中包括模型训练时对应的处理器数量和处理器信息;分别获取每个第二部署策略中处理器基于部署方式的运行时间,并从多个第二部署策略中确定每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略;部署方式包括不同处理器之间并行和/或串行运行。
在第二方面的一种可实现方式中,第一策略确定模块,还用于获取待训练模型的拓扑结构;拓扑结构表示待训练模型中各个训练任务之间的执行逻辑;根据待训练模型的拓扑结构,获取待训练模型对应的计算图;计算图中包括多个计算节点,计算节点用于表征待训练模型的训练任务,计算节点之间具有层级顺序和逻辑顺序;根据计算图中计算节点之间的层级顺序和逻辑顺序,以及设备集群中的多个处理器,确定多个第二部署策略。
在第二方面的一种可实现方式中,对应关系确定模块,还用于根据多个第一部署策略分别对应的处理器数量和运行时间,对多个第一部署策略进行插值处理,获得运行时间与处理器数量之间的对应关系。
在第二方面的一种可实现方式中,对应关系确定模块,还用于根据多个第一部署策略中,目标第一部署策略对应的目标处理器数量与目标运行时间,获得多个第一部署策略中其他第一部署策略对应的运行时间;其他第一部署策略对应的处理器数量与目标处理器数量的比值乘以扰动系数的值,等于其他第一部署策略对应的运行时间与目标运行时间的比值;根据多个其他第一部署策略对应的处理器数量和运行时间,对多个其他第一部署策略进行插值处理,获得运行时间与处理器数量之间的对应关系。
在第二方面的一种可实现方式中,第二策略确定模块,还用于在表示对应关系的帕累托前沿曲线上,等间隔获取多个采样策略;每个采样策略包括对应关系中的一个处理器数量和对应的运行时间;等间隔获取包括根据相同的处理器数量间隔获取或者根据相同的运行时间间隔获取;基于每个采样策略对应的处理器数量和运行时间,确定每个采样策略对应的资源消耗量,以及将资源消耗量最少的采样策略作为目标部署策略。
在第二方面的一种可实现方式中,第二策略确定模块,还用于对表示对应关系的帕累托前沿曲线进行求导处理,基于求导操作后获得的数据所对应的处理器数量和运行时间,确定目标部署策略。
在第二方面的一种可实现方式中,第二策略确定模块,还用于根据采样策略对应的处理器数量、运行时间和单位时间内每个处理器对应的资源消耗量,确定采样策略对应的资源消耗量。
在第二方面的一种可实现方式中,上述电子设备还包括任务部署模块;任务部署模块,用于在进行模型训练的过程中,将待训练模型对应的各个训练任务分配到目标部署策略对应的多个处理器上进行处理;多个处理器用于按照目标部署策略对应的部署方式处理训练任务。
第三方面,提供一种电子设备,电子设备包括存储器、一个或多个处理器;存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得电子设备执行如第一方面任一实现方式中的模型训练的部署方法。
第四方面,提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面任一实现方式中的模型训练的部署方法。
第五方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面任一实现方式中的模型训练的部署方法。
可以理解地,上述提供的第二方面所述的电子设备,第三方面所述的电子设备,第四方面所述的计算机可读存储介质,第五方面所述的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例示出的一种大模型计算图的示意图;
图2为本申请实施例示出的一种集群中处理器分布的示意图;
图3为本申请实施例示出的一种模型训练的部署系统的结构示意图;
图4为本申请实施例示出的另一种集群中处理器分布的示意图;
图5为本申请实施例示出的一种电子设备的结构示意图;
图6为本申请实施例示出的一种模型训练的部署方法的流程示意图;
图7为本申请实施例示出的一种部署策略的示意图;
图8为本申请实施例示出的又一种部署策略的示意图;
图9为本申请实施例示出的又一种部署策略的示意图;
图10为本申请实施例示出的获取第一部署策略的示意图;
图11为本申请实施例示出的一种部署策略分布的示意图;
图12为本申请实施例示出的一种策略对应的资源消耗的示意图;
图13为本申请实施例示出的另一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
此外,本申请实施例描述的业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
目前,人工智能领域的技术及相应的功能大多数基于神经网络模型来实现。神经网络模型中可以包括几百万、千亿、万亿或者更多数量的参数,因此,这类模型又可以称为大模型或者超大模型。
大模型的训练对于大模型在实际应用时的准确性等有着至关重要的作用。而由于参数数量比较多,一个电子设备(例如服务器)上的处理器(例如中央处理器(centralprocessing unit,CPU)、神经网络处理器(Neural Network Processing Unit,NPU)等)的数量往往不足以支持一个大模型的训练,因此对于大模型的训练,通常需要在多个电子设备组成的集群上进行。
一个电子设备可以包括多个处理器,例如包括8个CPU、16个CPU等;或者,一个电子设备也可以外挂多个处理器,例如外挂8个NPU、16个NPU等。由多个电子设备组成的集群中,可以包括不同电子设备对应的多个处理器。在进行大模型训练时,可以将大模型的训练任务分散到集群中不同的处理器上并行处理,从而实现分布式、并发地训练过程,同时提高大模型训练的速度。
大模型在上述集群中进行训练之前,需要先通过自动部署系统或者智能算法等确定训练的最佳部署策略和对应的运行时间,即,确定出集群中的每个处理器处理哪个或者哪些训练任务。之后,再按照最佳的部署策略进行训练。其中,大模型通常以计算图的方式表示,例如图1所示,计算图中包括若干节点,每个节点可以对应与一个训练任务,各个训练任务之间有一定的逻辑顺序和层级顺序,从而计算图是一种由多个训练任务串起来逻辑数据结构;而集群中的处理器的分布可以以张量空间的方式去描述,张量空间又用矩阵的形式表示,例如图2所示的是[2,8]的矩阵,其中,2表示集群中有两个电子设备,8表示每个电子设备包括8个处理器。在确定部署策略时,可以将计算图中各个节点对应的训练任务分配到张量空间中的处理器上。
目前的自动部署系统或者智能算法等,在确定上述部署策略时,通常是将集群中的电子设备全部使用掉,即,集群中存在多少处理器,就使用多少处理器,从而尽最大的可能缩短大模型训练的运行时间,提升训练的性能。
用户在进行大模型训练时,通常都是通过租用的方式获取到多个电子设备,从而获得足够的处理器,保证训练任务的完成。如果采用上述常用的训练部署方式,每个电子设备的每个处理器都部署到大模型训练中,那么就意味着,用户需要租用集群中的每个电子设备和每个处理器,这样虽然运行时间缩短,但是却大量消耗设备资源,大大增加了用户的资源消耗,例如用户租用处理器的费用增多等,从而使得模型训练部署方式的性价比降低,浪费用户的资源,经济性较差,也难以满足用户的使用需求。
基于上述内容,本申请实施例提供了一种模型训练的部署方法,该方法可以先针对于待训练模型,确定出每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略,再基于多个第一部署策略,获得运行时间和处理器数量之间的对应关系,并基于该对应关系确定待训练模型的目标部署策略。
上述方法中获得的目标部署策略为基于运行时间和处理器数量确定的用户的资源消耗最少的部署策略。
在获得目标部署策略后,可以将待训练模型的训练任务按照目标部署策略进行部署,即,将待训练模型的训练任务分配到目标部署策略对应的处理器上进行处理。目标部署策略可以平衡模型训练使用的处理器数量和运行时间之间的关系,这样可以使用合理数量的处理器,不会造成处理器资源的浪费,并且可以使模型训练的过程在合理的运行时间内结束,避免浪费用户过多的时间。
另外,使用合理数量处理器的数量,也可以减少用户租用处理器所消耗的资源,例如减少用户租用处理器的费用等,从而使得模型训练部署方式的性价比变高,节省用户的资源,经济性也较好,可以满足用户的使用需求。
本申请实施例提供的模型训练的部署方法,可以应用于模型训练的部署系统中。如图3所示,该部署系统可以包括多个电子设备,电子设备中包括主设备101和多个从设备102。并且,每个电子设备中可以包括一个或者多个处理器,从而多个从设备102组成的集群中可以包括多个处理器1021。在进行模型训练之前,主设备101对模型训练任务进行部署,可以将待训练模型对应的多个训练任务分别部署到集群中的多个处理器1021上。
在进行部署之前,主设备101获取模型训练时可使用的从设备102的数量,然后进一步确定集群中全部可用的处理器1021的数量。
例如,模型训练时集群中可使用的从设备102的数量为4,每个从设备102中的包括8和处理器1021,那么该集群对应的张量空间可以表示为二维的[4,8]矩阵,处理器1021的数量为4×8=32个。
在进行部署时,主设备101根据待训练模型中的训练任务(例如计算图中的算子)的层级顺序和逻辑顺序等,确定分配不同数量的处理器1021进行模型训练的多个部署策略(例如第二部署策略)。其中,不同数量的处理器1021可以包括集群中全部数量的处理器1021,也可以包括集群中部分数量的处理器1021。
部署策略表示部署模型训练任务的策略,每个部署策略中都包括具体的部署处理器1021的数量、处理器1021的信息、部署的处理器1021的部署方式等。不同部署策略之间,需要部署的处理器1021的数量可能是相同的,也可能是不同的。处理器1021的信息可以是处理器标识、处理器编号、处理器地址中的一项或者多项,从而处理器1021的信息可以表示出部署策略中使用的处理器到底是设备集群中的哪个或者哪些处理器。
并且,不同处理器1021的算力不同,在确定部署策略时,主设备101还可以结合设备集群中各个处理器的算力,来确定使用哪个或者哪些处理器。
其中,处理器1021的部署策略可以是多个处理器1021并行运行,也可以是多个处理器1021串行运行,还可以是多个处理器1021中的部分处理器并行运行以及部分处理器串行运行。部署策略中的处理器1021的具体部署策略,可以根据模型计算图中计算节点之间的逻辑顺序和层级顺序来确定。
在确定好多个部署策略(例如第二部署策略)之后,主设备101再分别获取每个部署策略的运行时间,其中,运行时间表示每个部署策略中各个处理器1021按照对应的部署方式处理训练任务的时间。
其中,主设备101可以通过分布式计算性能模拟器(Simulator)模拟每个部署策略中各个处理器1021的处理流程,从而获得每个部署策略的运行时间。不论部署策略之间的处理器1021的数量是否相同,由于处理器1021部署时的执行逻辑、运行顺序或者算力是不同的,因此不同部署策略之间的运行时间也是不同的。
经过上述过程之后,每个部署策略都对应一个处理器数量和一个运行时间。主设备101再从多个部署策略中进一步确定出每种处理器数量下运行时间最短的多个部署策略(例如第一部署策略)。可以理解的是,第一部署策略是相同处理器数量的第二部署策略中运行时间最短的部署策略。
例如,在第二部署策略中,部署策略1对应的处理器数量为N1,运行时间为T1;部署策略2对应的处理器数量也为N1,运行时间为T2;部署策略3对应的处理器数量为N2,运行时间为T3;部署策略4对应的处理器数量也为N2,运行时间为T4。如果T1大于T2,那么部署策略2即为处理器数量N1对应的运行时间最短的部署策略,此时,部署策略2为第一部署策略;并且,如果T3小于T4,那么部署策略3即为处理器数量N2对应的运行时间最短的部署策略,此时部署策略3也为第一部署策略。
在一些实施例中,主设备101可以遍历相同处理器数量的所有第二部署策略,从而在相同处理器数量的所有第二部署策略中,确定出运行时间最短的第一部署策略。并且确定出的多个第一部署策略之间的处理器数量各不相同,以及运行时间也各不相同。
主设备101可以基于前面确定出的多个第一部署策略建立运行时间和处理器数量之间的对应关系。示例性的,这个对应关系可以是一条曲线,例如帕累托前沿曲线。其中,曲线的纵轴可以表示部署策略对应的处理器数量,曲线的横轴可以表示部署策略对应的运行时间的倒数,并且运行时间的倒数也可以表示部署策略对应的训练性能,运行时间越长,训练性能越差,而运行时间越短,训练性能越好。
上述对应关系的曲线可以表征部署策略的集合,并且曲线上的点也可以表征各个部署策略。主设备101可以从曲线上的部署策略中确定出用于部署待训练模型的训练任务的目标部署策略。
其中,目标部署策略为基于运行时间和处理器数量确定的资源消耗最少的部署策略。从而,根据目标部署策略将待训练模型的训练任务分配到对应数量的处理器上,可以实现处理器资源消耗较少、用户资源消耗较少、运行时间也较合理的模型训练过程。
在进行模型训练时,被分配到训练任务的处理器可以根据目标部署策略对应的运行顺序等对各个训练任务进行处理,从而完成待训练模型的训练。
在一些实施例中,上述待训练模型可以是前述实施例中的神经网络模型等大模型或者超大模型。并且,处理器可以是CPU、NPU等计算单元。
本申请实施例中,上述主设备101可以是设备集群中的电子设备,也可以不是设备集群中的电子设备。当主设备101不是集群中的电子设备时,主设备101可以获取集群中各个处理器的信息、算力等,从而针对待训练模型确定目标部署策略,之后,主设备101再按照目标部署策略将待训练模型的各个训练任务分配到设备集群中对应的处理器上进行处理。
当主设备101是集群中的电子设备时,设备集群由主设备101和从设备102组成,并且集群中可以包括主设备101和从设备102分别对应的多个处理器。这种情况下,主设备101也可以将待训练模型的训练任务分配到自己的处理器上进行处理。
在一些实施例中,上述主设备101也可以是集群中的任意一个电子设备,也就是说,集群中的从设备也可以作为主设备使用。
在一些实施例中,上述可使用的集群也可以有多个,从而主设备101可以使用的从设备101可以由多个集群组成的总集群中获得。其中,总集群可以对应一个三维的张量空间,例如,参见图4所示,有4个集群,每个集群中有4个从设备,每个从设备中有4个处理器,那么总集群的张量空间即可表示为矩阵[4,4,4],从而表示可用的处理器一共有4×4×4=64个。而后,主设备101可以根据这64个可用处理器确定目标部署策略。
在一些实施例中,参见图5所示,例如上述主设备101的电子设备中,可以包括第一策略确定模块1011、对应关系确定模块1012、第二策略确定模块1013和任务部署模块1014。其中,第一策略确定模块1011可以针对于待训练模型,确定出每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略。对应关系确定模块1012可以基于多个第一部署策略,获得运行时间和处理器数量之间的对应关系。第二策略确定模块1013可以基于上述对应关系,确定待训练模型的目标部署策略,其中,目标部署策略为基于运行时间和处理器数量确定的资源消耗最少的部署策略。
另外,第一策略确定模块1011还可以根据待训练模型对应的多个训练任务和设备集群中的多个处理器,确定多个第二部署策略。再分别获取每个第二部署策略中处理器基于部署方式的运行时间,并从多个第二部署策略中确定每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略。
第一策略确定模块1011还可以获取待训练模型的拓扑结构,其中,拓扑结构表示待训练模型中各个训练任务之间的执行逻辑。再根据待训练模型的拓扑结构,获取待训练模型对应的计算图,其中,计算图中包括多个计算节点,计算节点用于表征待训练模型的训练任务,计算节点之间具有层级顺序和逻辑顺序。最后,根据计算图中计算节点之间的层级顺序和逻辑顺序,以及设备集群中的多个处理器,确定多个第二部署策略。
对应关系确定模块1012还可以根据多个第一部署策略分别对应的处理器数量和运行时间,对多个第一部署策略进行插值处理,获得运行时间与处理器数量之间的对应关系。
对应关系确定模块1012还可以根据多个第一部署策略中,目标第一部署策略对应的目标处理器数量与目标运行时间,获得多个第一部署策略中其他第一部署策略对应的运行时间;其中,其他第一部署策略对应的处理器数量与目标处理器数量的比值乘以扰动系数的值,等于其他第一部署策略对应的运行时间与目标运行时间的比值。再根据多个其他第一部署策略对应的处理器数量和运行时间,对多个其他第一部署策略进行插值处理,获得运行时间与处理器数量之间的对应关系。
第二策略确定模块1013还可以在表示对应关系的帕累托前沿曲线上,等间隔获取多个采样策略,其中,每个采样策略包括对应关系中的一个处理器数量和对应的运行时间;等间隔获取包括根据相同的处理器数量间隔获取或者根据相同的运行时间间隔获取。再基于每个采样策略对应的处理器数量和运行时间,确定每个采样策略对应的资源消耗量,以及将资源消耗量最少的采样策略作为目标部署策略。
第二策略确定模块1013还可以对表示对应关系的帕累托前沿曲线进行求导处理,基于求导操作后获得的数据所对应的处理器数量和运行时间,确定目标部署策略。
第二策略确定模块1013还可以根据采样策略对应的处理器数量、运行时间和单位时间内每个处理器对应的资源消耗量,确定采样策略对应的资源消耗量。
任务部署模块1014可以在进行模型训练的过程中,将待训练模型对应的各个训练任务分配到目标部署策略对应的多个处理器上进行处理,其中,多个处理器用于按照目标部署策略对应的部署方式处理训练任务。
在上述模型训练的部署系统中,主设备确定的目标部署策略为基于运行时间和处理器数量确定的用户的资源消耗最少的部署策略。目标部署策略可以平衡模型训练使用的处理器数量和运行时间之间的关系,这样可以使用合理数量的处理器,不会造成处理器资源的浪费,并且可以使模型训练的过程在合理的运行时间内结束,避免浪费用户过多的时间。
另外,使用合理数量处理器的数量,也可以减少用户租用处理器所消耗的资源,例如减少用户租用处理器的费用等,从而使得模型训练部署方式的性价比变高,节省用户的资源,经济性也较好,可以满足用户的使用需求。
前述实施例中的主设备、从设备等电子设备可以是服务器、主机等具有运算功能、存储功能并且具有多个计算单元(例如多个CPU、多个NPU等)的电子设备。
以下以主设备是主机、从设备是服务器为例,对本申请实施例中的模型训练的部署方法进行说明。如图6所示,该模型训练的部署方法可以包括如下步骤S601-S603。
S601、主机针对于待训练模型,确定出每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略。
其中,处理器用于处理待训练模型的一个或者多个训练任务,并且不同的第一部署策略之间的处理器数量和运行时间均不同。
在确定多个第一部署策略之前,主机还可以根据待训练模型中的各个训练任务和设备集群中的多个处理器,确定多个第二部署策略。之后,主机再分别获取每个第二部署策略中处理器基于部署方式的运行时间,并从多个第二部署策略中确定每种处理器数量下运行时间最短的多个第一部署策略。其中,部署方式包括不同处理器之间并行和/或串行运行。
具体的部署方式可以根据可用的处理器的算力、性能、功能、配置等确定,同时也可以结合待训练模型中各个训练任务的层级顺序和逻辑顺序等确定。依据不同的部署方式都可以确定出不同的第二部署策略。这样,先针对待训练模型确定出多个候选的第二部署策略,相当于预先排除一些其他不太合适的训练任务部署策略或者训练任务部署方式的干扰,之后从第二部署策略中确定出多个第一部署策略,也能更加准确和更加快速。
在一些实施例中,主机可以根据待训练模型对应的计算图中计算节点之间的层级顺序和逻辑顺序等,确定多个第二部署策略。
通常,待训练模型都有各自的拓扑结构,拓扑结构表示待训练模型的各个训练任务之间的执行顺序或者执行逻辑等。并且,待训练模型的拓扑结构通常可以以计算图的形式表示。在计算图中,包括具有层级顺序和逻辑顺序的计算节点,各个计算节点可以对应于待训练模型中的各个算子,也可以对应于待训练模型的拓扑结构中的各个训练任务。
主机可以获取可用集群中全部服务器对应的处理器数量和处理器的算力等。例如,集群对应的张量空间表示为[4,4,4]的矩阵,那么可用处理器数量为64个。主机可以基于全部可用的处理器和各个处理器的算力,对待训练模型的训练任务进行部署,把待训练模型对应的训练任务分配到不同数量或者相同数量的处理器上进行处理。
其中,不同的分配部署方案可以称为不同的第二部署策略。第二部署策略中包括模型训练对应的处理器数量、处理器信息和处理器的部署方式等。其中,处理器用于处理待训练模型的训练任务。并且,第二部署策略之间对应的处理器数量可能相同,也可能不同。在进行模型训练时,可以根据第二部署策略使用集群中全部可用的处理器,也可以根据第二部署策略使用集群中部分的处理器。
在本申请实施例中,由于集群中包括多个处理器,处理器与处理器之间可能会存在配置、功能、算力上的差异,因此,基于多个不同的处理器,主机可以确定出多个第二部署策略。例如,第二部署策略可以对应数量较少且处理能力较强(或者算力较高)的处理器,或者第二部署策略可以对应数量较多且处理能力较弱(或者算力较低)的处理器,等等。
另外,本申请实施例中,当不同的第二部署策略对应的处理器数量相同时,不同的第二部署策略所对应的处理器组成方式则不同,或者,不同的第二部署策略所对应的处理器的运行顺序则不同,再或者,不同的第二部署策略所对应的处理器组成方式和运行顺序均不同。其中,第二部署策略的部署方式表示第二部署策略中的处理器串行运行,或者并行运行,或者一部分串行,一部分并行运行等。
示例性的,参见图7所示,集群中一共包括16个处理器,分别为C1、C2……C16。其中,部署策略1和部署策略2对应的处理器数量均为5个,部署策略1对应的处理器组成方式为C1、C3、C4、C6、C7;而部署策略2对应的处理器组成方式为C1、C2、C3、C4、C5。
示例性的,参见图8所示,部署策略1对应的处理器组成方式为C1、C2、C3、C4、C5;部署策略2对应的处理器组成方式为C1、C2、C3、C4、C5。但是,部署策略1对应的处理器的部署方式为串行运行:C1-C4-C3-C5-C2,而部署策略2对应的处理器的运行顺序为部署方式为串行运行:C2-C3-C1-C4-C5。
再示例性的,参见图9所示,集群中一共包括16个处理器,分别为C1、C2……C16。部署策略1对应的处理器数量为5个和部署策略2对应的处理器数量为8个,部署策略1对应的处理器的运行顺序为部署方式为串行运行:C1-C2-C3-C4-C5,部署策略2对应的处理器的运行顺序为部署方式为串行运行:C1-C2-C3-C4-C5-C6-C7-C8。
在一些实施例中,第二部署策略中对应的每个处理器可以单独处理待训练模型的一个训练任务,也可以处理待训练模型的多个训练任务。另外,根据待训练模型中各个训练任务之间的层级顺序和逻辑顺序等,第二部署策略对应的处理器的运行顺序中,每个处理器可以只执行一次,也可以执行多次;并且,各个处理器的处理结果也可以被其他处理器多次调用或者使用。
可以理解的是,主机可以通过智能计算方法、计算模型等,基于集群中全部数量的处理器和处理器的算力,对待训练模型的任务分配方案进行确定,即,确定出多个第二部署策略。本申请实施例中,对第二部署策略确定的方式不做具体限制。
上述实施例中的运行时间表示每个第二部署策略中各个处理器基于部署方式运行的时间。由于各个第二部署策略之间处理器数量、处理器部署方式等的不同,因此各个第二部署策略对应的运行时间也可能不同。通常,第二部署策略的运行时间与处理器数量之间的关系为负相关的关系,即,处理器数量越多,运行时间越短,处理器数量越少,运行时间越长。
在一些实施例中,主机可以通过分布式计算性能模拟器模拟每个第二部署策略中各个处理器的处理流程,从而获得每个第二部署策略的运行时间。当第二部署策略之间的处理器数量相同时,由于处理器的运行顺序不同或者处理器的执行过程不同等,因此,第二部署策略之间的运行时间会不相同;当第二部署策略之间的处理器数量不同时,第二部署策略之间的运行时间也会不相同。
本申请实施例中,主机可以遍历处理器数量相同的各个第二部署策略,从而从中确定出运行时间最短的部署策略,即确定出第一部署策略。并且,由于多个第二部署策略中可能存在多个处理器数量不同的部署策略,根据每个处理器数量都可以确定出对应的第一部署策略,从而主机确定出多个第一部署策略,并且多个第一部署策略之间的处理器数量和运行时间均不相同。
示例性的,参见图10所示,主机在前述实施例中确定出的第二部署策略分别为部署策略1-10。其中,部署策略1-3对应的处理器数量均为5,部署策略4-6对应的处理器数量均为7,部署策略7-10对应的处理器数量均为10。那么主机需分别从部署策略1-3中确定出一个第一部署策略,从部署策略4-6中确定出一个第一部署策略,以及从部署策略7-10中确定出一个第一部署策略。
如果部署策略1-3中的部署策略2的运行时间最短,那么部署策略2即为第一部署策略;如果部署策略4-6中的部署策略6的运行时间最短,那么部署策略6即为第一部署策略;如果部署策略7-10中的部署策略7的运行时间最短,那么部署策略7即为第一部署策略。从而,主机从多个第二部署策略中确定的第一部署策略分别为部署策略2、部署策略6和部署策略7。
在一些实施例中,主机还可以基于一些智能算法来确定多个第一部署策略。示例性的,在实现“在给定设备数量下,输出最短耗时的部署策略”时,智能算法大致可以执行如下步骤:1)将待训练模型的计算图按照拓扑顺序展开;2)进行计算图的粗化,降低问题求解空间;3)利用动态规划(dynamic programming)方法进行流水线层次(pipeline stage)划分和处理器分配的遍历;4)利用整数线性规划(integer linear programming,ILP)方法为每个pipeline stage内的数据并行(data parallelism)和模型并行(tensorparallelism)确定切分方式。并且,步骤4)在步骤3)的遍历过程中的所有可能结果上内嵌执行。进过上述步骤可以确定出多个第二部署策略。5)遍历不同的处理器数量,调用分布式计算性能模拟器给出不同第二部署策略下的运行时间。6)分别确定出相同处理器数量对应的运行时间最短的部署策略。
S602、主机基于多个第一部署策略,获得运行时间和处理器数量之间的对应关系。
在一些实施例中,上述运行时间和处理器数量之间的对应关系可以表示为一条曲线,例如帕累托前沿曲线。帕累托前沿曲线的纵轴可以表示部署策略对应的设备数量,帕累托前沿曲线的横轴可以表示部署策略对应的运行时间的倒数,并且运行时间的倒数也可以表示部署策略对应的训练性能,运行时间越长,训练性能越差,而运行时间越短,训练性能越好。
另外,上述对应关系还可以是一条直线、一条折线等线条,本申请实施例中对此不做具体限定。
在一些实施例中,主机在获得上述对应关系时,可以利用插值算法,例如贝塞尔曲线插值法,根据多个第一部署策略分别对应的处理器数量和运行时间,对多个第一部署策略进行插值处理,从而获得一条曲线。
示例性的,参见图11所示的部署策略分布图,其中,横轴表示部署策略的性能,即部署策略的运行时间的倒数;纵轴表示部署策略对应的处理器数量。图11中的每个点都可以代表一个第二部署策略,每个第二部署策略在图11中的位置根据其对应的处理器数量和运行时间而确定。其中,第二部署策略中的第一部署策略可以表示为图11中的实线点。
主机基于图11中的第一部署策略对应的点,利用贝塞尔曲线插值法,可以生成图11中所示的帕累托前沿曲线。其中,第一部署策略均处于帕累托前沿曲线上,并且,帕累托前沿曲线可以表征部署策略的集合,帕累托前沿曲线上的点也可以表征各个部署策略。
在另外一些实施例中,主机在获得上述对应关系时,还可以利用等比例关系,根据多个第一部署策略中的目标第一部署策略对应的目标处理器数量与目标运行时间,获得多个第一部署策略中其他第一部署策略对应的运行时间;然后,再利用插值算法,根据多个其他第一部署策略对应的处理器数量和运行时间,对多个其他第一部署策略进行插值处理,从而获得一条曲线。其中,插值算法可以包括但不限于贝塞尔曲线插值法、多次方插值法等。
其中,其他第一部署策略对应的处理器数量与目标处理器数量的比值与扰动系数之间的乘积,等于其他第一部署策略对应的运行时间与目标运行时间的比值。
示例性的,主机可以根据等比例关系来估计不同处理器数量下的最短运行时间,例如某个第一部署策略对应的目标处理器数量N为[2,4,4]=32,以及对应的目标运行时间为T,那么,第一部署策略对应的处理器数量N′对应的运行时间T’的值即为T’=A(N′/N)T,其中A为0-1之间的随机数,即扰动系数。然后,主机再采样多个处理器数量以及对应的运行时间{N′,T’},再基于这些{N′,T’}的数据利用插值算法生成平滑的帕累托前沿曲线。
S603、主机基于上述对应关系确定待训练模型的目标部署策略。
获得上述对应关系之后,主机可以从上述对应关系表示的部署策略中确定出用于部署待训练模型的训练任务的目标部署策略。其中,目标部署策略为基于运行时间和处理器数量确定的资源消耗最少的部署策略。从而,在对待训练模型进行训练时,可以根据目标部署策略将待训练模型的训练任务分配到对应数量的处理器上,从而实现处理器资源消耗较少、用户资源消耗较少、运行时间也较合理的模型训练过程。
在一些实施例中,在确定目标部署策略时,主机可以基于上述对应关系对应的线条上(例如帕累托前沿曲线)的部署策略,均匀获取多个采样策略;然后,再基于每个采样策略对应的处理器数量和运行时间,确定每个采样策略对应的资源消耗量,以及将资源消耗量最少的采样策略作为目标部署策略。
示例性的,采样策略a、采样策略b、采样策略c对应的资源消耗量的示意图如图12所示。其中,采样策略a对应的处理器数量为N11=[4,4,4],采样策略b对应的处理器数量为N22=[3,4,4],采样策略c对应的处理器数量为N33=[2,4,4]。由图12可知,采样策略b对应的资源消耗量最少,则采样策略b即为目标部署策略。
上述“均匀获取”的过程可以指在线条(例如帕累托前沿曲线)上每间隔相同的运行时间或者相同的处理器数量等,获得多个采样策略的过程,也称为等间隔获取。并且,每个采样策略对应着曲线上的一个处理器数量和一个运行时间。
主机基于每个采样策略对应的处理器数量、运行时间、每个处理器单位时间内的资源消耗量来确定每个采样策略对应的资源消耗量。
示例性的,主机可以基于以下公式来确定采样策略的资源消耗量:
Ptotal=N·P(D)·T。
其中,Ptotal表示采样策略的资源消耗量,N表示处理器数量,T表示运行时间,P(D)表示单位时间内每个处理器的资源消耗量。例如,用户租用处理器进行模型训练时,每个处理器单位时间内的资源消耗量P(D)可能表示金额、价格等,那么采样策略的资源消耗量Ptotal可以表示为用户租用数量为N的处理器时,消耗的总金额或者总价格等。
本申请实施例中,以每个处理器单位时间内资源消耗量相同为例对上述确定目标部署策略的方法进行说明。在其他一些实施例中,也有可能存在每个处理器单位时间内资源消耗量不相同的情况,针对于这种情况,主机也可以分别计算采样策略对应的每个处理器在运行时间内的资源消耗量,然后将所有处理器的资源消耗量相加,从而获得该采样策略对应的总的资源消耗量。
本申请实施例中,当上述对应关系对应的线条(例如帕累托前沿曲线)是非标准、平滑的凸函数(即非凸函数)时,可以采用上述均匀获取的方式获得多个采样策略。而当上述对应关系对应的线条(例如帕累托前沿曲线)是标准、平滑的凸函数时,在一些实施例中,可以对上述对应关系对应的线条进行求导操作,求导相当于对曲线对应的凸函数进行求解(或者称为求最优解),从而求解得到的数据即为目标部署策略对应的处理器数量以及运行时间,从而获得目标部署策略。
本申请上述实施例中,在获得目标部署策略后,可以将待训练模型的训练任务按照目标部署策略进行部署,即,将待训练模型的训练任务分配到目标部署策略对应的处理器上进行处理。目标部署策略可以平衡模型训练使用的处理器数量和运行时间之间的关系,这样可以使用合理数量的处理器,不会造成处理器资源的浪费,并且可以使模型训练的过程在合理的运行时间内结束,避免浪费用户过多的时间。
另外,使用合理数量处理器的数量,也可以减少用户租用处理器所消耗的资源,例如减少用户租用处理器的费用等,从而使得模型训练部署方式的性价比变高,节省用户的资源,经济性也较好,可以满足用户的使用需求。
前述实施例中,在对待训练模型进行训练部署时,不仅是对待训练模型的任务层面的部署,也是对待训练模型的数据层面的部署。前述实施例中,均以将待训练模型对应的各个训练任务部署到集群中的处理器上为例,对模型训练的部署方法进行说明。在其他一些实施例中,也可以将待训练模型的各个训练任务对应的计算数据等拆分,再将拆分后的数据分配到集群中的处理器上进行处理。
前述实施例中,均以主设备是主机、从设备是服务器为例,对模型训练的部署方法进行说明。在其他一些实施例中,主设备还可以是服务器,从设备也可以是主机,或者集群中可用的处理器即可以来自于从设备也可以来自于主设备,本申请实施例对此不做具体限制。
上述实施例的模型训练的部署方法还可以应用于训练部署模型、训练部署服务等云服务产品中。示例性的,云服务产品可以允许用户输入对模型训练的业务要求,例如用户可以输入模型训练指定的处理器数量、模型训练允许的运行时间等,云服务产品可以基于上述模型训练的部署方法针对用户输入的处理器数量,自动获取到该处理器数量对应的目标部署策略以及计算出对应的运行时间和资源消耗量等;或者,云服务产品可以基于上述模型训练的部署方法针对用户输入的运行时间,自动获得到该运行时间对应的不同处理器数量及相应的运行时间等,从而为用户提供多种部署策略,用户可以根据自己的需求选择对应的部署策略进行模型训练。
可以理解的是,为了实现上述功能,前述电子设备包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本申请实施例还提供一种电子设备,如图13所示,该电子设备可以包括一个或者多个处理器1001、存储器1002和通信接口1003。
其中,存储器1002、通信接口1003与处理器1001耦合。例如,存储器1002、通信接口1003与处理器1001可以通过总线1004耦合在一起。
其中,通信接口1003用于与其他设备进行数据传输。存储器1002中存储有计算机程序代码。计算机程序代码包括计算机指令,当计算机指令被处理器1001执行时,使得电子设备执行本申请实施例中的模型训练的部署方法。
其中,处理器1001可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
其中,总线1004可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。上述总线1004可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种计算机可读存储介质,该计算机存储介质中存储有计算机程序代码,当上述处理器执行该计算机程序代码时,电子设备执行上述方法实施例中的相关方法步骤。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中的相关方法步骤。
其中,本申请提供的电子设备、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种模型训练的部署方法,其特征在于,所述方法包括:
针对于待训练模型,确定出每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略;所述处理器用于处理所述待训练模型的一个或者多个训练任务;不同所述第一部署策略之间的处理器数量和运行时间均不同;
基于多个所述第一部署策略,获得运行时间和处理器数量之间的对应关系;
基于所述对应关系,确定所述待训练模型的目标部署策略;所述目标部署策略为基于运行时间和处理器数量确定的资源消耗最少的部署策略。
2.根据权利要求1所述的方法,其特征在于,所述针对于待训练模型,确定出每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略,包括:
根据所述待训练模型对应的多个训练任务和设备集群中的多个处理器,确定多个第二部署策略;所述第二部署策略中包括模型训练时对应的处理器数量和处理器信息;
分别获取每个所述第二部署策略中处理器基于部署方式的运行时间,并从多个所述第二部署策略中确定每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略;所述部署方式包括不同处理器之间并行和/或串行运行。
3.根据权利要求2所述的方法,其特征在于,所述根据所述待训练模型对应的多个训练任务和设备集群中的多个处理器,确定多个第二部署策略,包括:
获取所述待训练模型的拓扑结构;所述拓扑结构表示所述待训练模型中各个训练任务之间的执行逻辑;
根据所述待训练模型的拓扑结构,获取所述待训练模型对应的计算图;所述计算图中包括多个计算节点,所述计算节点用于表征所述待训练模型的所述训练任务,所述计算节点之间具有层级顺序和逻辑顺序;
根据所述计算图中所述计算节点之间的层级顺序和逻辑顺序,以及所述设备集群中的多个处理器,确定多个第二部署策略。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述基于多个所述第一部署策略,获得运行时间和处理器数量之间的对应关系,包括:
根据多个所述第一部署策略分别对应的处理器数量和运行时间,对多个所述第一部署策略进行插值处理,获得运行时间与处理器数量之间的对应关系。
5.根据权利要求2所述的方法,其特征在于,所述基于多个所述第一部署策略,获得运行时间和处理器数量之间的对应关系,包括:
根据多个所述第一部署策略中,目标第一部署策略对应的目标处理器数量与目标运行时间,获得所述多个第一部署策略中其他第一部署策略对应的运行时间;所述其他第一部署策略对应的处理器数量与所述目标处理器数量的比值乘以扰动系数的值,等于所述其他第一部署策略对应的运行时间与所述目标运行时间的比值;
根据多个所述其他第一部署策略对应的处理器数量和运行时间,对多个所述其他第一部署策略进行插值处理,获得运行时间与处理器数量之间的对应关系。
6.根据权利要求4或5所述的方法,其特征在于,所述基于所述对应关系,确定所述待训练模型的目标部署策略,包括:
在表示所述对应关系的曲线上,等间隔获取多个采样策略;每个所述采样策略包括所述对应关系中的一个处理器数量和对应的运行时间;所述等间隔获取包括根据相同的处理器数量间隔获取或者根据相同的运行时间间隔获取;
基于每个所述采样策略对应的处理器数量和运行时间,确定每个所述采样策略对应的资源消耗量,以及将资源消耗量最少的所述采样策略作为所述目标部署策略。
7.根据权利要求4或5所述的方法,其特征在于,所述基于所述对应关系,确定所述待训练模型的目标部署策略,包括:
对表示所述对应关系的曲线进行求导处理,基于求导操作后获得的数据所对应的处理器数量和运行时间,确定目标部署策略。
8.根据权利要求6所述的方法,其特征在于,所述基于每个所述采样策略对应的处理器数量和运行时间,确定每个所述采样策略对应的资源消耗量,包括:
根据所述采样策略对应的处理器数量、运行时间和单位时间内每个处理器对应的资源消耗量,确定所述采样策略对应的资源消耗量。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
在进行模型训练的过程中,将所述待训练模型对应的各个训练任务分配到所述目标部署策略对应的多个处理器上进行处理;所述多个处理器用于按照所述目标部署策略对应的部署方式处理所述训练任务。
10.一种电子设备,其特征在于,所述装置包括第一策略确定模块、对应关系确定模块和第二策略确定模块;
所述第一策略确定模块,用于针对于待训练模型,确定出每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略;所述处理器用于处理所述待训练模型的一个或者多个训练任务;不同所述第一部署策略之间的处理器数量和运行时间均不同;
所述对应关系确定模块,用于基于多个所述第一部署策略,获得运行时间和处理器数量之间的对应关系;
所述第二策略确定模块,用于基于所述对应关系,确定所述待训练模型的目标部署策略;所述目标部署策略为基于运行时间和处理器数量确定的资源消耗最少的部署策略。
11.根据权利要求10所述的电子设备,其特征在于,
所述第一策略确定模块,还用于根据所述待训练模型对应的多个训练任务和设备集群中的多个处理器,确定多个第二部署策略;所述第二部署策略中包括模型训练时对应的处理器数量和处理器信息;分别获取每个所述第二部署策略中处理器基于部署方式的运行时间,并从多个所述第二部署策略中确定每种处理器数量下运行时间最短的部署策略,得到多个第一部署策略;所述部署方式包括不同处理器之间并行和/或串行运行。
12.根据权利要求11所述的电子设备,其特征在于,
所述第一策略确定模块,还用于获取所述待训练模型的拓扑结构;所述拓扑结构表示所述待训练模型中各个训练任务之间的执行逻辑;根据所述待训练模型的拓扑结构,获取所述待训练模型对应的计算图;所述计算图中包括多个计算节点,所述计算节点用于表征所述待训练模型的所述训练任务,所述计算节点之间具有层级顺序和逻辑顺序;根据所述计算图中所述计算节点之间的层级顺序和逻辑顺序,以及所述设备集群中的多个处理器,确定多个第二部署策略。
13.根据权利要求10-12任一项所述的电子设备,其特征在于,
所述对应关系确定模块,还用于根据多个所述第一部署策略分别对应的处理器数量和运行时间,对多个所述第一部署策略进行插值处理,获得运行时间与处理器数量之间的对应关系。
14.根据权利要求11所述的电子设备,其特征在于,
所述对应关系确定模块,还用于根据多个所述第一部署策略中,目标第一部署策略对应的目标处理器数量与目标运行时间,获得所述多个第一部署策略中其他第一部署策略对应的运行时间;所述其他第一部署策略对应的处理器数量与所述目标处理器数量的比值乘以扰动系数的值,等于所述其他第一部署策略对应的运行时间与所述目标运行时间的比值;根据多个所述其他第一部署策略对应的处理器数量和运行时间,对多个所述其他第一部署策略进行插值处理,获得运行时间与处理器数量之间的对应关系。
15.根据权利要求13或14所述的电子设备,其特征在于,
所述第二策略确定模块,还用于在表示所述对应关系的曲线上,等间隔获取多个采样策略;每个所述采样策略包括所述对应关系中的一个处理器数量和对应的运行时间;所述等间隔获取包括根据相同的处理器数量间隔获取或者根据相同的运行时间间隔获取;基于每个所述采样策略对应的处理器数量和运行时间,确定每个所述采样策略对应的资源消耗量,以及将资源消耗量最少的所述采样策略作为所述目标部署策略。
16.根据权利要求13或14所述的电子设备,其特征在于,
所述第二策略确定模块,还用于对表示所述对应关系的曲线进行求导处理,基于求导操作后获得的数据所对应的处理器数量和运行时间,确定目标部署策略。
17.根据权利要求15所述的电子设备,其特征在于,
所述第二策略确定模块,还用于根据所述采样策略对应的处理器数量、运行时间和单位时间内每个处理器对应的资源消耗量,确定所述采样策略对应的资源消耗量。
18.根据权利要求10-17任一项所述的电子设备,其特征在于,还包括任务部署模块;
所述任务部署模块,用于在进行模型训练的过程中,将所述待训练模型对应的各个训练任务分配到所述目标部署策略对应的多个处理器上进行处理;所述多个处理器用于按照所述目标部署策略对应的部署方式处理所述训练任务。
19.一种电子设备,其特征在于,包括存储器、一个或多个处理器;所述存储器与所述处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-9任一项中的模型训练的部署方法。
20.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-9任一项中的模型训练的部署方法。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118277040A true CN118277040A (zh) | 2024-07-02 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115186821B (zh) | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 | |
CN112654968A (zh) | 用于机器学习加速的架构的方法、装置和系统 | |
CN104572301A (zh) | 一种资源分配方法和系统 | |
CN102281290A (zh) | 一种PaaS云平台的仿真系统及方法 | |
CN111860853B (zh) | 在线预测系统、设备、方法及电子设备 | |
Ghose et al. | Adaptive divisible load scheduling strategies for workstation clusters with unknown network resources | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
CN109657794B (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
CN115996173B (zh) | 面向分布式深度学习算子并行训练的通信优化方法与系统 | |
CN114281521A (zh) | 优化深度学习异构资源通信效率方法、系统、设备及介质 | |
CN110503199A (zh) | 运算节点的拆分方法和装置、电子设备和存储介质 | |
CN100531070C (zh) | 网络资源调度仿真系统 | |
Filelis-Papadopoulos et al. | Towards simulation and optimization of cache placement on large virtual content distribution networks | |
CN114237587A (zh) | 一种基于IDEA技术服务SmartFlow的管控方法及系统 | |
CN115794359A (zh) | 用于联邦学习的异构系统及处理方法 | |
CN118277040A (zh) | 模型训练的部署方法及电子设备 | |
Zou et al. | Parallel in situ detection of connected components in adaptive mesh refinement data | |
Nazarenko et al. | An experimental study of workflow scheduling algorithms for heterogeneous systems | |
CN115186305A (zh) | 一种构建数据元件模型并生产数据元件的方法 | |
CN114691873A (zh) | 自动驾驶日志数据的语义化处理方法、装置及存储介质 | |
CN112948087A (zh) | 一种基于拓扑排序的任务调度方法及系统 | |
Menouer et al. | Towards a parallel constraint solver for cloud computing environments | |
CN113326137A (zh) | 深度学习计算方法、装置、芯片及介质 | |
CN108446383B (zh) | 一种基于地理分布式数据查询的数据任务重分配方法 | |
CN108595455B (zh) | 一种空间数据坐标转换方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |