大语言模型解码阶段的数据调度方法和装置

专利检索2025-03-03  19


本公开涉及人工智能领域,尤其涉及一种大语言模型解码阶段的数据调度方法和装置。


背景技术:

1、随着人工智能技术的不断演进,大语言模型(llm)已经在部分场景领域中表现出了强大的推理能力,且与以往的卷积神经网络模型(cnn)等小模型不同,llm参数量大与计算复杂的特性对目前的加速器平台提出了新的挑战。在llm相关技术中,推理通常要经过预填充(prefill)与解码(decode)两个阶段。其中,解码阶段是llm将学到的信息应用到具体的任务中并生成相应输出的阶段,其阶段内通常有多个attention(注意力)层与ffn(前馈网络)层级联,层内存在多种算子,如:mv(矩阵向量乘)、layernorm(层归一化)、非线性激活等。在该阶段中,每一层的输入与输出一般为阶数等同的单一激活向量,该激活向量的数据量小,解码阶段频繁的访问片外存储器以获取小数据量的中间数据与激活向量将降低整体的推理效率。


技术实现思路

1、有鉴于此,本公开提出了一种大语言模型解码阶段的数据调度方法和装置,旨在提高加速器片的推理效率。

2、根据本公开的第一方面,提供了一种大语言模型解码阶段的数据调度方法,所述方法包括:

3、确定大语言模型解码阶段的至少一个数据操作,每个所述数据操作包括多个按顺序执行的操作步骤;

4、对所述至少一个数据操作进行操作融合得到操作组合,所述操作组合中包括n个按顺序执行的数据操作,其中n为大于或等于2的整数;

5、在所述解码阶段,获取输入激活向量并基于输入激活向量按顺序执行所述操作组合中的n个数据操作,其中执行所述n个数据操作包括:

6、响应于执行第一个到第n-1个所述数据操作,完成每一次操作步骤后得到对应的中间激活向量,并在所述大语言模型的加速器上的片上缓存区域中存储所述中间激活向量;

7、响应于执行第n个所述数据操作,得到对应的输出激活向量。

8、在一种可能的实现方式中,所述按顺序执行所述操作组合中的n个数据操作,还包括:

9、响应于执行第一个数据操作,按顺序依次对输入的激活向量执行所述数据操作的操作步骤,在完成每一次操作步骤后得到对应的中间激活向量作为下一个数据操作输入的激活向量,并将所述中间激活向量存储至所述片上缓存区域。

10、在一种可能的实现方式中,所述按顺序执行所述操作组合中的n个数据操作,还包括:

11、响应于执行第i个数据操作,2≤i≤n,从所述片上缓存区域内获取第i-1个数据操作对应的中间激活向量,确定每个所述操作步骤的输入向量;

12、在完成每一次操作步骤后得到对应的中间激活向量,并将所述中间激活向量存储至所述片上缓存区域。

13、在一种可能的实现方式中,所述从所述片上缓存区域内获取第i-1个数据操作对应的中间激活向量,确定每个所述操作步骤的输入向量,包括:

14、响应于所述操作步骤为第i个数据操作中的第一个操作步骤,从所述片上缓存区域内获取第i-1个数据操作中的第一个操作步骤对应的中间激活向量,作为所述操作步骤对应的输入向量;

15、响应于所述操作步骤为所述第i个数据操作中的第j个操作步骤,j>1且为整数,从所述片上缓存区域内获取第i-1个所述数据操作中的第j个操作步骤对应的中间激活向量;

16、根据所述第i个数据操作中第j-1个操作步骤对应的中间激活向量,和第i-1个数据操作中第j个操作步骤对应的中间激活向量,共同确定所述第j个操作步骤对应的输入向量。

17、在一种可能的实现方式中,还包括:在所述n大于2的情况下,划分所述片上缓存区域,得到分别用于存储所述操作组合中前n-1个数据操作产生的中间激活向量的n-1个子区域。

18、在一种可能的实现方式中,所述加速器片上还包括临时缓存区域;

19、在所述大语言模型的加速器上的片上缓存区域中存储所述中间激活向量还包括:

20、判断在所述片上缓存区域中对应的子区域内是否存在能够用于存储所述中间激活向量的存储空间;

21、响应于对应的子区域内存在存储空间,直接将当前需要存储的中间激活向量存储至对应的子区域;

22、响应于对应的子区域内不存在存储空间,将所述子区域内的一个或多个中间激活向量取出并存储至所述临时缓存区域,将当前需要存储的中间激活向量存储至对应的子区域。

23、在一种可能的实现方式中,所述输入激活向量从片外存储器中获取得到;

24、所述方法还包括:

25、将所述输出激活向量存储至所述片外存储器。

26、根据本公开的第二方面,提供了一种大语言模型解码阶段的数据调度装置,所述装置包括:

27、操作确定模块,用于确定大语言模型解码阶段的至少一个数据操作,每个所述数据操作包括多个按顺序执行的操作步骤;

28、操作融合模块,用于对所述至少一个数据操作进行操作融合得到操作组合,所述操作组合中包括n个按顺序执行的数据操作,其中n为大于或等于2的整数;

29、数据解码模块,用于在所述解码阶段,获取输入激活向量并基于输入激活向量按顺序执行所述操作组合中的n个数据操作,其中执行所述n个数据操作包括:

30、响应于执行第一个到第n-1个所述数据操作,完成每一次操作步骤后得到对应的中间激活向量,并在所述大语言模型的加速器上的片上缓存区域中存储所述中间激活向量;

31、响应于执行第n个所述数据操作,得到对应的输出激活向量。

32、在一种可能的实现方式中,所述数据解码模块,进一步用于:

33、响应于执行第一个数据操作,按顺序依次对输入的激活向量执行所述数据操作的操作步骤,在完成每一次操作步骤后得到对应的中间激活向量作为下一个数据操作输入的激活向量,并将所述中间激活向量存储至所述片上缓存区域。

34、在一种可能的实现方式中,所述数据解码模块,进一步用于:

35、响应于执行第i个数据操作,2≤i≤n,从所述片上缓存区域内获取第i-1个数据操作对应的中间激活向量,确定每个所述操作步骤的输入向量;

36、在完成每一次操作步骤后得到对应的中间激活向量,并将所述中间激活向量存储至所述片上缓存区域。

37、在一种可能的实现方式中,所述数据解码模块,进一步用于:

38、响应于所述操作步骤为第i个数据操作中的第一个操作步骤,从所述片上缓存区域内获取第i-1个数据操作中的第一个操作步骤对应的中间激活向量,作为所述操作步骤对应的输入向量;

39、响应于所述操作步骤为所述第i个数据操作中的第j个操作步骤,j>1且为整数,从所述片上缓存区域内获取第i-1个所述数据操作中的第j个操作步骤对应的中间激活向量;

40、根据所述第i个数据操作中第j-1个操作步骤对应的中间激活向量,和第i-1个数据操作中第j个操作步骤对应的中间激活向量,共同确定所述第j个操作步骤对应的输入向量。

41、在一种可能的实现方式中,还包括:区域划分模块,用于在所述n大于2的情况下,划分所述片上缓存区域,得到分别用于存储所述操作组合中前n-1个数据操作产生的中间激活向量的n-1个子区域。

42、在一种可能的实现方式中,所述加速器片上还包括临时缓存区域;

43、所述数据解码模块,进一步用于:

44、判断在所述片上缓存区域中对应的子区域内是否存在能够用于存储所述中间激活向量的存储空间;

45、响应于对应的子区域内存在存储空间,直接将当前需要存储的中间激活向量存储至对应的子区域;

46、响应于对应的子区域内不存在存储空间,将所述子区域内的一个或多个中间激活向量取出并存储至所述临时缓存区域,将当前需要存储的中间激活向量存储至对应的子区域。

47、在一种可能的实现方式中,所述输入激活向量从片外存储器中获取得到;

48、所述装置还包括:

49、数据存储模块,用于将所述输出激活向量存储至所述片外存储器。

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

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

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

53、在本公开实施例中,确定大语言模型解码阶段的至少一个数据操作,并在其所在的加速器片上分配片上缓存区域。对至少一个数据操作进行操作融合得到包括n个按顺序执行的数据操作的操作组合,在解码阶段获取输入激活向量并基于输入激活向量按顺序执行操作组合中的数据操作。其中,在执行第一个到第n-1个数据操作时,完成每一次操作步骤后得到对应的中间激活向量,并通过片上缓存区域存储所述中间激活向量。在执行第n个数据操作时得到对应的输出激活向量。本公开可以通过在加速器片上开辟片上缓存区域存储解码阶段的中间参数,避免多次进行片外数据存储和读写,有效利用计算与带宽资源提高加速器的推理效率。


技术特征:

1.一种大语言模型解码阶段的数据调度方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述按顺序执行所述操作组合中的n个数据操作,还包括:

3.根据权利要求1或2所述的方法,其特征在于,所述按顺序执行所述操作组合中的n个数据操作,还包括:

4.根据权利要求3所述的方法,其特征在于,所述从所述片上缓存区域内获取第i-1个数据操作对应的中间激活向量,确定每个所述操作步骤的输入向量,包括:

5.根据权利要求1所述的方法,其特征在于,还包括:在所述n大于2的情况下,划分所述片上缓存区域,得到分别用于存储所述操作组合中前n-1个数据操作产生的中间激活向量的n-1个子区域。

6.根据权利要求5所述的方法,其特征在于,所述加速器片上还包括临时缓存区域;

7.根据权利要求1或2所述的方法,其特征在于,所述输入激活向量从片外存储器中获取得到;

8.一种大语言模型解码阶段的数据调度装置,其特征在于,所述装置包括:

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

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


技术总结
本公开涉及人工智能领域,尤其涉及一种大语言模型解码阶段的数据调度方法和装置,确定大语言模型解码阶段的至少一个数据操作,并在加速器片上分配片上缓存区域。对至少一个数据操作进行操作融合得到包括N个按顺序执行的数据操作的操作组合,在解码阶段获取输入激活向量以按顺序执行操作组合中的数据操作。其中,在执行第一个到第N‑1个数据操作时,完成每一次操作步骤后得到对应的中间激活向量,并通过片上缓存区域存储所述中间激活向量。在执行第N个数据操作时得到对应的输出激活向量。本公开可以通过在加速器片上开辟片上缓存区域存储解码阶段的中间参数,避免多次进行片外数据存储,有效利用计算与带宽资源提高加速器的推理效率。

技术研发人员:汪玉,杨昕昊,王鸿懿,杨华中
受保护的技术使用者:清华大学
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1150653.html

最新回复(0)