IMPRESS: An Importance-Informed Multi-Tier Prefix KV Storage System for Large Language Model Inference

发表时间: 2025-02 · FAST 2025

原文: https://www.usenix.org/system/files/fast25-chen-weijian-impress.pdf

Weijian Chen, Shuibing He, Haoyang Qu, Ruidong Zhang, Siling Yang, Ping Chen (Zhejiang University); Yi Zheng, Baoxing Huai (Huawei Cloud); Gang Chen (Zhejiang University)

速读

一句话结论
IMPRESS 是一个面向大语言模型推理的多层级前缀 KV 缓存系统,它通过仅从磁盘加载高重要度的 KV 数据,在几乎不损失精度的前提下,将首字生成延迟(TTFT)最高降低了 2.8 倍。

要解决什么问题
在长上下文应用(如 RAG、多轮对话)中,请求通常带有大量重复的前缀(如系统提示词或检索到的文档)。为了降低首字生成延迟,现有系统会将这些前缀的 KV 缓存存下来复用。当 GPU 和 CPU 显存耗尽时,KV 数据必须溢出到磁盘(SSD)。但磁盘 I/O 带宽极低,导致从磁盘加载 KV 到 GPU 的耗时往往占到总 TTFT 的 51% 到 98%,甚至比直接重新计算还要慢。为了减少 I/O,近期的稀疏化方法(如 H2O)提出只保留对生成质量影响大的重要 KV。但这种做法卡在了一个死结上:同一个前缀在面对不同用户的 Query 时,重要 Token 的分布是不同的。为了找出当前 Query 对应的重点 Token,现有方法必须把磁盘上所有的 Key 先全部加载进 GPU 来计算注意力分数,这依然产生了庞大的 I/O 开销。此外,底层存储通常将连续的 KV 打包成数据块(Chunk)读取,按需加载重要 KV 会连带读出大量无用数据,造成严重的读放大;而传统的 LRU 或 LFU 缓存淘汰策略只看访问频率,导致富含重要 KV 的数据块可能被驱逐到慢速存储,进一步恶化了 I/O 瓶颈。

怎么做的
IMPRESS 的核心思路是利用大模型注意力头的相似性,用极少的 I/O 探测出重要 Token,并重组底层存储结构以提升高价值数据的加载密度。系统由三个关键部件构成:第一,相似度引导的重要 Token 识别(ITF)。作者观察到,在同一个 Transformer 层内,不同注意力头(Head)关注的重要 Token 索引集合高度重合。因此,IMPRESS 不需要加载所有 Head 的 Key,而是只从磁盘加载前 3 个“探测头”的 Key。GPU 计算这 3 个头的注意力分数后,找出它们各自的重要 Token 集合,并计算集合间的 Jaccard 相似度:

$$J(A, B) = \frac{|A \cap B|}{|A \cup B|}$$


如果探测头之间的平均相似度大于动态阈值 $t$,系统就认为探测结果可靠,随后只需从磁盘加载这部分被选中的重要 Token 对应的剩余 Key 和 Value。阈值 $t$ 的设定基于随机选择 $k$ 个 Token(总长 $n$)时的期望相似度:

$$t = \left( \frac{k/n}{2 - k/n} \right)^\alpha$$
其中 $\alpha$ 是超参。若相似度低于阈值,则退回加载全量 Key 的安全模式。这一机制彻底绕开了“为了找重要数据必须先加载全部数据”的死锁。第二,KV 重排序。为了解决按 Chunk 读取时的读放大问题,系统会在后台异步地根据 Token 的历史平均重要性对前缀序列进行重排。它将高重要度的 KV 紧凑地打包进同一个 Chunk 中,使得单次磁盘读取能带出更多有效数据。为了不破坏用于匹配前缀的基数树(Radix Tree)结构,重排仅在单个树节点内部进行,并在节点元数据中增加一个映射表,用于在推理时通过向量化索引还原原始 Token 顺序。第三,基于分数的缓存管理。在决定 GPU、CPU 和磁盘之间的数据块升降级时,系统不再单纯依赖访问频率,而是为每个 Chunk 计算一个综合分数:分数等于访问频率乘以该 Chunk 内重要 KV 的比例。高分 Chunk 优先驻留 GPU,从而最大化 PCIe 传输的有效命中率。

效果如何
实验基于 OPT 系列(6.7B、13B、30B)和 Llama2 系列(7B、13B)模型,硬件使用单张 80GB A100 GPU 和 2TB NVMe SSD。测试数据集包括 PIQA、RTE、COPA 和 OpenBookQA,通过拼接 Few-shot 样本构造最长 10K 的共享前缀。对比基线包括:每次都重新计算的 ReComp、代表全量异步加载路线的 AS-like(基于 AttentionStore 复现)、以及结合了重要性过滤与传统缓存策略的 AS+H2O+LRU 和 AS+H2O+LFU(当前 SOTA)。量化结果显示,在保持模型推理精度下降不超过 0.2% 的前提下,IMPRESS 相比于最强的 AS+H2O+LFU 基线,将平均 TTFT 降低了 1.2 倍至 2.8 倍。这主要归功于前缀 KV 的 I/O 加载时间大幅减少了 1.5 倍至 3.8 倍。在长尾延迟方面,以 OPT-30B 在 RTE 数据集上的表现为例,IMPRESS 的 p99 延迟仅为 2.95 秒,而 SOTA 基线为 5.9 秒,全量加载的 AS-like 更是高达 9.3 秒。消融实验证明,探测头机制贡献了主要的 I/O 缩减,而重排序将读取的 Chunk 数量减少了 1.2 倍,基于分数的缓存策略则将 GPU 命中率从 68% 提升到了 80%。系统的代价极小,探测头的计算开销仅占总耗时的 6%,元数据增加的内存占用不到 0.5%。

主要贡献

现代高级大型语言模型(LLM)应用程序通常在用户查询之前预置长上下文,以提高模型输出质量。这些上下文在多个查询之间经常部分或全部重复。现有系统通常存储并重用这些上下文的键和值(称为前缀KV),以减少冗余计算和首Token生成时间(TTFT)。然而,当CPU内存不足而需要将前缀KV存储在磁盘上时,由于磁盘I/O延迟较高,重用它们并不总能减少TTFT。

为了解决这一问题,本文提出了IMPRESS,这是一个重要性感知的多层前缀KV存储系统,旨在通过仅加载重要的前缀KV来减少LLM推理的I/O延迟。本文的主要创新点如下:
1. 提出了IMPRESS,这是第一个整合了GPU内存、CPU内存和磁盘三个存储层级的重要性感知的前缀KV存储系统。
2. 基于注意力头之间重要Token索引集存在显著相似性的观察,提出了一种I/O高效的相似性引导的重要Token识别方法,以识别重要的KV,从而显著减少I/O开销。
3. 设计了重要性感知的KV管理方法,包括KV重排序和一种新的基于分数的缓存管理策略,以进一步最小化从较慢存储介质中读取的I/O数据量,从而在模型推理期间降低TTFT。

背景知识与关键Observation

大语言模型推理过程 生成式LLM通常包含一个输入层、几十个连续的Transformer层和一个输出层。假设输入序列有$l$个Token表示为$S = [t_0, t_1, \dots, t_{l-1}]$,LLM有$n$个Transformer层。该序列首先被输入层转换为形状为$l \times d$的张量$X_{in}$,其中$d$是模型的隐藏维度。然后$X_{in}$通过第一个Transformer层,产生一个保持$l \times d$形状的中间输出张量$X_{out\_0}$。这个$X_{out\_0}$成为下一个Transformer层的输入。最后一个块的输出$X_{out\_(n-1)}$传递给输出层,生成第一个新Token $t_l$。接着,新生成的Token被反馈到输入层以生成下一个Token。此过程重复进行,直到达到最大Token限制或生成特殊的序列结束(EOS)Token。生成第一个Token的过程称为Prefill阶段,后续Token生成称为Decoding阶段。
大语言模型结构

Transformer层计算细节 每个Transformer层由一个注意力层和一个前馈神经网络(FFN)组成。在Prefill阶段,输入张量$X_{in}$通过三个权重矩阵$W_q$、$W_k$和$W_v$生成三个3D瞬态张量:查询(Q)、键(K)和值(V)。每个张量包含多个头,每个头包含一个2D张量($q$、$k$或$v$)。Q和K张量用于产生注意力权重,注意力权重乘以V张量形成注意力输出,最后通过FFN产生输出张量$X_{out}$。

