本技术涉及电数字数据处理,具体涉及一种大模型编译推理方法、设备及介质。
背景技术:
1、大语言模型应用上离不开模型的部署,对于流行的人工智能计算芯片,有很多的大模型推理框架可供选择来进行大模型的部署推理,但是对于新型的人工智能计算芯片,如果想要通过开源的大模型推理框架进行大模型的部署,需要大量的适配工作,涉及到驱动、运行时、算子库等的改写,工作量巨大,同时专业性特别强,需要投入大量的人力物力。
2、对于传统深度神经网络模型,可以使用ai编译器将神经网络编译为静态的数据流计算图,通过图编译器对计算图中的算子进行融合、优化,提高模型在特定硬件上的运行效率。而大模型往往包含海量参数,导致推理过程中计算量大、内存占用高,严重影响响应速度和可扩展性。
技术实现思路
1、为了解决上述问题,本技术提出了一种大模型编译推理方法,包括:
2、获取预编译的大模型;其中,所述大模型包括预填充模型和解码模型;
3、对所述预填充模型和所述解码模型中的输入token长度和数据缓冲区进行调整,得到调整后的大模型;
4、针对所述调整后的大模型,构建其对应的输入输出张量与数据缓冲区之间的依赖映射关系,并对所述调整后的大模型进行编译,得到编译后的大模型;
5、接收用户发送的问答请求,将所述问答请求对应的问题转换为输入token序列,并将所述输入token序列输入到所述编译后的大模型中;
6、基于所述编译后的大模型,根据调整后的所述输入token长度,降低预填充阶段中各向量对应的初次计算量,并根据所述依赖映射关系,分别通过所述预填充模型和所述解码模型对应的数据缓冲区获取历史批次中存储的指定向量,通过所述指定向量实现当前批次中注意力的计算,以实现对所述输入token序列的推理,得到输出token序列;
7、根据所述输出token序列,构建针对所述问题的答案。
8、在本技术的一种实现方式中,对所述预填充模型和所述解码模型中的输入token长度和数据缓冲区进行调整,具体包括:
9、获取所述大模型指定的输入token对应的最大输入长度,以及注意力范围对应的最大输出长度;
10、将所述预填充模型中的输入token长度由所述最大输出长度调整为所述最大输入长度,并将所述解码模型中的输入token长度由所述最大输出长度修改为1;
11、将每个批次中通过自注意力计算得到的指定向量存入到外部数据缓冲区中,以在执行下一批次的推理时,从所述外部数据缓冲区中获取所述指定向量,并通过所述指定向量计算下一批次对应的注意力分数;其中,所述指定向量为键向量和值向量。
12、在本技术的一种实现方式中,对所述预填充模型和所述解码模型中的输入token长度和数据缓冲区进行调整,具体包括:
13、获取所述大模型指定的输入token对应的最大输入长度,以及注意力范围对应的最大输出长度;
14、将所述预填充模型中的输入token长度由所述最大输出长度调整为所述最大输入长度,并将所述解码模型中的输入token长度由所述最大输出长度修改为1;
15、将每个批次中通过自注意力计算得到的指定向量存入到外部数据缓冲区中,以在执行下一批次的推理时,从所述外部数据缓冲区中获取所述指定向量,并通过所述指定向量计算下一批次对应的注意力分数;其中,所述指定向量为键向量和值向量。
16、在本技术的一种实现方式中,将所述输入token序列输入到所述编译后的大模型中之后,所述方法还包括:
17、针对所述输入token序列,确定所述输入token序列对应的序列长度;
18、根据所述序列长度,对所述输入token序列对应的位置编码矩阵以及mask矩阵进行缩小。
19、在本技术的一种实现方式中,对所述预填充模型和所述解码模型中的输入token长度和数据缓冲区进行调整,得到调整后的大模型之后,所述方法还包括:
20、针对每个批次中所述解码模型输入的输入token,生成对应的位置编码变量,以通过所述位置编码向量获取所述输入token对应的token id,实现对所述输入token的定位。
21、在本技术的一种实现方式中,对所述调整后的大模型进行编译,得到编译后的大模型之后,所述方法还包括:
22、获取所述预填充模型和所述解码模型经过编译后得到的第一计算图和第二计算图;
23、对所述第一计算图和所述第二计算图进行合并,得到合并计算图,以通过所述合并计算图,将所述预填充模型和所述解码模型同时加载到内存中;
24、根据所述预填充模型和所述解码模型分别对应的输入token长度,调整所述第一计算图和所述第二计算图之间的执行路径。
25、在本技术的一种实现方式中,所述方法还包括:
26、在存在多个问答请求的情况下,确定所述问答请求对应的问题所属的问题类型;
27、针对每个问题类型中的至少一个问题,对所述问题进行相似度分析,以得到所述问题之间的相似度;
28、在所述相似度大于预设阈值的情况下,确定所述问题之间存在关联关系,并在通过所述编译后的大模型得到任一问题对应的答案后,将所述答案添加至所述问题类型对应的答案示例库中,生成所述问题与其关联问题之间的关联标识;
29、在对所述关联问题执行推理时,根据所述关联标识从所述答案示例库中检索对应的答案,实现所述答案的重用。
30、在本技术的一种实现方式中,实现对所述输入token序列的推理,具体包括:
31、将所述输入token序列输入至所述预填充模型,通过所述预填充模型对所述输入token序列进行推理,得到第一输出token;
32、将所述第一输出token输入至所述解码模型,通过所述解码模型对所述第一输出token进行解码推理,得到第二输出token;
33、将所述第二输出token作为下一批次中所述解码模型的输入,直至所述解码模型得到的输出token序列满足最大输出长度。
34、本技术实施例提供了一种大模型编译推理设备,所述设备包括:
35、至少一个处理器;
36、以及,与所述至少一个处理器通信连接的存储器;
37、其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上任一项所述的一种大模型编译推理方法。
38、本技术实施例提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
39、如上任一项所述的一种大模型编译推理方法。
40、通过本技术提出的一种大模型编译推理方法能够带来如下有益效果:
41、通过调整预填充模型和解码模型中的输入token长度,能够显著降低预填充阶段中各向量对应的初次计算量。在推理过程中,大模型只需处理必要的计算步骤,避免了不必要的计算浪费,从而有效减少了总体计算量。
42、利用数据缓冲区来存储历史批次中计算得到的指定向量,并通过依赖映射关系在需要时检索这些向量,避免了在每次推理过程中都重新计算这些向量,显著减少了内存占用。
1.一种大模型编译推理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种大模型编译推理方法,其特征在于,对所述预填充模型和所述解码模型中的输入token长度和数据缓冲区进行调整,具体包括:
3.根据权利要求2所述的一种大模型编译推理方法,其特征在于,根据所述依赖映射关系,分别通过所述预填充模型和所述解码模型对应的数据缓冲区获取历史批次中存储的指定向量之后,所述方法还包括:
4.根据权利要求2所述的一种大模型编译推理方法,其特征在于,将所述输入token序列输入到所述编译后的大模型中之后,所述方法还包括:
5.根据权利要求1所述的一种大模型编译推理方法,其特征在于,对所述预填充模型和所述解码模型中的输入token长度和数据缓冲区进行调整,得到调整后的大模型之后,所述方法还包括:
6.根据权利要求1所述的一种大模型编译推理方法,其特征在于,对所述调整后的大模型进行编译,得到编译后的大模型之后,所述方法还包括:
7.根据权利要求1所述的一种大模型编译推理方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的一种大模型编译推理方法,其特征在于,实现对所述输入token序列的推理,具体包括:
9.一种大模型编译推理设备,其特征在于,所述设备包括:
10.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为: