键值缓存卸载方法、装置、设备、存储介质及程序产品与流程

摘要: 本公开涉及但不限于计算机视觉,尤其涉及一种键值缓存卸载方法、键值缓存卸载装置、计算机设备、计算机可读存储介质及计算机程序产品。背景技术:1、大语言模型推理中,键...
键值缓存卸载方法、装置、设备、存储介质及程序产品与流程

本公开涉及但不限于计算机视觉,尤其涉及一种键值缓存卸载方法、键值缓存卸载装置、计算机设备、计算机可读存储介质及计算机程序产品。

背景技术:

1、大语言模型推理中,键值缓存(kv cache)随上下文长度线性增长,已成为长上下文场景的首要瓶颈。在llm推理中,kv cache存储每一层注意力的key/value张量,用于复用历史计算、加速生成。上下文越长、并发越高,kv cache占用的图形处理器(graphicsprocessing unit)显存越多。当gpu显存容量不足时,系统会将冷/不常用的键值缓存块(kvblock)从gpu显存卸载到更低成本、大容量的低层存储,以腾出空间给活跃请求。然而,kvblock被卸载到低层存储时存在如下问题:若使用高精度(如fp16)卸载,则存在存储空间和传输带宽浪费严重的问题;若使用低精度(如int4)卸载,则会存在精度严重受损,导致长上下文回调后注意力(attention)质量退化从而输出出错的问题。

技术实现思路

1、有鉴于此,本公开实施例至少提供一种键值缓存卸载方法、键值缓存卸载装置、计算机设备、计算机可读存储介质及计算机程序产品。

2、本公开实施例的技术方案是这样实现的:

3、一方面,本公开实施例提供一种键值缓存卸载方法,包括:

4、将键值缓存块拆分为键缓存和值缓存;

5、基于样本键缓存对量化误差的敏感度,确定键缓存的第一卸载策略;第一卸载策略包括键缓存的量化方式和/或压缩方式;

6、基于样本值缓存对量化误差的敏感度,确定值缓存的第二卸载策略;第二卸载策略包括值缓存的量化方式和/或压缩方式;

7、采用第一卸载策略,将键缓存从第一存储空间卸载至第二存储空间;

8、采用第二卸载策略,将值缓存从第一存储空间卸载至第三存储空间。

9、另一方面,本公开实施例提供一种键值缓存卸载装置,包括:

10、拆分模块,被配置成将键值缓存块拆分为键缓存和值缓存;

11、处理模块,被配置成基于样本键缓存对量化误差的敏感度,确定键缓存的第一卸载策略;第一卸载策略包括键缓存的量化方式和/或压缩方式;

12、处理模块,还被配置成基于样本值缓存对量化误差的敏感度,确定值缓存的第二卸载策略;第二卸载策略包括值缓存的量化方式和/或压缩方式;

13、卸载模块,被配置成采用第一卸载策略,将键缓存从第一存储空间卸载至第二存储空间;

14、卸载模块,还被配置成采用第二卸载策略,将值缓存从第一存储空间卸载至第三存储空间。

15、再一方面,本公开实施例提供一种计算机设备,包括存储器和处理器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时实现上述方法中的部分或全部步骤。

16、又一方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法中的部分或全部步骤。

17、又一方面,本公开实施例提供一种计算机程序,包括计算机可读代码,当计算机可读代码在计算机设备中运行时,计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。

18、又一方面,本公开实施例提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机程序被计算机设备读取并执行时,实现上述方法中的部分或全部步骤。

19、本公开实施例中,将键值缓存块拆分为键缓存和值缓存,是为了实现键缓存和值缓存的物理存储的拆分,以使键缓存和值缓存占据不同的物理地址空间,拥有独立的元数据记录,可独立移动、独立量化、独立压缩,甚至可存储在不同的存储层。基于由样本键缓存对量化误差的敏感度确定的第一卸载策略对键缓存进行卸载,基于与样本值缓存对量化误差的敏感度确定的第二卸载策略对值缓存进行卸载,这样利用k/v非对称敏感度,对键缓存和值缓存采用不同的卸载策略,甚至将键缓存和值缓存存储至到不同存储层,能够在存储效率和推理精度之间取最优平衡。

