技术新讯 > 计算推算,计数设备的制造及其应用技术 > 生成式对话模型推理方法、设备、介质及计算机程序产品与流程  >  正文

生成式对话模型推理方法、设备、介质及计算机程序产品与流程

  • 国知局
  • 2024-07-31 23:27:47

本发明涉及人工智能,特别涉及一种生成式对话模型推理方法、设备、介质及计算机程序产品。

背景技术:

1、在人工智能飞速发展的今天,各种大模型层出不穷,用于解决各种各样的问题,而参数量越多通常训练出的模型精度就越高,然而,参数量的增加同时也就意味着对ai(artificial intelligence,人工智能)芯片设备内存大小要求更高,很多ai芯片由于显存不够大而不能加载整个模型,这使得部分设备内存较小的芯片无法部署大模型的推理服务,极大限制了这些ai芯片的应用范围。

2、为了解决大模型的推理问题,一种方法是采用设备内存足够大的ai芯片,并且使用较小的batchsize(批量大小),使得大模型可以放置在一张卡上,但随着模型参数量的不断增长,一张卡可能也放不下,因此这种方案具有较大的局限性;另一种方案是对模型进行分割,把一个模型分割成多个小模型,分别加载到多张卡上,这种方案在目前主流的ai框架上都可以支持,比如pytorch, paddlepaddle等,通常通过各种并行方式,但是这些框架的推理性能和ai芯片的专有框架的性能还差很多。而有一些框架,比如tvm(tensor virtualmachine,张量虚拟机)等,虽然有较高的性能,但还不支持对模型进行分割,特别是不能支持对一些通过循环执行叠加输出token(在自然语言处理中,指文本中最小的语义单元)的模型,tvm执行一次只能输出一个token,而再次执行时之前的状态已经丢失,不能在之前的状态下继续生成token,因此无法使用。

3、综上,如何提供一种适用范围更广的模型推理方案是目前有待解决的问题。

技术实现思路

1、有鉴于此,本发明的目的在于提供一种生成式对话模型推理方法、设备、介质及计算机程序产品,能够提供一种适用范围更广的模型推理方案。其具体方案如下:

2、第一方面,本发明公开了一种生成式对话模型推理方法,包括:

3、根据生成式对话模型的模型结构确定出键矩阵和值矩阵的各个输出位置;

4、基于所述输出位置对所述生成式对话模型进行分割,得到分割后的多个模型块,并对每一所述模型块输出的键矩阵和值矩形作为中间状态值进行保存;

5、将各所述模型块部署至目标芯片,并在所述目标芯片上按照所述生成式对话模型的先后分割顺序依次对各所述模型块进行推理,直到满足预设停止条件后,完成所述生成式对话模型的推理;

6、其中,所述生成式对话模型的推理过程包括:将目标相邻模型块中的前一模型块的推理结果与对应中间状态值的叠加结果作为下一模型块的输入;所述目标相邻模型块包括第一类相邻模型块和第二类相邻模型块,第一类相邻模型块包括在任一次循环推理过程中基于所述先后分割顺序确定的两个相邻模型块,所述第二类相邻模型块包括任一次循环推理过程中的最后一个模型块和下一次循环推理过程中的第一个模型块。

7、可选的,所述基于所述输出位置对所述生成式对话模型进行分割,得到分割后的多个模型块,包括:

8、若所述生成式对话模型使用键值缓存技术,则基于键矩阵和值矩阵的每一输出位置对所述生成式对话模型进行分割,以得到分割后的多个模型块;

9、若所述生成式对话模型未使用键值缓存技术,则根据预设规则从键矩阵和值矩阵的各个输出位置中确定出目标输出位置,并利用所述目标输出位置对所述生成式对话模型进行分割,以得到分割后的多个模型块。

10、可选的,所述根据预设规则从键矩阵和值矩阵的各个输出位置中确定出目标输出位置,并利用所述目标输出位置对所述生成式对话模型进行分割,以得到分割后的多个模型块,包括:

11、若所述目标芯片的数量为多个,则根据所述目标芯片的数量确定出待分割模型块的数量;

12、基于所述待分割模型块的数量从键矩阵和值矩阵的各个输出位置中确定出相应数量个目标输出位置,并利用所述目标输出位置对所述生成式对话模型进行分割,以得到分割后的多个模型块。

13、可选的,所述目标输出位置用于对所述生成式对话模型进行平均分割;其中,推理各所述模型块的计算量相同或均处于预设计算量范围。

14、可选的,所述根据预设规则从键矩阵和值矩阵的各个输出位置中确定出目标输出位置,并利用所述目标输出位置对所述生成式对话模型进行分割,以得到分割后的多个模型块,包括:

15、若所述目标芯片的数量为一个,则确定所述目标芯片支持的最大计算量;

16、基于所述最大计算量从键矩阵和值矩阵的各个输出位置中确定出相应数量个目标输出位置,并利用所述目标输出位置对所述生成式对话模型进行分割,以得到分割后的多个模型块;其中,推理每一所述模型块的计算量不超过所述最大计算量。

17、可选的,所述对每一所述模型块输出的键矩阵和值矩形作为中间状态值进行保存,包括:

18、确定预先设置的缓存空间;其中,所述缓存空间为主机内存或所述目标芯片的设备内存;

19、在所述缓存空间中对每一所述模型块输出的键矩阵和值矩形作为中间状态值进行保存。

20、可选的,所述生成式对话模型推理方法,还包括:

21、利用目标线程将所述缓存空间中的所述中间状态值保存至硬盘进行备份处理,以便在发生预设故障事件后,利用所述硬盘中的存储的数据进行恢复。

