预训练大语言模型的微调方法和装置

专利2026-03-02  6


本公开涉及计算机,尤其涉及一种预训练大语言模型的微调方法和装置。


背景技术:

1、大语言模型在有广泛应用,为了实现个性化,让每个用户都能有自己专属的大模型,微调技术非常重要。微调是根据用户提供的数据,在预训练大模型的参数基础上,进一步更新参数,让大模型学习到新引入数据的特性。为了防止微调过程破坏预训练模型原有能力,同时为了降低微调的计算量,现有微调方案一般采用参数高效的微调方法:保持大部分参数冻结不变,仅通过训练更新少部分的参数。这样的方法可以保持预训练模型的原有能力同时,增加其在新引入数据对应的垂直领域的能力。微调需要高效的计算,因为需要在不断产生的数据上持续微调模型,同时也会有来自很多用户的微调需求,而且在微调过程中需要尝试多种预训练模型与超参数来提高微调结果的质量。而在加速器(例如gpu)上微调的性能瓶颈在于对参数的获取:要训练大模型,由于单个加速器内存容量的限制,参数会被分布式地存储在多个加速器上;在计算过程中,每个加速器需要调用all-gather从其他加速器获取全部模型参数才能完成计算。由于加速器之间通信带宽有限,因模型参数产生的通信操作成为了性能的瓶颈。


技术实现思路

1、有鉴于此,本公开提出了一种预训练大语言模型的微调方法和装置,旨在提高大语言模型训练过程中的通信效率。

2、根据本公开的第一方面,提供了一种预训练大语言模型的微调方法,用于对大语言模型进行微调的加速器,所述方法包括:

3、确定大语言模型训练过程中的至少一个迭代处理过程,每个所述迭代处理过程对应至少一个算子,所述大语言模型为经过预训练的模型;

4、对于每个所述迭代处理过程,接收其他加速器内存储的、该迭代处理过程每个对应算子的参数并完成第一次迭代处理,生成/消耗每个所述算子对应的激活向量;

5、在完成第一次迭代处理后,确定所述第一次迭代处理对应的内存信息;

6、根据所述内存信息调整用于对大语言模型进行微调的所述加速器上的内存空间,所述加速器的内存空间包括激活向量空间和所述激活向量空间以外的参数空间;

7、将每个所述算子对应的激活向量存储在所述激活向量空间;

8、将每个所述算子的参数存储至所述参数空间,并基于所述参数空间中的参数完成所述迭代处理过程。

9、在一种可能的实现方式中,所述确定所述第一次迭代处理对应的内存信息,包括:

10、确定每个所述算子产生的激活向量对应的内存量;

11、确定所述激活向量对应内存用量的变化趋势;

12、根据所述内存量和内存变化趋势确定对应的内存信息。

13、在一种可能的实现方式中,所述根据所述内存信息调整用于对大语言模型进行微调的所述加速器上的内存空间,包括:

14、通过调整所述内存空间中存储所述激活向量的batch size维度,调整每个所述算子对应激活向量的内存量,其中,调整趋势由所述加速器中内存空间的当前内存总量确定;

15、判断每个所述算子对应的激活向量是否需要保存,并根据需要保存的激活向量对应的内存量,调整所述内存空间中的激活向量空间。

16、在一种可能的实现方式中,所述参数包括本地参数和其他加速器发送的远程参数,所述参数空间包括静态缓存空间和动态缓存空间,所述静态缓存空间中用于存储本地参数,所述动态缓存空间用于存储其他加速器发送的远程参数。

17、在一种可能的实现方式中,所述将每个所述算子的参数存储至所述参数空间,包括:

18、将其他加速器发送的远程参数中的至少部分存储在所述动态缓存空间。

19、在一种可能的实现方式中,所述根据所述内存信息调整用于对大语言模型进行微调的所述加速器上的内存空间,包括:

20、响应于所述变化趋势为内存用量增加,保持所述内存空间中静态缓存空间的分配,减少所述内存空间中动态缓存空间的分配,增大所述内存空间中激活向量空间的分配;

21、响应于所述变化趋势为内存用量下降,保持所述内存空间中静态缓存空间的分配,减少所述内存空间中激活向量空间的分配,增大所述内存空间中动态缓存空间的分配。

22、在一种可能的实现方式中,所述方法还包括:

23、响应于减小所述内存空间中动态缓存空间的分配,释放所述动态缓存空间中存储的部分远程参数。

24、根据本公开的第二方面,提供了一种预训练大语言模型的微调装置,用于对大语言模型进行微调的加速器,所述装置包括:

25、信息确定模块,用于确定大语言模型训练过程中的至少一个迭代处理过程,每个所述迭代处理过程对应至少一个算子,所述大语言模型为经过预训练的模型;

26、数据处理模块,用于对于每个所述迭代处理过程,接收其他加速器内存储的、该迭代处理过程每个对应算子的参数并完成第一次迭代处理,生成/消耗每个所述算子对应的激活向量;

27、内存检测模块,用于在完成第一次迭代处理后,确定所述第一次迭代处理对应的内存信息;

28、内存变换模块,用于根据所述内存信息调整用于对大语言模型进行微调的所述加速器上的内存空间,所述加速器的内存空间包括激活向量空间和所述激活向量空间以外的参数空间;

29、向量存储模块,用于将每个所述算子对应的激活向量存储在所述激活向量空间;

30、参数存储模块,用于将每个所述算子的参数存储至所述参数空间,并基于所述参数空间中的参数完成所述迭代处理过程。

31、在一种可能的实现方式中,所述内存检测模块,进一步用于:

32、确定每个所述算子产生的激活向量对应的内存量;

33、确定所述激活向量对应内存用量的变化趋势;

34、根据所述内存量和内存变化趋势确定对应的内存信息。

35、在一种可能的实现方式中,所述内存变换模块,进一步用于:

36、通过调整所述内存空间中存储所述激活向量的batch size维度,调整每个所述算子对应激活向量的内存量,其中,调整趋势由所述加速器中内存空间的当前内存总量确定;

37、判断每个所述算子对应的激活向量是否需要保存,并根据需要保存的激活向量对应的内存量,调整所述内存空间中的激活向量空间。

38、在一种可能的实现方式中,所述参数包括本地参数和其他加速器发送的远程参数,所述参数空间包括静态缓存空间和动态缓存空间,所述静态缓存空间中用于存储本地参数,所述动态缓存空间用于存储其他加速器发送的远程参数。

39、在一种可能的实现方式中,所述参数存储模块,进一步用于:

40、将其他加速器发送的远程参数中的至少部分存储在所述动态缓存空间。

41、在一种可能的实现方式中,所述内存变换模块,进一步用于:

42、响应于所述变化趋势为内存用量增加,保持所述内存空间中静态缓存空间的分配,减少所述内存空间中动态缓存空间的分配,增大所述内存空间中激活向量空间的分配;

43、响应于所述变化趋势为内存用量下降,保持所述内存空间中静态缓存空间的分配,减少所述内存空间中激活向量空间的分配,增大所述内存空间中动态缓存空间的分配。

44、在一种可能的实现方式中,所述装置还包括:

45、参数释放模块,用于响应于减小所述内存空间中动态缓存空间的分配,释放所述动态缓存空间中存储的部分远程参数。

46、根据本公开的第三方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。

47、根据本公开的第四方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。

48、根据本公开的第五方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。

49、在本公开实施例中,确定大语言模型训练过程中的至少一个具有对应算子的迭代处理过程,在每个迭代过程开始时接收其他加速器内存储的每个对应算子的参数并完成第一次迭代处理,生成/消耗每个算子对应的激活向量。然后再确定第一次迭代处理对应的内存信息以调整大语言模型对应加速器上包括激活向量空间和激活向量空间以外的参数空间的内存空间。将每个算子对应的激活向量存储在激活向量空间,对应得到参数存储至参数空间,并基于参数空间中的参数完成后续的迭代处理过程。本公开在大语言模型的训练过程中自动调节加速器的内存用量并自动缓存需要用到的参数,以通过参数复用减少通信开销,提高整体的吞吐量。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。


技术特征:

1.一种预训练大语言模型的微调方法,其特征在于,用于对大语言模型进行微调的加速器,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述确定所述第一次迭代处理对应的内存信息,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述根据所述内存信息调整用于对大语言模型进行微调的所述加速器上的内存空间,包括:

4.根据权利要求3所述的方法,其特征在于,所述参数包括本地参数和其他加速器发送的远程参数,所述参数空间包括静态缓存空间和动态缓存空间,所述静态缓存空间中用于存储本地参数,所述动态缓存空间用于存储其他加速器发送的远程参数。

5.根据权利要求4所述的方法,其特征在于,所述将每个所述算子的参数存储至所述参数空间,包括:

6.根据权利要求4或5所述的方法,其特征在于,所述根据所述内存信息调整用于对大语言模型进行微调的所述加速器上的内存空间,包括:

7.根据权利要求4-6中任意一项所述的方法,其特征在于,所述方法还包括:

8.一种预训练大语言模型的微调装置,其特征在于,用于对大语言模型进行微调的加速器,所述装置包括:

9.一种电子设备,其特征在于,包括:

10.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的方法。


技术总结
本公开涉及一种预训练大语言模型的微调方法和装置,确定大语言模型训练过程中的至少一个具有对应算子的迭代处理过程,在每个迭代过程开始时接收其他加速器内存储的每个对应算子的参数并完成第一次迭代处理,生成/消耗每个算子对应的激活向量。然后再确定第一次迭代处理对应的内存信息以调整大语言模型对应加速器上包括激活向量空间和激活向量空间以外的参数空间的内存空间。将每个算子对应的激活向量存储在激活向量空间,对应得到参数存储至参数空间,并基于参数空间中的参数完成后续的迭代处理过程。本公开在大语言模型的训练过程中自动调节加速器的内存用量并自动缓存需要用到的参数,以通过参数复用减少通信开销,提高整体的吞吐量。

技术研发人员:翟季冬,黄可钊
受保护的技术使用者:清华大学
技术研发日:
技术公布日:2024/6/26
转载请注明原文地址:https://doc.8miu.com/read-1828338.html

最新回复(0)