上下文丰富的前缀导致长TTFT 应用程序通常在用户查询前附加丰富的上下文前缀(如RAG检索的文档、历史对话、Few-shot示例等)以提高响应质量。虽然这提高了输出质量,但也显著增加了TTFT。由于处理请求的计算复杂度随长度呈超线性增长,额外的前缀会导致TTFT大幅延长。
不同情况下的TTFT。假设LLM模型由三个Transformer层组成

前缀KV存储系统与I/O瓶颈 现有系统观察到不同请求经常共享前缀,因此存储并重用这些共享前缀的K和V张量以消除冗余计算。然而,仅将前缀KV缓存在GPU或CPU内存中的系统会因空间受限而无法处理长序列。将KV存储扩展到本地磁盘的系统(如AttentionStore【5, AttentionStore: Cost-Effective Attention Reuse across Multi-Turn Conversations in Large Language Model Serving + 2024 + arXiv】)则受限于磁盘I/O带宽。研究表明,从SSD到GPU的I/O延迟很少能被查询计算隐藏,占总TTFT的$51\%$到$98\%$。
TTFT分解。'ReComp'表示不重用前缀KV。'QueryComp'表示加载前缀KV后的剩余计算

并非所有KV同等重要 最近的研究表明,并非所有Token的KV对模型输出质量同等重要,丢弃较不重要的KV仍能产生相当的输出质量。基于此,系统可以仅加载重要的前缀Token的KV,从而从根本上缓解磁盘I/O瓶颈。

挑战1:现有重要性识别方法的I/O开销大 现有的重要Token识别方法必须将所有前缀键(Keys)加载到GPU内存中以计算注意力权重,从而确定重要性。如果直接应用这种方法,从磁盘加载所有键会产生巨大的I/O开销。而采用静态记录重要Token的简单方法是不可行的,因为同一前缀中Token的重要性会因具体查询的不同而变化(例如RAG场景中不同查询关注同一文档的不同片段)。静态预识别方法会遗漏关键KV,导致模型生成质量显著下降。
静态预识别方法(SPI)在各种重要Token保留百分比下的召回率及其对模型生成质量的影响

挑战2:现有系统对重要性感知不足 现有系统通常将连续的KV打包成大对象(Chunk)以优化磁盘I/O。当系统仅选择性检索重要KV时,会加载同一Chunk中不相关的KV,导致读取放大(平均读取的Chunk中只有$46\%$的KV是重要的,导致$2.2\times$的读取放大)。此外,仅基于近期或频率的传统缓存管理策略忽略了Chunk中包含重要KV的比例,导致关键的富含KV的Chunk可能被存储在较慢的存储中,降低了缓存命中率。
(a) 每个Chunk中重要KV的比例。(b) 给定Chunk访问频率下所有Chunk中重要Token的平均比例

方法细节

系统架构概述 IMPRESS在数据平面将所有前缀KV以Chunk的形式存储在磁盘上,部分前缀KV缓存在CPU内存或GPU内存中。这两个缓存空间的数据是排他的,以避免空间浪费。CPU内存中的元数据使用基数树(Radix Tree)组织,便于快速搜索可重用的前缀KV。IMPRESS包含两个控制组件:重要Token识别(ITF)和前缀KV管理(PKM)。ITF通过仅加载部分键而不是全部键来识别Chunk内的重要Token,减少从磁盘加载的数据量。PKM管理前缀KV在磁盘和两级缓存之间的存储和数据移动。
IMPRESS系统概述

系统数据流 假设到达一个请求$S = [t_0^p, t_1^p, ..., t_{m-1}^p, t_0^q, t_1^q, ..., t_{n-1}^q]$。首先,IMPRESS搜索基数树以找到最长公共前缀子序列,假设结果为$R = [t_0^p, t_1^p, ..., t_j^p]$。接着,IMPRESS采用I/O高效的ITF方法识别$R$中的重要Token,假设识别出$R_{important} = [t_t^p, t_{t+1}^p, ..., t_s^p]$。如果$R_{important}$中的KV不在GPU内存中,则从磁盘或CPU内存加载。$R$中不重要Token的KV不被重用。然后,加载的$R_{important}$、未命中前缀$NR$以及查询Token一起送入LLM模型完成剩余的Prefill计算。最后,为$NR$生成的新KV存储在磁盘上,并插入基数树供未来重用。重要性度量采用H2O【44, H2O: Heavy-Hitter Oracle for Efficient Generative Inference of Large Language Models + 2023 + NeurIPS】中的方法,即使用注意力权重矩阵每列的值的总和。