22、可选的,所述对每一所述模型块输出的键矩阵和值矩形作为中间状态值进行保存,包括:

23、若所述生成式对话模型使用键值缓存技术,则针对任一模型块,将所述任一模型块输出的键矩阵和值矩形以及所述任一模型块之前的所有模型块输出的键矩阵和值矩形的叠加结果作为中间状态值进行保存;

24、若所述生成式对话模型未使用键值缓存技术,则对每一所述模型块输出的键矩阵和值矩形作为中间状态值分别进行保存;

25、相应的,所述将各所述模型块部署至目标芯片,并在所述目标芯片上按照所述生成式对话模型的先后分割顺序依次对各所述模型块进行推理的过程中,还包括:

26、在所述生成式对话模型使用键值缓存技术,或所述生成式对话模型未使用键值缓存技术的情况下,均对各所述模型块输出的查询矩阵进行保存。

27、可选的,所述预设停止条件为所述生成式对话模型输出的token的总累计数量达到预设最大值或所述生成式对话模型输出的token为结束符。

28、可选的,所述将各所述模型块部署至目标芯片,并在所述目标芯片上按照所述生成式对话模型的先后分割顺序依次对各所述模型块进行推理,包括:

29、将各所述模型块部署至多个目标芯片,并根据所述生成式对话模型的先后分割顺序确定各所述模型块之间的推理顺序;其中,所述目标芯片的数量与所述模型块的数量相同;

30、在获取到推理请求后,按照所述推理顺序依次对各所述模型块进行推理;其中,每一所述目标芯片的内部维护有等待队列,所述等待队列用于存储上一模型块的输出结果,当所述目标芯片检测到本地等待队列中存在上一模型块的输出结果时,则基于所述输出结果对本地的模型块进行推理。

31、可选的,若所述目标芯片的数量为单个,所述将各所述模型块部署至目标芯片,并在所述目标芯片上按照所述生成式对话模型的先后分割顺序依次对各所述模型块进行推理,包括:

32、将各所述模型块部署至目标芯片,并根据所述生成式对话模型的先后分割顺序确定各所述模型块之间的推理顺序;

33、在获取到推理请求后,按照所述推理顺序在所述目标芯片上依次加载、推理和卸载各个所述模型块,以完成对所有所述模型块的推理。

34、可选的,所述按照所述推理顺序在所述目标芯片上依次加载、推理和卸载各个所述模型块的过程中,还包括:

35、在所述目标芯片上加载当前模型块,在所述当前模型块推理完成后则卸载所述当前模型块,然后按照所述推理顺序在所述目标芯片上加载对应的下一模型块,以对所述下一模型块进行推理。

36、第二方面,本发明公开了一种电子设备,包括:

37、存储器,用于保存计算机程序;

38、处理器,用于执行所述计算机程序,以实现前述公开的生成式对话模型推理方法的步骤。

39、第三方面,本发明公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的生成式对话模型推理方法的步骤。

40、第四方面,本发明公开了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现前述公开的生成式对话模型推理方法的步骤。

41、可见,本发明公开了一种生成式对话模型推理方法,包括:根据生成式对话模型的模型结构确定出键矩阵和值矩阵的各个输出位置;基于所述输出位置对所述生成式对话模型进行分割,得到分割后的多个模型块,并对每一所述模型块输出的键矩阵和值矩形作为中间状态值进行保存;将各所述模型块部署至目标芯片,并在所述目标芯片上按照所述生成式对话模型的先后分割顺序依次对各所述模型块进行推理,直到满足预设停止条件后,完成所述生成式对话模型的推理;其中,所述生成式对话模型的推理过程包括:将目标相邻模型块中的前一模型块的推理结果与对应中间状态值的叠加结果作为下一模型块的输入;所述目标相邻模型块包括第一类相邻模型块和第二类相邻模型块,第一类相邻模型块包括在任一次循环推理过程中基于所述先后分割顺序确定的两个相邻模型块,所述第二类相邻模型块包括任一次循环推理过程中的最后一个模型块和下一次循环推理过程中的第一个模型块。

42、有益效果:本发明是根据生成式对话模型中键矩阵和值矩阵的输出位置对生成式对话模型进行分割,并且同时对各模型块输出的键矩阵和值矩形作为中间状态值进行保存,也即本发明提供了一种将键矩阵和值矩阵的输出位置作为分界点对以模型进行分割的方法,并通过缓存中间状态值的方式以提高模型的推理速度,且分割和缓存可以在同一个步骤进行执行,更加便利。进一步,本发明将各模型块部署至目标芯片,并在目标芯片上按照生成式对话模型的先后分割顺序依次对各模型块进行推理,直到满足预设停止条件后,完成生成式对话模型的推理,通过分割大模型的方式,能够达到对大模型在设备内存不大的芯片上进行推理的需求,并且,本实施例中的目标芯片可以为单个也可以为多个,使得模型推理过程不受目标芯片数量的限制,适用范围更广。在具体的模型推理过程中,是将目标相邻模型块中的前一模型块的推理结果与对应中间状态值的叠加结果作为下一模型块的输入,目标相邻模型块包括第一类相邻模型块和第二类相邻模型块,其中第一类相邻模型块指的是任一次循环推理过程中基于先后分割顺序确定的两个相邻模型块,第二类相邻模型块指的是任一次循环推理过程中的最后一个模型块和下一次循环推理过程中的第一个模型块,如此一来,使得本方案也可适用于通过循环执行叠加输出最终结果的网络模型。

本文地址:https://www.jishuxx.com/zhuanli/20240730/197699.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。