一种任务处理方法、装置及设备与流程

摘要: 本技术涉及人工智能,尤其一种任务处理方法、装置及设备。背景技术:1、人工智能(artificialintelligence,ai)模型的训练和应用,往往需要多个...
一种任务处理方法、装置及设备与流程

本技术涉及人工智能,尤其一种任务处理方法、装置及设备。

背景技术:

1、人工智能(artificialintelligence,ai)模型的训练和应用,往往需要多个计算节点对该ai模型进行分布式训练,或者利用多个计算节点运行该ai模型以提供推理服务。在ai模型训练/推理过程中,计算节点不仅需要执行计算任务,还需执行通信算子,如全聚合(all gather)算子、全互连(all-to-all)等,以与其他计算节点交换数据。

2、随着集群规模的扩大,计算节点之间的通信占比显著提升,导致通信耗时较长,影响ai模型的整体训练/推理效率。

技术实现思路

1、基于此,本技术提供了一种任务处理方法、装置及设备,提高计算任务和通信任务的并行度,减少通信耗时,提高ai模型的训练/推理效率。

2、第一方面,本技术提供了一种任务处理方法,该方法应用于计算集群,该计算集群中的多个计算单元共同执行ai模型的分布式计算任务,如用于执行针对ai模型进行训练或者推理的任务等。其中,多个计算单元中包括第一计算单元和第二计算单元,ai模型包括至少两个并行的专家层以及至少两个并行的embedding层,专家层与embedding层一一对应。具体地,第一计算单元获取至少两个分片数据分别对应的任务,该至少两个分片数据是基于至少两个并行的embedding层对分布式计算任务对应的输入数据切分获得的,即将一个较长的输入数据切分成至少两个独立的分片数据。其中,每个分片数据均对应有计算任务和通信任务且一个分片数据的计算任务和通信任务是串行执行的。对于任务中没有依赖关系的第一分片数据的任务和第二分片数据的任务,第一计算单元在执行第一分片数据的计算任务时,可以并行执行第二分片数据的通信任务。这样,可以将通信任务隐藏在计算任务中,实现通信隐藏,提高计算任务和通信任务的并行度,减少整体通信耗时。

3、在一种可能的实现方式中,将基于至少两个并行的embedding层中每个embedding层所处理的数据类型对分布式计算任务对应的输入数据进行切分得到的。其中,数据类型可以包括长序列数据、短序列数据以及中长序列,不同embedding层所处理的数据类型不同,一种数据类型对应一个分片数据。通过该方式,从输入数据切分出与每个embedding层对应的分片数据。其中,ai模型可以为推荐模型,输入为用户行为序列。

4、在一种可能的实现方式中,计算任务可以包括第一计算任务和第二计算任务,在该方式中,第一计算任务、通信任务和第二计算任务依次串行执行。其中,第一计算任务是指基于分片数据以及该分片数据对应的embedding层计算获得embedding向量、第二计算任务是指基于embedding向量、通信任务对应的通信结果以及获得embedding向量所使用的embedding层对应的专家层获得目标向量。通信结果是由第一计算单元基于embedding向量与第二计算单元执行通信任务获得的。

5、在一种可能的实现方式中,第一计算单元执行至少两个分片数据对应的任务,包括:第一计算单元获取任务调度策略,该任务调度策略包括可并行执行的第一分片数据对应的计算任务以及第二分片数据对应的通信任务;第一计算单元在执行第一分片数据对应的计算任务时,按照任务调度策略并行执行第二分片数的通信任务。其中,任务调度策略指示较优的任务调度方案,基于该任务调度策略可以提高任务处理效率。

6、其中,第一计算单元可以通过以下方式获取任务调度策略:第一计算单元获取至少两个分片数据对应的可执行的任务调度方案,该任务调度方案至少两个分片数各自对应任务的任务调度顺序;针对任一任务调度方案,第一计算单元按照任务调度方案对至少两个分片数据对应的任务进行处理,获得该任务调度方案对应的任务执行总时间;第一计算单元将任务执行总时间小于第一阈值的任务调度方案作为任务调度策略。在该实现方式中,将耗时最短的任务调度方案作为任务调度策略,提高任务处理效率。

7、在一种可能的实现方式中,第一计算单元按照任务调度方案对至少两个分片数据对应的任务进行处理,获得该任务调度方案对应的任务执行总时间,包括:第一计算单元按照该任务调度方案执行第三分片数据的第一计算任务,获得执行该第一计算任务对应的第一计算时间;第一计算单元并行执行第三分片数据对应的通信任务以及第四分片数据的第一计算任务,获得执行该通信任务对应的第一通信时间以及执行该第一计算任务对应的第二计算时间;第一计算单元并行执行第四分片数据对应的通信任务以及下一个分片数据的计算任务,获得执行该通信任务的第二通信时间以及执行该计算任务的第三计算时间,所述下一个分片数据的计算任务为第三分片数据的第二计算任务或其他分片数据对应的第一计算任务;按照所述任务调度方案依次类推,直至至少两个分片数据对应的所有任务执行完成,第一计算单元根据第一计算时间、第二计算时间、第三计算时间、第一通信时间以及第二通信时间获取一次迭代对应的任务执行总时间。