观察一:同一层不同头的重要Token索引集高度相似 分析发现,同一Transformer层内不同头的重要Token索引集高度相似。这是因为不同头中的$k$或$v$张量源自相同的大K或V张量。使用Jaccard指数$J(A, B) = \frac{|A \cap B|}{|A \cup B|}$来量化相似度,真实热力图显示OPT-6.7B中间层的平均相似度超过0.95。
相似性示例。(a) 橙色行代表重要键,其Token索引标为红色。(b) 较深的方块表示两个头的重要Token索引集之间的相似度较高

观察二:相似性在不同采样率和模型规模下均存在 针对OPT-6.7B、OPT-13B和OPT-30B模型的研究表明,选择的重要Token比例越高,相似度越大(如选择$40\%$和$10\%$时,OPT-30B的平均相似度分别为0.68和0.48)。虽然较小模型和较深层表现出较低的相似度,但在大多数情况下仍显著高于随机选择的期望值。
所有Transformer层中重要Token索引集的相似性

相似性引导的重要Token识别核心思想 基于上述观察,IMPRESS利用少数选定头(探测头,Probe Heads)生成的重要Token索引集来近似其余头的索引集。该过程仅从磁盘加载探测头的键,从而减少I/O数据量和TTFT。为了防止在相似度较低的层中误判重要Token导致精度下降,系统引入了一个动态相似度阈值。仅当探测头的测量相似度高于该阈值时,才启用该技术。

识别过程的计算步骤对比 假设前缀有4个Token,其中1个是重要的,每层有32个头,探测头数量设为3。如果不使用该技术,步骤为:(1) 将所有32个头的键(共128个向量)从磁盘加载到GPU;(2) GPU计算注意力权重,识别每个头的最重要Token索引并返回给CPU;(3) CPU将选定索引的$k$和$v$向量(共32个向量)加载到GPU完成计算。整个过程加载160个向量。如果使用该技术,步骤为:(1) 仅将3个探测头的键(共12个向量)加载到GPU;(2) GPU计算注意力权重,识别这3个头的重要Token索引集并计算平均Jaccard相似度。如果超过阈值,则仅将探测头一致认为最重要的Token索引返回给CPU;(3) CPU将该索引对应的所有32个头的$k$和$v$向量(共64个向量)加载到GPU。整个过程仅加载76个向量。
带有前缀KV的Transformer层计算过程。由于前缀中有四个Token,每个$k$和$v$张量有四个行向量

时间线优化效果 在没有相似性引导时,加载大量键导致GPU空闲时间长,延长了推理过程。启用该技术后,加载探测头键的时间显著缩短,减少了GPU等待时间。同时,仅对子集键进行注意力权重计算也减少了生成重要Token索引集的时间,从而缩短了整体TTFT。
有无相似性引导的重要Token识别的TTFT对比。假设LLM模型由三个Transformer层组成

探测头与相似性阈值的超参数决定 系统选择每层的前三个头作为探测头,以保持选择过程的快速性并避免单头偏差或双头平局。设定相似度阈值是一个权衡:过高会导致技术失效,过低会影响模型精度。系统首先计算基于选择的重要Token比例的期望值$j = \frac{k/n}{2 - (k/n)}$。然后将阈值设定为$t = j^\alpha$,根据实验经验选择$\alpha = 0.6$,以在模型推理精度和加载键数量之间取得良好平衡。
不同相似性阈值下加载的键的比例和模型推理精度

KV重排序方法 为了解决检索重要KV时加载不重要KV的问题,IMPRESS引入了KV重排序方法。该方法定期(例如每10分钟)根据平均Token重要性重新排序并重新打包前缀KV到更密集的Chunk中。此过程异步执行,避免干扰主I/O流。重排序后,重要Token被集中在同一个Chunk中,从而只需加载较少的Chunk即可访问所有重要键,减少了磁盘读取数据量和带宽浪费。
重排序前后读取Chunk数量的对比。橙色(蓝色)矩形代表重要(不重要)的键

