一种自然语言处理模型的流水线并行训练方法、系统、终端及存储介质

文档序号:39099568发布日期:2024-08-21 11:24阅读:25来源:国知局
一种自然语言处理模型的流水线并行训练方法、系统、终端及存储介质

本技术涉及自然语言处理,特别是涉及一种自然语言处理模型的流水线并行训练方法、系统、终端及存储介质。


背景技术:

1、自然语言处理模型为自然语言处理领域的深度神经网络模型,其主要用于实现语言翻译、问题回答等功能。自然语言处理模型训练需要将数据按照批次输入到模型中进行计算,然后根据计算结果更新模型的参数,这一过程将迭代进行,直到模型在实际任务上达到预期的效果,比如,翻译的语言更加准确、回答问题更加合理。大型模型通过提高模型的参数量以及训练过程中使用的数据量,使得模型在实际任务上的效果更优异。大型模型所使用的大量参数配合大量数据的训练模式,使得大型模型的训练成为一项非常耗时的工作。

2、目前,使用分布式训练方法来训练大型模型已经成为共识。分布式训练方法可以利用多个机器上的计算设备进行大型模型的训练,满足模型训练对计算能力以及存储能力的需求。流水线并行方法是常用的分布式训练方法之一,但是对于大型自然语言处理模型使用多个机器上的计算设备训练的场景,现有流水线并行方法的加速效果一般。

3、因此,如何提高自然语言处理模型的流水线并行训练效率,是本领域技术人员亟待解决的技术问题。


技术实现思路

1、为解决上述技术问题,本技术提供一种自然语言处理模型的流水线并行训练方法,能够提高自然语言处理模型的流水线并行训练效率。本技术还提供一种自然语言处理模型的流水线并行训练系统、终端及存储介质,具有相同的技术效果。

2、本技术的第一个目的为提供一种自然语言处理模型的流水线并行训练方法。

3、本技术的上述申请目的一是通过以下技术方案得以实现的:

4、一种自然语言处理模型的流水线并行训练方法,包括:

5、将自然语言处理模型中的各单层模型划分为自注意力模块和前向神经网络模块,并对所述自然语言处理模型进行预训练,以得到各个所述自注意力模块的计算时间和各个所述前向神经网络模块的计算时间;

6、按照不同的网络层划分方式,将所述自然语言处理模型中的多个网络层划分为n份网络层,以得到所述自然语言处理模型的多个模型划分方案;

7、根据多个所述模型划分方案、各个所述自注意力模块的计算时间和各个所述前向神经网络模块的计算时间,进行模拟计算,得到每个所述模型划分方案所对应的流水线并行方法的迭代时间;

8、从多个所述模型划分方案中选取出最小的流水线并行方法的迭代时间所对应的模型划分方案,作为目标模型划分方案;

9、将所述目标模型划分方案所划分出的n份网络层,分配至n个计算设备中,并通过n个所述计算设备采用流水线并行方式,对所述自然语言处理模型进行迭代训练,得到训练好的自然语言处理模型。

10、优选地,所述自然语言处理模型的流水线并行训练方法中,所述自注意力模块包括依次连接的layer norm层,multihead self-attention层,dropout层和add层;所述前向神经网络模块包括依次连接的layer norm层,feed forward层,dropout层和add层。

11、优选地,所述自然语言处理模型的流水线并行训练方法中,所述按照不同的网络层划分方式,将所述自然语言处理模型中的多个网络层划分为n份网络层,以得到所述自然语言处理模型的多个模型划分方案,包括:

12、将所述自然语言处理模型中的多个网络层划分为n份网络层,得到一个基础模型划分方案;

13、根据所述基础模型划分方案,获取流水线的关键路径所在的流水级;

14、调整流水线的关键路径所在的流水级上的网络层数量,以得到调整后的模型划分方案;

15、根据所述调整后的模型划分方案,重新获取流水线的关键路径所在的流水级,并判断重新获取的流水线的关键路径所在的流水级,相较前一次调整前的流水线的关键路径所在的流水级而言,是否保持不变或者向更低的流水级移动,若是,则将所述调整后的模型划分方案输出,然后返回重新执行所述调整关键路径所在的流水级上的网络层数量,以得到调整后的模型划分方案的步骤。

16、优选地,所述自然语言处理模型的流水线并行训练方法中,所述根据多个所述模型划分方案、各个所述自注意力模块的计算时间和各个所述前向神经网络模块的计算时间,进行模拟计算,得到每个所述模型划分方案所对应的流水线并行方法的迭代时间,包括:

17、根据各个所述模型划分方案,将各个所述模型划分方案所对应的各个流水级上微批次的前向计算、后向计算视为一个基本块,并为各个基本块进行编号,得到各个所述模型划分方案对应的编号后的基本块;

18、根据各个所述模型划分方案对应的编号后的基本块,各个所述模型划分方案所对应的各个流水级上微批次的前向计算时间和后向计算时间,以及各个所述自注意力模块的计算时间和各个所述前向神经网络模块的计算时间,利用动态规划算法对流水线的迭代时间进行模拟,得到每个所述模型划分方案所对应的流水线并行方法的迭代时间。

19、优选地,所述自然语言处理模型的流水线并行训练方法中,所述从多个所述模型划分方案中选取出最小的流水线并行方法的迭代时间所对应的模型划分方案,作为目标模型划分方案之后,还包括:

20、从0开始以1为增量,不断增加流水线启动阶段的切分微批次数量,每次切分微批次数量增加后,在最后一个流水级放置一个未切分的微批次,根据所述目标模型划分方案、各个所述自注意力模块的计算时间和各个所述前向神经网络模块的计算时间,以及第一个微批次在最后一个流水级的结束时间,按照最后一个流水级到第一个流水级的顺序,反推出该未切分的微批次在第一个流水级的最迟开始时间,判断所述最迟开始时间是否大于或等于当前第一个流水级的最后一个微批次的结束时间,当所述最迟开始时间大于或等于当前第一个流水级的最后一个微批次的结束时间时,停止增加切分微批次数量的过程,得到需要切分的微批次数量s。

21、优选地,所述自然语言处理模型的流水线并行训练方法中,所述通过n个所述计算设备采用流水线并行方式,对所述自然语言处理模型进行迭代训练,得到训练好的自然语言处理模型,包括:

22、获取当前迭代训练过程所需的训练数据,并将所述训练数据等分为m个微批次的训练数据,通过n个所述计算设备对m个所述微批次的训练数据采用流水线并行方式进行前向计算、后向计算和通信,以完成所述自然语言处理模型当前轮次的迭代训练,重复上述迭代训练步骤,直到满足预设迭代终止条件时,得到训练好的自然语言处理模型;

23、其中,在每次迭代训练过程中,将得到的m个所述微批次的训练数据,依次输入到第一个流水级对应的计算设备,且对于m个所述微批次的训练数据中的前s个微批次的训练数据,将前s个微批次的训练数据中的每个微批次的训练数据,在微批次大小维度均分为两份训练数据,依次输入到第一个流水级对应的计算设备,第一个流水级对应的计算设备在完成第一份训练数据的计算后,将中间结果通信给下一个流水级所对应的计算设备,然后再开始第二份训练数据的计算,在完成第二份训练数据的计算后,将中间结果通信给下一个流水级所对应的计算设备,直到前s个微批次的训练数据处理完成。

24、优选地,所述自然语言处理模型的流水线并行训练方法中,在前s个微批次的训练数据的流水级处理过程中,各个流水级所对应的计算设备,在接收到前一流水级所对应的计算设备传递的中间结果时,如果当前计算设备所在的流水级已经进行过后向计算,则对中间结果进行存储,当接收到前s个微批次的训练数据中的某个微批次的训练数据切分后的两份训练数据所对应的两个中间结果后,再开始计算过程。

25、本技术的第二个目的为提供一种自然语言处理模型的流水线并行训练系统。

26、本技术的上述申请目的二是通过以下技术方案得以实现的:

27、一种自然语言处理模型的流水线并行训练系统,包括:

28、训练单元,用于将自然语言处理模型中的各单层模型划分为自注意力模块和前向神经网络模块,并对所述自然语言处理模型进行预训练,以得到各个所述自注意力模块的计算时间和各个所述前向神经网络模块的计算时间;

29、划分单元,用于按照不同的网络层划分方式,将所述自然语言处理模型中的多个网络层划分为n份网络层,以得到所述自然语言处理模型的多个模型划分方案;

30、模拟单元,用于根据多个所述模型划分方案、各个所述自注意力模块的计算时间和各个所述前向神经网络模块的计算时间,进行模拟计算,得到每个所述模型划分方案所对应的流水线并行方法的迭代时间;

31、选取单元,用于从多个所述模型划分方案中选取出最小的流水线并行方法的迭代时间所对应的模型划分方案,作为目标模型划分方案;

32、所述训练单元,还用于将所述目标模型划分方案所划分出的n份网络层,分配至n个计算设备中,并通过n个所述计算设备采用流水线并行方式,对所述自然语言处理模型进行迭代训练,得到训练好的自然语言处理模型。

33、本技术的第三个目的为提供一种自然语言处理模型的流水线并行训练终端。

34、本技术的上述申请目的三是通过以下技术方案得以实现的:

35、一种自然语言处理模型的流水线并行训练终端,包括:存储介质和处理器;

36、所述存储介质内存储计算机执行指令;

37、所述处理器执行所述存储介质存储的计算机执行指令,以实现如上述任一所述的自然语言处理模型的流水线并行训练方法。

38、本技术的第四个目的为提供一种计算机可读存储介质。

39、本技术的上述申请目的四是通过以下技术方案得以实现的:

40、一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述任一所述的自然语言处理模型的流水线并行训练方法。

41、上述技术方案,将自然语言处理模型中的各单层模型划分为自注意力模块和前向神经网络模块,并对自然语言处理模型进行预训练,以得到各个自注意力模块的计算时间和各个前向神经网络模块的计算时间,以此将模型划分的粒度从层级别细化到子层级别,这一粒度可以让各个流水级之间的计算时间差异更小,可以提高后续流水线划分的效率;进一步,按照不同的网络层划分方式,将自然语言处理模型中的多个网络层划分为n份网络层,以得到自然语言处理模型的多个模型划分方案;根据多个模型划分方案、各个自注意力模块的计算时间和各个前向神经网络模块的计算时间,进行模拟计算,得到每个模型划分方案所对应的流水线并行方法的迭代时间;从多个模型划分方案中选取出最小的流水线并行方法的迭代时间所对应的模型划分方案,作为目标模型划分方案,以此从多个模型划分方案中选出最优的模型划分方案,有利于提高后续流水线并行方法的计算效率;最后,将目标模型划分方案所划分出的n份网络层,分配至n个计算设备中,并通过n个计算设备采用流水线并行方式,对自然语言处理模型进行迭代训练,得到训练好的自然语言处理模型,以此减少自然语言处理模型训练的计算时间。综上可知,上述技术方案能够提高自然语言处理模型的流水线并行训练效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1