任务调度方法及装置、电子设备和存储制造方法及图纸

技术编号:34402930 阅读:24 留言:0更新日期:2022-08-03 21:45
本公开提供了一种任务调度方法及装置、电子设备和存储,涉及人工智能技术领域,尤其涉及分布式计算和深度学习技术领域。实现方案为:获取目标模型的训练任务,训练任务包括计算图和分布式属性,计算图包括多个顺序处理模块和多个循环处理模块;将计算图拆分为多个目标块,每个目标块对应于多个顺序处理模块或者对应于任一循环处理模块;基于分布式属性,确定用于执行训练任务的多个计算设备的数量,并且将多个目标块中的每个目标块拆分为该数量的多个目标子块;基于多个目标块各自对应的多个目标子块,生成多个训练子任务,每个训练子任务包括多个目标块的相同编号的目标子块;以及将多个训练子任务分配至多个计算设备以并行执行。行执行。行执行。

【技术实现步骤摘要】
任务调度方法及装置、电子设备和存储


[0001]本公开涉及人工智能
,尤其涉及分布式计算和深度学习
,具体涉及一种任务调度方法及装置、电子设备、计算机可读存储介质和计算机程序产品。

技术介绍

[0002]人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
[0003]随着人工智能技术的发展,人工智能所涉及的数据规模和模型规模越来越大。大数据和大模型的双重挑战导致人工智能模型的训练耗时较长。
[0004]在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。

技术实现思路

[0005]本公开提供了一种任务调度方法及装置、电子设备、计算机可读存储介质和计算机程序产品。
[0006]根据本公开的一方面,提供了一种任务调度方法,包括:获取目标模型的训练任务,所述训练任务包括计算图和分布式属性,所述计算图用于表示所述训练任务的计算过程,所述计算图包括多个顺序处理模块和多个循环处理模块,所述分布式属性用于指示所述训练任务的分布式策略;将所述计算图拆分为多个目标块,所述多个目标块中的每个目标块对应于所述多个顺序处理模块或者对应于所述多个循环处理模块中的任一循环处理模块;基于所述分布式属性,确定用于执行所述训练任务的多个计算设备的数量,并且将所述多个目标块中的每个目标块拆分为所述数量的多个目标子块;基于所述多个目标块各自对应的多个目标子块,生成多个训练子任务,所述多个训练子任务中的每个训练子任务包括所述多个目标块的相同编号的目标子块;以及将所述多个训练子任务分配至所述多个计算设备以并行执行。
[0007]根据本公开的一方面,提供了一种任务调度装置,包括:获取模块,被配置为获取目标模型的训练任务,所述训练任务包括计算图和分布式属性,所述计算图用于表示所述训练任务的计算过程,所述计算图包括多个顺序处理模块和多个循环处理模块,所述分布式属性用于指示所述训练任务的分布式策略;第一拆分模块,被配置为将所述计算图拆分为多个目标块,所述多个目标块中的每个目标块对应于所述多个顺序处理模块或者对应于所述多个循环处理模块中的任一循环处理模块;第二拆分模块,被配置为基于所述分布式属性,确定用于执行所述训练任务的多个计算设备的数量,并且将所述多个目标块中的每
个目标块拆分为所述数量的多个目标子块;生成模块,被配置为基于所述多个目标块各自对应的多个目标子块,生成多个训练子任务,所述多个训练子任务中的每个训练子任务包括所述多个目标块的相同编号的目标子块;以及分配模块,被配置为将所述多个训练子任务分配至所述多个计算设备以并行执行。
[0008]根据本公开的一方面,提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器,该存储器存储有可被上述至少一个处理器执行的指令,该指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行上述方法。
[0009]根据本公开的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行上述方法。
[0010]根据本公开的一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述方法。
[0011]根据本公开的一个或多个实施例,能够对包含循环结构的模型的训练任务进行自动拆分、分配和并行执行,提高了模型的训练效率。
[0012]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0013]附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
[0014]图1示出了根据本公开的实施例的任务调度方法的流程图;
[0015]图2示出了根据本公开实施例的计算图的示意图;
[0016]图3示出了根据本公开实施例的将计算图拆分为多个目标块的示意图;
[0017]图4示出了根据本公开实施例的将目标块拆分为多个目标子块的示意图;
[0018]图5示出了根据本公开实施例的任务调度过程的示意图;
[0019]图6示出了根据本公开实施例的任务调度装置的结构框图;以及
[0020]图7示出了能够用于实现本公开的一些实施例的示例性电子设备的结构框图。
具体实施方式
[0021]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0022]在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
[0023]在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该
要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
[0024]为了提高人工智能模型,尤其是深度学习模型的训练效率,通常采用分布式技术来对模型进行训练。
[0025]相关技术中,为了实现模型的分布式训练,通常需要用户手动将模型的训练任务拆分为多个训练子任务,并分配给多个分布式计算设备执行。对训练任务的拆分和分配需要用户掌握深度学习算法、分布式计算、计算设备通信等多种知识,这提高了用户的使用门槛,耗时长并且容易出错,降低了生成、执行训练任务的效率和准确性。尤其在模型包括循环处理模块(例如包括while循环体)的情况下,模型结构复杂,使得模型训练任务的生成效率、执行效率和准确性更加难以保证。
[0026]为此,本公开的实施例提供一种任务调度方法,能够对包含循环结构的模型的训练任务进行自动拆分、分配和并行执行,提高了模型的训练效率和准确性。
[0027]下面将结合附本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务调度方法,包括:获取目标模型的训练任务,其中,所述训练任务包括计算图和分布式属性,所述计算图用于表示所述训练任务的计算过程,所述计算图包括多个顺序处理模块和多个循环处理模块,所述分布式属性用于指示所述训练任务的分布式策略;将所述计算图拆分为多个目标块,其中,所述多个目标块中的每个目标块对应于所述多个顺序处理模块或者对应于所述多个循环处理模块中的任一循环处理模块;基于所述分布式属性,确定用于执行所述训练任务的多个计算设备的数量,并且将所述多个目标块中的每个目标块拆分为所述数量的多个目标子块;基于所述多个目标块各自对应的多个目标子块,生成多个训练子任务,其中,所述多个训练子任务中的每个训练子任务包括所述多个目标块的相同编号的目标子块;以及将所述多个训练子任务分配至所述多个计算设备以并行执行。2.根据权利要求1所述的方法,其中,所述计算图包括前向计算图、反向计算图和更新计算图,所述前向计算图用于表示所述训练任务的前向计算过程,所述反向计算图用于表示所述训练任务的反向计算过程,所述更新计算图用于表示所述目标模型的参数更新过程,并且其中,所述获取目标模型的训练任务包括:获取用户指定的所述前向计算图;基于所述前向计算图,生成所述反向计算图;以及基于所述反向计算图,生成所述更新计算图。3.根据权利要求1或2所述的方法,其中,所述多个顺序处理模块和所述多个循环处理模块中的任一者包括至少一个算子,所述计算图还包括多个变量,并且其中,将所述计算图拆分为多个目标块包括:生成分别对应于所述多个循环处理模块的多个第一目标块,其中,所述多个第一目标块中的每个第一目标块包括相应的循环处理模块和多个第一变量,所述多个第一变量为所述多个变量中的对应于所述相应的循环处理模块的变量;生成与所述多个循环处理模块分别对应的多个循环算子,其中,所述多个循环算子中的每个循环算子用于指示相应的循环处理模块的循环终止条件;以及将所述计算图中的每个循环处理模块替换为相应的循环算子,以得到对应于所述多个顺序处理模块的第二目标块,其中,所述第二目标块包括所述多个顺序处理模块、所述多个循环算子和多个第二变量,所述多个第二变量为所述多个变量中的除所述多个第一变量以外的变量。4.根据权利要求3所述的方法,其中,所述多个循环处理模块包括前向计算图中的至少一个前向循环模块和反向计算图中的至少一个反向循环模块,所述至少一个前向循环模块和所述至少一个反向循环模块分别对应,所述多个第一目标块包括分别对应于所述至少一个前向循环模块的至少一个前向目标块和分别对应于所述至少一个反向循环模块的至少一个反向目标块,所述方法还包括:存储所述至少一个前向目标块和所述至少一个反向目标块的对应关系。5.根据权利要求1

4中任一项所述的方法,其中,所述分布式属性包括第一分布式属性,所述第一分布式属性用于表示所述多个计算设备的拓扑结构,并且其中,基于所述分布式属性,确定用于执行所述训练任务的多个计算设备的数量包括:
基于所述第一分布式属性,确定用于执行所述训练任务的多个计算设备的数量。6.根据权利要求5所述的方法,其中,所述分布式属性还包括多个变量各自的第二分布式属性,所述第二分布式属性用于表示相应变量的每个维度与所述第一分布式属性的每个维度的对应关系,并且其中,基于所述分布式属性,将所述多个目标块中的每个目标块拆分为所述数量的多个目标子块包括:对于所述多个目标块中的每个目标块:基于所述第一分布式属性,将该目标块中的每个算子拆分为所述数量的多个子算子;基于所述第一分布式属性和相应的第二分布式属性,将该目标块中的每个变量拆分为所述数量的多个子变量;以及基于所述多个子算子和所述多个子变量,生成多个目标子块,其中,所述多个目标子块中的每个目标子块包括每个算子的相同编号的子算子和每个变量的所述相同编号的子变量。7.根据权利要求6所述的方法,其中,所述获取目标模型的训练任务包括:获取用户指定的所述第一分布式属性和前向计算图中的至少一个目标变量的第二分布式属性;基于所述至少一个目标变量的第二分布式属性,确定前向计算图中的其他变量的第二分布式属性;以及基于前向计算图中的相应变量的第二分布式属性,确定反向计算图中的每个变量的第二分布式属性。8.根据权利要求1

7中任一项所述的方法,还包括:基于所述分布式属性,确定所述多个计算设备之间的待通信的信息。9.根据权利要求1

8中任一项所述的方法,其中,所述目标模型为语句生成模型,所述语句生成模型包括用于循环生成语言符号的循环生成模块,所述语言符号包括词和标点符号,所述循环生成模块的循环终止条件包括上一次循环所生成的语言符号是用于句末的标点符号。10.一种任务调度装置,包括:获取模块,被配置为获取目标模型的训练任务,其中,所述训练任务包括计算图和分布式属性,所述计算图用于表示所述训练任务的计算过程,所述计算图包括多个顺序处理模块和多个循环处理模块,所述分布式属性用于指示所述训练任务的分布式策略;第一拆分模块,被配置为将所述计算图拆分为多个目标块,其中,所述多个目标块中的每个目标块对应于所述多个顺序处理模块或者对应于所述多个循环处理模块中的任一循环处理模块;...

【专利技术属性】
技术研发人员:梁建中敖玉龙赵英利曹州吴志华于佃海
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1