元数据调整与基数树维护 KV重排序会改变Token顺序,破坏现有的基数树结构,导致新请求无法正确定位可重用的前缀KV。为解决此问题,IMPRESS严格限制KV重排序仅在基数树的每个节点内部进行,禁止跨节点重排序(以防止将不同前缀的非共享Token打包在一起)。此外,在每个节点内引入了一个映射列表(Mapping List)。当新请求搜索可重用前缀时,系统利用该映射列表通过高效的向量化索引操作(如s0'[m0])恢复原始Token序列,该操作耗时不到TTFT的$2\%$。
KV重排序前后元数据结构的对比。橙色(蓝色)矩形代表重要(不重要)的键

基于分数的缓存准入策略 现有的缓存策略(基于频率或近期访问)忽略了Chunk中重要KV的比例,导致重要KV在GPU缓存中的命中率降低,增加了PCIe传输。IMPRESS引入了重要性感知的缓存准入策略,为每个Chunk分配一个分数,分数为访问频率与其中包含的重要键/值比例的乘积。分数较高的Chunk优先缓存在GPU内存中,分数较低的缓存在CPU内存中。重要性比例作为移动平均值在每次Chunk访问后在线更新。
两种缓存替换策略的对比。(a) 是基于频率的缓存替换策略,(b) 是基于分数的缓存管理策略

双缓存替换算法 IMPRESS使用基于分数的缓存替换策略来管理GPU和CPU缓存,在CPU内存中维护两个最小堆以管理两个缓存中的Chunk并辅助驱逐。为了优化数据缓存,系统确保GPU和CPU缓存之间没有冗余,并在磁盘上保留所有Chunk的副本。当新请求到达时,系统定位相关Chunk。如果在GPU缓存中,则直接使用并更新分数;如果在CPU缓存中,则传输到GPU后更新分数,并与GPU缓存中最低分数比较以决定是否替换;如果在磁盘上,则加载到CPU缓存,传输必要向量到GPU,更新分数,并与两个缓存的最低分比较以决定其最终缓存位置。

实验环境

  • 数据集:选用LM-Evaluation-Harness基准测试中的四个代表性数据集:PIQA、RTE、COPA和OpenBookQA。通过在每个查询前预置2到10个Few-shot示例作为系统提示(跨查询共享)。四个数据集的请求前缀平均Token数范围为4.8k到5.7k。为了测试长前缀并防止内存溢出,将OPT-30B的最大前缀长度扩展为4K,其他模型为10K。
  • 模型架构:使用三种不同规模的开源OPT模型(OPT-6.7B、OPT-13B和OPT-30B),以及Llama2-7B和Llama2-13B。
  • 硬件配置:服务器配备$2 \times$ AMD EPYC 7763 CPU(64核)、128 GB DRAM、单张NVIDIA A100 GPU(80GB HBM)以及一块2TB Intel SSD(实测读取吞吐量约5GB/s)。GPU和CPU通过PCIe 4.0 x16连接。
  • 软件配置:系统基于FlexGen白盒模型实现。分配10GB GPU缓存和32GB CPU缓存用于前缀KV。Chunk大小统一设置为64个Token。

实验结果

模型生成质量
* 实验内容:在50%到5%的不同前缀KV保留率下,比较ReComp、AS+H2O+LRU和IMPRESS的准确率。
* 实验结果:IMPRESS在所有数据集和模型上对准确率的影响微乎其微,与基线相比准确率下降不到$1\%$。在某些情况下,IMPRESS甚至略微提高了准确率。
* 分析结论:专注于更重要的Token有时可以增强生成质量,证明了IMPRESS在减少加载量时能保持高度准确的模型输出(引用 Fig 15)。

平均TTFT
* 实验内容:在预热CPU和GPU缓存后,测量各系统的平均TTFT。COPA的KV保留率设为50%,其他数据集设为25%。
* 实验结果:IMPRESS的平均TTFT比领先解决方案提高了$1.2\times$到$2.8\times$。这归因于将前缀KV加载到GPU内存的I/O时间减少了$1.5\times$到$3.8\times$。
* 分析结论:选择性加载部分键和值显著缓解了I/O瓶颈。OPT-30B的TTFT比OPT-13B短,是因为它使用了较短的前缀以避免GPU内存溢出(引用 Fig 16, Fig 17)。

尾部延迟
* 实验内容:测量系统在RTE数据集上OPT-30B模型的p99尾部TTFT。
* 实验结果:ReComp、AS-like、AS+H2O+LRU、AS+H2O+LFU和IMPRESS的p99延迟分别为3.9s、9.3s、6.6s、5.9s和2.95s。
* 分析结论:IMPRESS实现了最短的尾部延迟,有效减少了从SSD加载KV时的长尾I/O延迟。

各优化技术的影响
* 实验内容:以AS+H2O+LFU为基线,依次加入+ITF(相似性引导的重要Token识别)、+RO(KV重排序)和All(基于分数的缓存管理),观察TTFT的变化。
* 实验结果:每项优化都减少了TTFT,All实现了最短的TTFT。技术贡献因模型和数据集而异(如OPT-30B/RTE中分别贡献60%、30%、10%;OPT-13B/COPA中贡献36%、8%、56%)。
* 分析结论:+ITF动态调整了每层KV加载量(引用 Fig 19);+RO将加载的Chunk数量平均减少了$1.2\times$(引用 Fig 20);基于分数的缓存管理将平均GPU命中率从68%提升到80%(引用 Fig 21)。证明了单项技术的有效性(引用 Fig 18)。

敏感性分析
* 实验内容与结果
1. 相似性阈值Alpha值:Alpha从0变到2,Alpha增加会降低阈值,减少KV加载并缩短TTFT,但略微降低准确率。设定为0.6取得最佳平衡(引用 Fig 22)。
2. Chunk大小:在16到256的Chunk大小范围内,IMPRESS比基线系统稳定提升$2.2\times$到$2.4\times$(引用 Fig 23)。
3. 数据集大小:在65GB到400GB的OpenBookQA变体上,IMPRESS始终优于基线,加速比在$1.2\times$到$2.0\times$之间(引用 Fig 24)。
4. 模型类型:在Llama2-7B和Llama2-13B模型上,IMPRESS实现了$1.7\times - 2.7\times$的加速(引用 Fig 25)。

结论

现有前缀KV重用系统在涉及磁盘I/O的大规模LLM服务中并不总能减少TTFT。本文提出了IMPRESS,一个多层前缀KV存储系统,通过仅加载重要KV来最小化I/O延迟。由于简单应用现有重要Token识别算法减少的I/O有限,IMPRESS首先引入了I/O高效的相似性引导的重要Token识别算法,以最小化I/O来识别重要KV。随后,提出了重要性感知的KV管理方法以优化存储和缓存。实验表明,与最先进的系统相比,IMPRESS将TTFT降低了高达$2.8\times$,同时保持了相当的推理精度。

补充细节

系统实现
IMPRESS选择在FlexGen【32, FlexGen: High-Throughput Generative Inference of Large Language Models with A Single GPU + 2023 + ICML】之上进行实现,因为其白盒模型实现有助于开发I/O高效的KV识别方法。具体而言,修改了mha函数以实现前缀重用,并使用attn_weight中的值来评估KV重要性。对于KV重排序,实现了PrefixKVLayer类来存储重排序后的KV和每层的映射列表。对于缓存管理,开发了具有基于分数策略的TokenCache类。

开销分析

  • 时间开销:相似性引导的重要Token识别技术加载探测头的键以确定索引集。虽然这增加了一些I/O和计算开销,但由于探测头数量有限,平均仅占系统总开销的$6\%$。此外,KV重排序异步按重要性对Token进行排序并重新打包到磁盘,实验总执行时间不到一分钟,且在关键路径之外运行,不侵入TTFT。
  • 空间开销:KV重排序为每个Chunk的元数据添加了一个映射列表,基于分数的缓存管理为每个Chunk添加了一个分数。在64-Token的Chunk大小下,这些添加占Chunk内存的不到$0.5\%$。此外,为了避免在加载探测头键时加载其他头的数据,系统将探测头的键单独进行冗余存储。这占所有前缀KV总存储量的$1.2\%$,考虑到大容量磁盘,此成本极低。

相关工作引用说明
* KV缓存复用:部分研究【15, 28, 32, 35】通过在请求内的迭代间重用KV来加速解码阶段,这与针对Prefill阶段的IMPRESS正交。近期的研究【5, 12, 14, 21, 39, 45】跨请求重用共享前缀KV以减少TTFT,但它们加载完整的前缀KV,在磁盘上会导致高I/O延迟。IMPRESS仅预取重要的KV以减少延迟。
* KV剪枝与量化:近期研究【17, 22, 32, 44】表明仅使用KV子集即可实现相似输出质量,但它们在Prefill阶段需要全量键。IMPRESS利用头部相似性,以最小I/O识别重要KV。其他研究【10, 21, 23, 32, 41】专注于KV量化以减少位宽,它们可与IMPRESS互补以进一步减少数据加载。