基于上下文依赖感知的键值缓存压缩方法、系统、终端及介质
本发明涉及人工智能推理优化与计算机存储管理,尤其涉及基于上下文依赖感知的键值缓存压缩方法、系统、终端及介质。
背景技术:
1、transformer 模型在自回归推理时,通常在预填充阶段为各历史词元(token)计算并保存键状态和值状态,后续生成阶段重复读取这些状态以避免重新计算全部历史上下文,上述状态通常称为键值缓存(key-value cache,简称 kv 缓存)。kv 缓存的存储量随上下文长度、模型层数和 kv 头数量近似线性增长;当上下文扩展到数万乃至更长词元时,kv缓存会占用大量显存或内存,并增加存储读写开销、首词元时延和逐词元生成时延。
2、现有kv缓存压缩技术通常根据历史token获得的注意力权重、局部观察窗口、键向量差异、上下文重构结果或会话片段相关性来删除部分键值状态。此类技术在单次查询或固定提示下能够降低缓存规模,但当未来查询尚未到达、同一历史上下文需要被多个不同查询复用时,依赖未来查询或末端观察窗口的选择结果难以预先构建和稳定复用。
3、另一方面,当仅依据某个历史token被后续位置访问的注意力大小进行保留时,容易选中经常被访问但信息区分度较低的分隔符、停用词或格式token。当仅依据token自身向前关注的集中程度进行保留时,又不能判断该token在后续上下文中是否实际被利用。因此,需要在未来查询未知的条件下,同时刻画历史token的后续访问需求和其形成表示时的上下文依赖特征,并在固定缓存预算内生成可复用的压缩kv缓存。
4、现有 kv 缓存压缩技术的典型方案包括 snapkv、keydiff、kvzip 和 epicache。snapkv是利用提示末端的观察窗口统计注意力,并按注意力头选择重要历史位置。该方案无需训练且可直接压缩 kv 缓存,但其位置选择依赖提示末端的观察内容;当未来问题尚未到达或同一历史上下文需要回答多个不同问题时,观察窗口得到的选择结果难以稳定复用。
5、keydiff 是根据键向量之间的差异或相似度选择具有代表性的键状态,可以在不显式依赖注意力矩阵的情况下控制缓存规模,但键向量差异主要反映表示多样性,未直接衡量某一历史词元被后续上下文持续访问的程度,也未联合建模该词元对前驱上下文的依赖集中程度。
6、kvzip 是以利用压缩 kv 缓存重构原始上下文的能力估计键值对重要性,属于查询无关的缓存压缩方案,能够支持多查询复用;但其评分需要额外的重构过程,缓存构建成本较高,且没有直接利用因果预填充过程中自然产生的双向注意力统计量来区分未来访问需求和信息特异性。
7、epicache是以会话或情节为单位执行块式预填充和缓存压缩,能够限制长对话处理过程中的峰值缓存规模,并通过分层预算管理保留主题相关信息。其核心侧重会话片段管理和层敏感预算分配,尚未在同一候选词元上联合利用 “后续位置指向该词元” 的接收注意力与 “该词元指向可见前驱” 的输出注意力熵进行选择。
8、总体而言,现有技术存在以下技术缺陷:(1)未来查询未知时,依赖具体查询或提示末端观察窗口的方法难以提前构建压缩缓存,缓存结果也难以供多个后续查询稳定复用;(2)仅使用接收注意力容易保留高频但低信息量的词元;仅使用表示差异或局部规则又可能删除跨会话仍有价值的远距离事实,导致有限预算下的重要历史信息识别不准确;(3)完整保存注意力矩阵或在全上下文预填充结束后再统一压缩,会产生较高的临时显存和计算开销,不利于处理超长对话、文档和智能体轨迹;(4)不同会话、语义段或固定长度片段的长度不同,若采用固定比例或简单平均预算,容易出现短片段无保留名额、长片段过度占用预算或舍入后总量偏离目标的问题;(5)压缩后若未保持原始顺序、位置索引以及不同注意力层的缓存约束,可能破坏因果位置关系,导致压缩缓存无法直接接入后续自回归推理。
9、因此,现有技术还有待改进和发展。
技术实现思路
1、针对现有技术的上述缺陷,本发明提供基于上下文依赖感知的键值缓存压缩方法、系统、终端及介质。本发明所采用的技术方案如下:
2、第一方面,本发明提供一种基于上下文依赖感知的键值缓存压缩方法,所述方法包括:
3、获取待处理的长上下文输入、保护前缀以及全局缓存预算,将所述保护前缀之后的历史token划分为至少一个压缩单元,所述保护前缀对应的键状态和值状态始终予以保留;
4、在未来查询到达之前,针对每一压缩单元执行因果预填充,在预填充过程中确定接收注意力统计量和输出注意力熵,其中,接收注意力统计量用于表征对应压缩单元内各候选历史token被后续可见位置访问的程度,输出注意力熵用于表征各候选历史token对可见前驱上下文的依赖集中程度;
5、在同一全局注意力层、同一压缩单元的范围内,对所述接收注意力统计量和所述输出注意力熵分别进行尺度归一化处理,再按照预设规则进行融合,得到各候选历史token的保留分数;
6、根据所述全局缓存预算为各压缩单元分配保留token数量名额,在每个压缩单元内筛选出目标候选历史token,按照原始位置顺序保留所述目标候选历史token对应的键状态和值状态并予以冻结,释放未被选中的候选历史token的键状态和值状态,形成压缩键值缓存前缀,其中,所述目标候选历史token为每个压缩单元内保留分数最高且数量为保留token数量名额的候选历史token;
7、当未来查询到达时,复制所述压缩键值缓存前缀并追加所述未来查询对应的token序列,执行自回归解码生成回答。
8、在一种实现方式中,将所述保护前缀之后的历史token划分为至少一个压缩单元,包括:
9、将所述保护前缀之后的历史token按照对话会话、语义段、文档章节、工具调用轨迹或固定长度token块划分为至少一个压缩单元。
10、在一种实现方式中,所述接收注意力统计量的确定过程包括:
11、对于压缩单元内的第个候选历史token,将位于第个候选历史token之后且在当前统计范围内可见的查询位置划分为至少一个查询块;
12、对每个查询块内全部可见查询位置和全部查询头指向第个候选历史token的注意力权重取平均值;
13、对各查询块的平均结果进行求和、求均值或取最大值运算,得到第个候选历史token的接收注意力统计量,其中,所述注意力权重为经过因果掩码和softmax归一化后的注意力概率值。
14、在一种实现方式中,所述输出注意力熵的确定过程包括:
15、对于压缩单元内的第个候选历史token,获取第个候选历史token按照因果掩码可访问的严格前驱token集合,所述严格前驱token集合从可见位置中排除第个候选历史token自身;
16、将第个候选历史token在所述严格前驱token集合上的原始注意力权重重新归一化,计算归一化后注意力分布的香农熵,并按查询头数量和严格前驱token集合大小的对数进行归一化,得到取值范围为0至1的输出注意力熵。
17、在一种实现方式中,所述尺度归一化处理采用加入正稳定项的最小值-最大值归一化,将所述接收注意力统计量和所述输出注意力熵分别映射至0至1的数值范围;
18、所述预设规则为保留分数随接收注意力统计量单调不减、随输出注意力熵单调不增;
19、融合采用乘积形式,表示为:保留分数=归一化后的接收注意力统计量×(1-归一化后的输出注意力熵)。
20、在一种实现方式中,为各压缩单元分配保留token数量名额的方式表示为:
21、
22、其中,为分配给第个压缩单元的保留token数量名额,
23、为包含保护前缀在内的全局目标缓存token数量,为第个压缩单元内的历史候选 token的数量,为保护前缀和全部压缩单元合计的输入token数量,为始终保留的保护前缀token数量,表示向上取整运算。
24、在一种实现方式中,所述压缩键值缓存前缀驻留于gpu显存、cpu内存、本地存储或分布式缓存系统中,在未来查询到达时按需加载;
25、当同一压缩键值缓存前缀对应至少两个不同的未来查询时,分别复制压缩键值缓存前缀并追加对应查询的token序列,独立完成解码生成回答。
26、第二方面,本发明实施例还提供一种基于上下文依赖感知的键值缓存压缩系统,其中,所述系统用于实现上述方案任一项所述的基于上下文依赖感知的键值缓存压缩方法的步骤,所述系统包括:
27、输出处理模块,用于获取待处理的长上下文输入、保护前缀以及全局缓存预算,将所述保护前缀之后的历史token划分为至少一个压缩单元,所述保护前缀对应的键状态和值状态始终予以保留;
28、注意力和统计计算模块,用于在未来查询到达之前,针对每一压缩单元执行因果预填充,在预填充过程中确定接收注意力统计量和输出注意力熵,其中,接收注意力统计量用于表征对应压缩单元内各候选历史token被后续可见位置访问的程度,输出注意力熵用于表征各候选历史token对可见前驱上下文的依赖集中程度;
29、评分融合模块,用于在同一全局注意力层、同一压缩单元的范围内,对所述接收注意力统计量和所述输出注意力熵分别进行尺度归一化处理,再按照预设规则进行融合,得到各候选历史token的保留分数;
30、缓存构建模块,用于根据所述全局缓存预算为各压缩单元分配保留token数量名额,在每个压缩单元内筛选出目标候选历史token,按照原始位置顺序保留所述目标候选历史token对应的键状态和值状态并予以冻结,释放未被选中的候选历史token的键状态和值状态,形成压缩键值缓存前缀,其中,所述目标候选历史token为每个压缩单元内保留分数最高且数量为保留token数量名额的候选历史token;
31、回答生成模块,用于当未来查询到达时,复制所述压缩键值缓存前缀并追加所述未来查询对应的token序列,执行自回归解码生成回答。
32、第三方面,本发明实施例还提供一种终端,其中,所述终端包括存储器、处理器及存储在存储器中并可在处理器上运行的基于上下文依赖感知的键值缓存压缩程序,处理器执行基于上下文依赖感知的键值缓存压缩程序时,实现上述方案中任一项的基于上下文依赖感知的键值缓存压缩方法的步骤。
33、第四方面,本发明实施例还提供一种计算机可读存储介质,其中,计算机可读存储介质上存储有基于上下文依赖感知的键值缓存压缩程序,所述基于上下文依赖感知的键值缓存压缩程序在所述计算机可读存储介质上实现上述方案中任一项所述的基于上下文依赖感知的键值缓存压缩方法的步骤。
34、有益效果:与现有技术相比,本发明提供了一种基于上下文依赖感知的键值缓存压缩方法,首先获取待处理的长上下文输入、保护前缀以及全局缓存预算,将所述保护前缀之后的历史token划分为至少一个压缩单元,所述保护前缀对应的键状态和值状态始终予以保留。接着,在未来查询到达之前,针对每一压缩单元执行因果预填充,在预填充过程中确定接收注意力统计量和输出注意力熵,其中,接收注意力统计量用于表征对应压缩单元内各候选历史token被后续可见位置访问的程度,输出注意力熵用于表征各候选历史token对可见前驱上下文的依赖集中程度。然后,在同一全局注意力层、同一压缩单元的范围内,对所述接收注意力统计量和所述输出注意力熵分别进行尺度归一化处理,再按照预设规则进行融合,得到各候选历史token的保留分数。再然后,根据所述全局缓存预算为各压缩单元分配保留token数量名额,在每个压缩单元内筛选出目标候选历史token,按照原始位置顺序保留所述目标候选历史token对应的键状态和值状态并予以冻结,释放未被选中的候选历史token的键状态和值状态,形成压缩键值缓存前缀,其中,所述目标候选历史token为每个压缩单元内保留分数最高且数量为保留token数量名额的候选历史token。最后,当未来查询到达时,复制所述压缩键值缓存前缀并追加所述未来查询对应的token序列,执行自回归解码生成回答。
35、本发明在未来查询未知的条件下,同时刻画历史token的后续访问需求和上下文依赖特征,在固定缓存预算内生成可复用的压缩 kv 缓存,兼顾缓存压缩率、推理准确率和多查询复用能力,同时兼容主流 transformer 模型结构与推理后端。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com