20、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。

1.一种键值缓存卸载方法,其特征在于,所述方法包括:

2.根据权利要求1所述方法,其特征在于,所述样本键缓存对量化误差的敏感度通过如下方式确定:

3.根据权利要求1所述方法,其特征在于,所述基于样本键缓存对量化误差的敏感度,确定所述键缓存的第一卸载策略,包括如下至少之一:

4.根据权利要求1至3中任一项所述方法,其特征在于,所述基于样本值缓存对量化误差的敏感度,确定所述值缓存的第二卸载策略,包括如下至少之一:

5.根据权利要求1至3中任一项所述方法,其特征在于,所述第一存储空间包括图形处理器的显存,所述第二存储空间包括硬盘;所述采用所述第一卸载策略,将所述键缓存从第一存储空间卸载至第二存储空间,包括:

6.根据权利要求5所述方法,其特征在于,所述对量化的所述键缓存进行残差编码,得到编码的所述键缓存,包括:

7.根据权利要求1至3中任一项所述方法,其特征在于,所述第一存储空间包括图形处理器的显存,所述第二存储空间包括中央处理器的显存;所述采用所述第一卸载策略,将所述键缓存从第一存储空间卸载至第二存储空间,包括:

8.根据权利要求1至3中任一项所述方法,其特征在于,所述第一存储空间包括图形处理器的显存,所述第二存储空间包括硬盘;所述采用所述第一卸载策略,将所述键缓存从第一存储空间卸载至第二存储空间,包括:

9.根据权利要求6所述方法,其特征在于,所述方法还包括:

10.根据权利要求1所述方法,其特征在于,所述第一存储空间包括图形处理器的显存,所述第三存储空间包括硬盘;所述采用所述第二卸载策略,将所述值缓存从所述第一存储空间卸载至第三存储空间,包括:

11.根据权利要求10所述方法,其特征在于,所述对压缩的所述值缓存进行块压缩,得到压缩的所述值缓存,包括:

12.根据权利要求1所述方法,其特征在于,所述第一存储空间包括图形处理器的显存,所述第三存储空间包括中央处理器的显存;所述采用所述第二卸载策略,将所述值缓存从所述第一存储空间卸载至第三存储空间,包括:

13.根据权利要求1所述方法,其特征在于,所述第一存储空间包括图形处理器的显存,所述第三存储空间包括硬盘;所述采用所述第二卸载策略,将所述值缓存从所述第一存储空间卸载至第三存储空间,包括:

14.根据权利要求10所述方法,其特征在于,所述方法还包括:

15.根据权利要求1至3、或6、或9至14中任一项所述方法,其特征在于,所述方法还包括:

16.根据权利要求15所述方法,其特征在于,所述第二存储空间包括中央处理器的显存和/或硬盘;所述从所述第三存储空间中恢复待回调的值缓存,包括以下任一:

17.根据权利要求1所述方法,其特征在于,所述方法还包括:

18.根据权利要求1至3、或6、或9至14、或16至17中任一项所述方法,其特征在于,所述键值缓存卸载方法作为中间件嵌入键值缓存管理模块与传输层之间。

19.根据权利要求1至3、或6、或9至14、或16至17中任一项所述方法,其特征在于,所述键值缓存块的元数据分别记录所述键缓存和所述值缓存的存储位置、量化方式和压缩方式;所述键缓存和所述值缓存存储于不同的存储空间。

20.根据权利要求1至3、或6、或9至14、或16至17中任一项所述方法,其特征在于,所述方法还包括:

21.根据权利要求15所述方法,其特征在于,从所述第二存储空间中恢复键缓存的操作与将键缓存卸载至所述第二存储空间的操作相反;从所述第三存储空间中恢复值缓存的操作与将值缓存卸载至所述第二存储空间的操作相反。

22.一种键值缓存卸载装置,其特征在于,所述装置包括:

23.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至21任一项所述方法中的步骤。

24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至21任一项所述方法中的步骤。

25.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机设备读取并执行时,实现权利要求1至21中任一项所述方法中的步骤。