本发明涉及人工智能及自然语言处理,具体地说是一种基于大模型推理的部分固定缓存方法、系统、设备及介质。
背景技术:
1、随着人工智能技术的快速发展,尤其是在自然语言处理领域,大规模预训练模型(如transformer模型)在各种任务中表现出了卓越的性能。然而,这些模型在推理过程中需要大量的计算资源和存储资源,传统的transformer模型在推理时,大部分推理框架选择使用存储大量键值对的方式来加快文本生成的速度,导致内存消耗与输入序列长度和批量大小线性相关,这种方法是典型的用存储资源换计算资源的策略。
2、在大规模集群上使用无可厚非,但是应对客户本地部署运行的需求时,必须要考虑到客户不可能拥有大规模集群用于模型部署推理,那么kvcache的存储需求,就成为了推理过程中的瓶颈。
3、故如何在计算资源和存储资源之间寻找一种更适合大模型本地化推理的平衡,提高推理效率是目前亟待解决的技术问题。
技术实现思路
1、本发明的技术任务是提供一种基于大模型推理的部分固定缓存方法、系统、设备及介质,来解决如何在计算资源和存储资源之间寻找一种更适合大模型本地化推理的平衡,提高推理效率的问题。
2、本发明的技术任务是按以下方式实现的,一种基于大模型推理的部分固定缓存方法,该方法具体如下:
3、预填充阶段:输入序列或文本,经过预处理完成原始输入序列或文本到大模型输入矩阵的格式转换,并基于kvcache方法,缓存原始输入token在各注意力层中的k矩阵和v矩阵,并将输入序列或文本转换成每个token由固定长特征向量表示的大模型输入矩阵,输入矩阵经过模型推理输出第一个token;
4、解码阶段:不同于传统的kvcache方法,在每次解码之前会对是否缓存当前输入token的k矩阵和v矩阵进行预判断,根据结果判定是否在本次解码过程中对当前输入token的k矩阵和v矩阵进行缓存。
5、作为优选,预填充阶段的预处理过程具体如下:
6、tokenizer:将原始文本或序列转换为由token组成的文本的初始数值表征,即将输入的文本转化为输入token;
7、嵌入embedding:将输入token转化成词向量编码(word embedding)作为模型的输入,同时把位置向量编码(position embedding)融合到词向量编码中,体现输入token的位置相关性;
8、若输入尺寸和大模型输入不匹配,则对输入尺寸进行reshape。
9、作为优选,解码阶段前,比较当前输入的token数与设备单次可并发执行的token数nt:
10、若输出token数超过设备单次可并发执行的token数nt,则不缓存当前输入token对应的k向量和v向量,继续累计大模型输出的token进行下一次解码;
11、若输入token数超过可并发执行的token数nt,则继续比较已缓存的k矩阵和v矩阵加载到计算核心的时间tl和对当前输入token进行一次解码的时间td:
12、若td<tl,则不缓存当前输入token对应的k矩阵和v矩阵,继续累计大模型输出的token进行下一次解码;
13、若td>tl,则对当前输入token的k矩阵和v矩阵进行缓存,并使用本次解码的新输出token继续进行解码。
14、更优地,设备单次可并发执行的token数nt的公式如下:
15、nt=理论算力峰值/最耗算力的网络层的计算量,即计算设备单词解码小于nt个token的时间和解码nt个token的时间一致。
16、更优地,加载到计算核心的时间tl的公式如下
17、tl=(2*d*l/内存带宽)*n;
18、其中,d为单个k或v向量的维度,由于在transformer模型中,每个k矩阵和v矩阵的长度相同,故乘以2;l为大模型中注意力层的数量;n为当前解码之前所有token的数量。
19、更优地,一次解码的时间td的公式如下:
20、td=当前输入token数*每token的计算量/理论算力峰值。
21、一种基于大模型推理的部分固定缓存系统,该系统包括:
22、预填充模块,用于输入序列或文本,经过预处理完成原始输入序列或文本到大模型输入矩阵的格式转换,并基于kvcache方法,缓存原始输入token在各注意力层中的k矩阵和v矩阵,并将输入序列或文本转换成每个token由固定长特征向量表示的大模型输入矩阵,输入矩阵经过模型推理输出第一个token;
23、解码模块,不同于传统的kvcache方法,在每次解码之前会对是否缓存当前输入token的k矩阵和v矩阵进行预判断,根据结果判定是否在本次解码过程中对当前输入token的k矩阵和v矩阵进行缓存。
24、作为优选,解码阶段前,比较当前输入的token数与设备单次可并发执行的token数nt:
25、若输出token数超过设备单次可并发执行的token数nt,则不缓存当前输入token对应的k向量和v向量,继续累计大模型输出的token进行下一次解码;
26、若输入token数超过可并发执行的token数nt,则继续比较已缓存的k矩阵和v矩阵加载到计算核心的时间tl和对当前输入token进行一次解码的时间td:
27、若td<tl,则不缓存当前输入token对应的k矩阵和v矩阵,继续累计大模型输出的token进行下一次解码;
28、若td>tl,则对当前输入token的k矩阵和v矩阵进行缓存,并使用本次解码的新输出token继续进行解码;
29、其中,设备单次可并发执行的token数nt的公式如下:
30、nt=理论算力峰值/最耗算力的网络层的计算量,即计算设备单词解码小于nt个token的时间和解码nt个token的时间一致;
31、加载到计算核心的时间tl的公式如下
32、tl=(2*d*l/内存带宽)*n;
33、其中,d为单个k或v向量的维度,由于在transformer模型中,每个k矩阵和v矩阵的长度相同,故乘以2;l为大模型中注意力层的数量;n为当前解码之前所有token的数量;
34、一次解码的时间td的公式如下:
35、td=当前输入token数*每token的计算量/理论算力峰值。
36、一种电子设备,包括:存储器和至少一个处理器;
37、其中,所述存储器上存储有计算机程序;
38、所述至少一个处理器执行所述存储器存储的计算机程序,使得所述至少一个处理器执行如上述的基于大模型推理的部分固定缓存方法。
39、一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如上述的基于大模型推理的部分固定缓存方法。
40、本发明的基于大模型推理的部分固定缓存方法、系统、设备及介质具有以下优点:
41、(一)本发明在计算资源和存储资源之间寻找一种更适合大模型本地化推理的平衡,提高了推理效率;
42、(二)本发明在推理过程中,动态确定是否进行kv矩阵缓存,可以减少总的推理时间,避免内存超负荷,能够进一步提高计算设备的利用率。
1.一种基于大模型推理的部分固定缓存方法,其特征在于,该方法具体如下:
2.根据权利要求1所述的基于大模型推理的部分固定缓存方法,其特征在于,预填充阶段的预处理过程具体如下:
3.根据权利要求1所述的基于大模型推理的部分固定缓存方法,其特征在于,解码阶段前,比较当前输入的token数与设备单次可并发执行的token数nt:
4.根据权利要求3所述的基于大模型推理的部分固定缓存方法,其特征在于,设备单次可并发执行的token数nt的公式如下:
5.根据权利要求3所述的基于大模型推理的部分固定缓存方法,其特征在于,加载到计算核心的时间tl的公式如下
6.根据权利要求3所述的基于大模型推理的部分固定缓存方法,其特征在于,一次解码的时间td的公式如下:
7.一种基于大模型推理的部分固定缓存系统,其特征在于,该系统包括:
8.根据权利要求7所述的基于大模型推理的部分固定缓存系统,其特征在于,解码阶段前,比较当前输入的token数与设备单次可并发执行的token数nt:
9.一种电子设备,其特征在于,包括:存储器和至少一个处理器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如权利要求1至6中任一项所述的基于大模型推理的部分固定缓存方法。