8、在本实施例中,第一计算单元在执行第一个任务调度方案时,可以记录每个任务对应的执行时间,为尽可能减少两个任务石之间的时间空洞,从第二次迭代开始,被执行的任务调度方案是指第一个被执行的第一计算任务的耗时小于第二阈值的任务调度方案。通过该方式,可以仅执行部分任务调度方案(例如第一个被执行的第一计算任务耗时最短的任务调度方案),加速寻找最优任务调度方案。

9、在一种可能的实现方式中,为进一步加速寻找最优任务调度方案,在执行第一个任务调度方案时,可以使用记忆字典存储每个任务对应的处理时长,在确定其他任务调度方案对应的任务执行总时间时,可以基于该记忆字典所记录的时间信息确定,无需重复执行每个任务调度方案,避免重复处理。具体地,第i次迭代的任务调度方案对应的任务执行总时间是基于第1次迭代所记录的各个分片数据对应的第一计算任务、第二计算任务以及通信任务所使用的时间确定的。其中,i大于等于2。

10、第二方面,本技术提供了一种任务处理装置,所述装置应用于计算集群,该计算集群中的多个计算单元共同执行人工智能ai模型的分布式计算任务,该多个计算单元包括第一计算单元和第二计算单元,该ai模型包括至少两个并行的专家层以及至少两个并行的嵌入embedding层,专家层与embedding层一一对应。所述装置包括:获取模块,用于获取至少两个分片数据对应的任务,其中,该至少两个分片数据为基于至少两个并行的embedding层对分布式计算任务对应的输入数据切分获得的数据,每个分片数据对应的任务包括计算任务和通信任务,计算任务和通信任务之间存在串行执行关系;处理模块,用于执行至少两个分片数据对应的任务,其中,当在执行第一分片数据对应的计算任务时,还并行执行第二分片数据对应的通信任务。

11、在一种可能的实现方式中,该至少两个分片数据是基于至少两个并行的embedding层中每个embedding层所处理的数据类型对分布式计算任务对应的输入数据切分得到的,不同的embedding层所处理的数据类型不同,一种数据类型对应一个分片数据。

12、在一种可能的实现方式中,计算任务包括基于分片数据以及该分片数据对应的embedding层计算获得embedding向量的第一计算任务,和基于该embedding向量、通信任务对应的通信结果以及该embedding层对应的专家层计算获得目标向量的第二计算任务,通信结果是由第一计算单元基于embedding向量与第二计算单元执行所述通信任务获得的。

13、在一种可能的实现方式中,处理模块,具体用于获取任务调度策略,该任务调度策略包括可并行执行的第一分片数据对应的计算任务以及第二分片数据对应的通信任务;在执行第一分片数据对应的计算任务时,按照任务调度策略并行执行第二分片数据的通信任务。

14、在一种可能的实现方式中,所述处理模块,具体用于获取至少两个分片数据对应的可执行的任务调度方案,该任务调度方案指示所述至少两个分片数据各自对应任务的任务调度顺序;针对任一任务调度方案,按照任务调度方案对至少两个分片数据对应的任务进行处理,获得任务调度方案对应的任务执行总时间;将任务执行总时间小于第一阈值的任务调度方案作为任务调度策略。

15、在一种可能的实现方式中,所述处理模块,具体用于按照该任务调度方案执行第三分片数据的第一计算任务,获得执行第一计算任务对应的第一计算时间;并行执行第三分片数据对应的通信任务以及第四分片数据的第一计算任务,获得执行通信任务对应的第一通信时间以及执行第一计算任务对应的第二计算时间;并行执行第四分片数据对应的通信任务以及下一个分片数据的计算任务,获得执行通信任务的第二通信时间以及执行计算任务的第三计算时间,该下一个分片数据的计算任务为第三分片数据的第二计算任务或其他分片数据对应的第一计算任务;按照任务调度方案依次类推,直至该至少两个分片数据对应的所有任务执行完成,根据第一计算时间、第二计算时间、第三计算时间、第一通信时间以及第二通信时间获取一次迭代对应的任务执行总时间。

16、在一种可能的实现方式中,从第二次迭代开始,可执行的任务调度方案是指第一个被处理的第一计算任务的耗时小于第二阈值的任务调度方案。

17、在一种可能的实现方式中,第i次迭代的任务调度方案对应的任务执行总时间是基于第1次迭代所记录的各个分片数据对应第一计算任务、第二计算任务以及通信任务所使用的时间确定的,所述i大于或等于2。

18、在一种可能的实现方式中,所述ai模型为推荐模型,所述输入数据为用户行为序列。

19、第三方面,本技术提供一种计算单元,该计算单元包括处理器和存储器,该计算单元用于执行分布式计算任务。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得所述计算单元执行上述第一方面或第一方面的任一种实现方式中第一计算单元所执行的方法步骤。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。计算单元还可以包括总线。其中,处理器通过总线连接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。

20、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在至少一个计算单元上运行时,使得所述至少一个计算单元执行上述第一方面或第一方面的任一种实现方式所述的方法。

21、第五方面,本技术提供一种包含指令的计算机程序产品,当其在至少一个计算单元上运行时,使得至少一个计算单元执行上述第一方面或第一方面的任一种实现方式中所述的方法。

22、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。