CacheSlide: Unlocking Cross Position-Aware KV Cache Reuse for Accelerating LLM Serving

发表时间: 2026-02 · FAST 2026

原文: https://www.usenix.org/system/files/fast26-liu-yang.pdf

作者/机构:Yang Liu, Yunfei Gu, Chentao Wu, Guangtao Xue, Jie Li, Minyi Guo (上海交通大学);Liqiang Zhang (济南浪潮数据技术有限公司);Junhao Hu (北京大学);Jie Meng (华为云)

速读

一句话结论 本文提出了一个名为 CacheSlide 的相对位置感知 KV Cache 管理系统,通过对齐缓存片段的位置编码并仅重算极少部分关键 Token 的注意力,在多智能体复杂提示词场景下实现了跨位置的 KV Cache 近乎无损复用,大幅降低了首字延迟并提升了系统吞吐量。

要解决什么问题 现有大模型在处理智能体工作流时,提示词通常由固定片段(如系统指令、历史对话)和动态更新片段(如函数调用、工作记忆)交替组成。现有的 KV Cache 复用策略卡在了一个根本矛盾上:位置对齐与计算效率无法兼得。依赖绝对位置的 PDC 方法(如 ContextCache、PromptCache)只能复用前缀,一旦中间的动态片段长度发生变化,后续固定片段的绝对位置就会偏移,导致缓存失效或需要维护海量位置版本的缓存。不依赖位置的 PIC 方法(如 CacheBlend、EPIC)虽然允许在任意位置复用,但会强制把复用片段的起始位置重置为零,这引发了位置错位 KV 漂移(PMKD)问题,即缓存的 KV 值与实际位置应有的 KV 值产生严重偏差,导致注意力错位和精度下降。为了弥补精度,PIC 方法需要重算部分 Token,但这在系统底层引入了同层内“先加载后写入”的阻塞锁,且在显存不足触发 SSD 换页时,缺乏脏页感知的驱逐策略会导致严重的随机写入和写放大,最终拖慢了首字延迟。

怎么做的 为了绕开绝对位置偏移和注意力错位的卡点,作者提出了一种相对位置依赖缓存(RPDC)范式,核心思路是只要固定片段的相对顺序不变,就通过降低位置编码的敏感度来维持缓存的一致性,并仅重算极少部分关键 Token 来修复跨片段注意力。该方法由三个关键部件构成。首先是分块上下文位置编码(CCPE),它基于对位置变化不敏感的 CoPE 编码,将提示词划分为复用块和重算块。通过在特定任务上预训练,CCPE 为复用块分配最常见的位置编码区间,使得实际推理时的位置偏移量极小,从而近乎无损地保留了固定片段内部以及固定片段之间的注意力。其次是加权修正注意力机制,专门用于恢复固定片段与动态片段之间的跨注意力。在模型的第一层,系统会完整重算所有片段,计算缓存 Key 与重算 Key 的平方差 $d_i = \lVert K_i^{\text{recompute}} - K_i^{\text{reuse}} \rVert^2$,并挑选出偏差最大的前 $k$ 个 Token。从第二层开始,系统只对这部分选中的 Token 进行重算,并使用学习到的权重 $\alpha_i$ 将重算的 KV 与缓存的 KV 进行融合,更新公式为:

$$K_i \gets \alpha_i K_i^{\text{recompute}} + (1 - \alpha_i) K_i^{\text{reuse}}$$

其中权重定义为 $\alpha_i = \frac{\lVert K_i^{\text{recompute}} - K_i^{\text{reuse}} \rVert^2}{\lVert K_i^{\text{reuse}} \rVert^2}$。每经过四层,系统会评估这批 Token 的余弦相似度,若相似度达标则将其移出重算集合,并替补入其他偏差较大的 Token。最后是底层系统 SLIDE,它承担了消除 I/O 瓶颈的职责。在同层内,它通过为重算的 Token 预分配新页,打破了加载缓存和写入更新之间的串行阻塞,实现了加载与计算的流水线并行;在显存承压需要向 SSD 溢出时,它优先驱逐不包含重算 Token 的干净页,对于包含重算 Token 的脏页,则按包含数量从多到少排序驱逐,以此合并写入操作,大幅降低了随机写入带来的延迟。

效果如何 实验在单张或双张 A100(80GB)GPU 上进行,测试了 Mistral-7B、MPT-30B 和 Llama-3 70B 三款模型,任务覆盖了 Reflexion(思维链)、MemGPT(记忆管理)和 SWE-Agent(工具调用)三种典型智能体场景。对比基线包括代表 PDC 路线的 ContextCache(仅复用前缀)和 PromptCache(穷举位置预计算),以及代表 PIC 路线的 CacheBlend(固定重算 18% 比例)和 EPIC(重算边界 64 个 Token)。在单并发推理下,CacheSlide 展现了最佳的精度-延迟权衡:相比 ContextCache,首字延迟降低了 2.4 至 3.3 倍且精度几乎无损;相比 CacheBlend 和 PromptCache,首字延迟分别降低了 1.21 至 2.11 倍和 1.12 至 2.45 倍,同时精度分别提升了 1.97 至 2.28 倍和 1.41 至 3.95 倍。在并发批处理(Batch Size 为 8)的高负载场景下,CacheSlide 的吞吐量比 CacheBlend 和 EPIC 高出 45.2% 至 82.2%,且吞吐量的标准差降低了 58.6% 至 77.4%,证明了其在 I/O 抖动下的稳定性;同时,SSD 的写放大系数降低了 3.11 至 3.62 倍,显存占用比 PromptCache 减少了 1.63 至 1.9 倍。该方法的代价在于,模型需要经过基于适配器的持续预训练来支持 CoPE 编码(尽管向后兼容原生 RoPE/ALiBi),且为了达到最佳的每秒查询率,需要针对具体负载微调重算比例(实验中最优值约为 26%)和相似度阈值(约为 0.12)这两个超参数。

引言与主要贡献

随着大型语言模型(LLMs)越来越多地部署在具有复杂提示结构的基于智能体(Agent)的应用程序中,输入通常包含不变的固定段和动态更新的段。现有的KV缓存复用策略——位置相关缓存(PDC)和位置无关缓存(PIC)——在处理这些场景时存在明显不足:PDC施加了严格的位置约束,而PIC则由于位置未对齐的KV漂移(PMKD)和窗口填充问题引入了显著的计算开销。

本文在智能体工作流中识别出一种独特的模式,称为相对位置相关缓存(RPDC),即尽管绝对位置发生偏移,可复用段仍保持一致的相对顺序。为了解决这一模式下的挑战,本文提出了CacheSlide,这是一个新颖的KV缓存管理系统。

主要贡献如下:
1. 形式化并表征了相对位置相关缓存(RPDC)范式,突出了其与经典PDC和PIC方法的不同特性。
2. 提出了分块上下文位置编码(CCPE),专为具有可变提示分段的RPDC场景量身定制。同时引入了加权校正注意力(Weighted Correction Attention),能够高效融合局部和缓存的KVs,实现轻量级且准确的上下文复用。
3. 扩展了现有的KV缓存管理范式,提出了SLIDE:包含溢出感知(Spill awareness)、层内加载-写入解耦(Load-write decoupling)以及脏页驱逐(Dirty-page Eviction)。
4. 在多个LLMs和智能体基准测试上的实验评估表明,CacheSlide显著优于最先进的基线方法,延迟降低了$3.11 - 4.3\times$,吞吐量提高了$3.5 - 5.8\times$,且精度损失可以忽略不计。

图1:三种不同KV缓存方案的框图:(a) 位置相关缓存 (PDC),(b) 位置无关缓存 (PIC),(c) 相对位置相关缓存 (RPDC)。
图1:三种不同KV缓存方案的框图:(a) 位置相关缓存 (PDC),(b) 位置无关缓存 (PIC),(c) 相对位置相关缓存 (RPDC)。

背景知识、关键观察与设计原则

智能体提示的结构与工作流 智能体扩展了基础LLM的能力,使其具备自主决策逻辑、内存管理和工具集成能力。每一轮的输入可以抽象为系统提示(静态前缀)、更新提示(每轮重新计算)和固定提示(静态后缀)的组合。在处理时,系统提示在会话开始时发送一次;在每次推理轮次中,生成新的更新提示,并将其与系统提示和现有的后缀提示拼接形成完整提示。LLM接收完整提示后,返回响应以及下一轮更新提示的内容。
图2:多段更新和单段更新的示例。

最先进的智能体提示范式 当前基于LLM的智能体系统主要分为三种范式:思维链智能体(如Reflexion)采用迭代推理,每次只修改最小的控制段,并将完整推理记录累积到后缀中;以内存为中心的智能体(如MemGPT)使用持久的系统前缀和工作上下文缓冲区,通过API修改缓冲区,并将历史交互追加到FIFO结构的后缀中;工具增强提示框架(如SWE-Agent)使用不变的系统指令前缀和历史消息后缀,在推理周期中动态注入函数调用规范作为变量段。
图3:对于各种智能体,输入提示中可复用KV缓存占总输入长度的比例及其方差。

现有KV缓存复用机制的局限性 在智能体场景中,文本的大部分内容是可复用的。现有的KV缓存复用分为位置相关缓存(PDC)和位置无关缓存(PIC)。PDC(如ContextCache和PromptCache)由于严格的绝对位置约束,无法简单地交换固定段和更新段的位置,因为这会改变语义或破坏数据依赖性,导致其在智能体场景中效用有限。PIC(如CacheBlend和EPIC)虽然放弃了绝对坐标,但会导致缓存KVs与重新计算的KVs之间出现位置/注意力不对齐。PIC通过预选部分标记重新计算来恢复精度,但由于注意力头在解码阶段才明确哪些标记最重要,预填充阶段的预选无法保证稳定的精度。此外,PIC在系统层面存在加载-写入锁导致的层内I/O阻塞,以及缺乏脏页感知驱逐导致的写放大(WAF)问题。
图4:(a) 显示随着位置偏移增加(0-1000个标记),使用RoPE的CKSim下降了>90%,而使用CoPE的CKSim仅下降了28%。(b) 显示在相同的推理轮数下,应用窗口填充(1K/2K/3K)相对于基线推理的F1分数降低了>78.1%。

量化位置不对齐的KV漂移(PMKD) PMKD被定义为由于请求之间段位置变化导致的位置编码差异,从而引起的相同文本KV缓存相似度的差异。通过对比高位置敏感度的RoPE和低位置敏感度的CoPE,使用CKSim指标量化PMKD:

$$ \mathrm{CKSim}(reuse, recompute) = \frac{1}{H} \sum_{i=1}^{H} \frac{K_i^{(\mathrm{recompute})} \cdot K_i^{(\mathrm{reuse})}}{\lVert K_i^{(\mathrm{recompute})} \rVert \lVert K_i^{(\mathrm{reuse})} \rVert} $$


实验表明,随着位置偏移的增加,RoPE的CKSim急剧下降,而CoPE保持相对稳定。这是因为RoPE为每个标记分配唯一位置,而CoPE允许相邻标记共享索引,从而在更新段长度变化时显著减少了固定段的位置偏移($\Delta pos$)。
图5:与RoPE相比,CoPE在KV缓存复用期间实现了缓存位置与真实位置之间更好的对齐,产生了更平缓的映射斜率,从而大幅减少了位置差异(Δpos)。

窗口填充的局限性 试图通过窗口填充(强制固定更新段的长度)来限制位置漂移的方法在实际中表现不佳。实验显示,使用窗口填充的推理精度明显低于基线推理,因为强制固定长度会导致关键信息丢失或增加PMKD。在真实智能体场景中,更新段的标记数量波动巨大,难以找到合适的窗口大小。

相对位置相关缓存(RPDC)的设计原则 基于上述分析,本文引入了RPDC范式。在RPDC中,上下文由多个必须保持相对顺序固定的段组成,而这些可复用段之间的内容不断更新。通过保持可复用段的相对顺序,缓存KVs与从头计算的KVs之间的位置差异保持在较小范围内,从而使得固定段内部以及固定段之间的注意力可以近乎无损地复用,仅需通过重新计算固定段中的一小部分标记来恢复固定段与更新段之间的交叉注意力。
图6:提出的CacheSlide系统工作流框图

方法细节

系统架构与核心组件 CacheSlide包含三个核心组件:(i) CCPE编码模块;(ii) 用于高效注意力恢复的加权校正注意力模块;(iii) SLIDE:用于并行优化和减少SSD访问延迟的KV缓存管理模块。在端到端工作流中,CCPE编码器首先处理用户输入,并根据学习到的任务特定模式将其划分为复用块和重计算块。对于复用块,CCPE模块通过哈希映射检索其KV缓存,推理与重计算块联合进行。在预填充期间,加权校正注意力模块在复用块中选择一个标记子集进行重计算,融合复用块的交叉注意力以高效恢复注意力。并行地,SLIDE通过重定位复用块中选定的KVs来增加KV缓存加载和更新之间的并发性。在内存压力下,它优先将没有选定标记的干净页溢出到SSD,从而减少磁盘访问延迟。在解码期间,通过将KVs覆盖到具有选定标记的页面中来减少存储占用。
图7:分块上下文位置编码的过程。

分块上下文位置编码(CCPE)机制 为了减少缓存KV与重新计算KV之间的位置不对齐,系统采用了分块上下文位置编码(CCPE)。CCPE将提示划分为重计算块和复用块,并为复用块分配固定的位置编码范围。CCPE在具有低位置敏感度的CoPE上实例化,并通过特定任务的预训练学习这些范围,使得绝对偏移引起的位置变化更加平滑。在智能体设置下,提示通过模板被划分为重计算块和复用块,为复用块分配位置索引以最小化其缓存上下文与推理时使用的位置之间的对齐差距。

单任务模式下的位置编码预训练 大多数在智能体场景下复用的KV缓存发生在单任务模式下(例如对同一个问题的多轮推理,或与单个用户的多轮交互中的内存管理)。系统对一类任务执行基于CoPE的预训练,以隔离并捕获复用块中最常观察到的编码模式。这些模式随后被分配给复用块,使得缓存位置在实际推理期间与实际编码保持高度一致。例如,在多轮推理中,缓存的位置索引跨度为10到20,而实际传递中的跨度为9到21或10到20。因此,对于复用块中的标记$i$,其缓存位置编码$p_{i\_\mathrm{cache}}$与实际推理期间的位置编码$p_{i\_\mathrm{real}}$之间的$\Delta pos$差异可以忽略不计。这种方法旨在最大化固定段中的CKSim。

CCPE算法执行流程 算法1展示了CCPE的实现。在预训练阶段,单任务类型的提示由CoPE编码,直方图识别出最频繁的编码$e^*$。随后根据智能体提示模板将提示划分为$K$个有序块,并标记为复用或重计算。在预填充处理阶段,新输入按照相同任务的块方案进行划分。如果块$i$是复用块且通过哈希映射找到了KV缓存,则加载它;否则,预填充块$i$以生成KV缓存并存储。如果块$i$是重计算块,则根据当前输入的CoPE编码分配位置编码。

# Algorithm 1: CCPE Algorithm
# Pretraining Phase:
Require P: set of prompts for one task; K: total number of chunks; R: indices of chunks to reuse
Initialize histogram H
for all p in P do
    e = CoPEencode(p)
    Update H with e
end for
e* = argmax_e H[e]  # Most frequent CoPE encoding
Store (e*) for later reuse

# Chunk Role Assignment:
for i = 1 to K do
    if i in R then
        Mark chunk c_i as reuse
    else
        Mark chunk c_i as recompute
    end if
end for

# Prefill Phase:
Require new prompt p_new, e*, pos = CoPEencode(p_new)
divide p_new into K chunks {c_1, ..., c_K}
for i = 1 to K do
    if i in R then
        if KV_CACHE_LOOKUP(content_hash(c_i)) then
            Load KVcache_i
        else
            c_i = e*[i] and then Prefill KVcache_i
        end if
    else
        c_i = pos[chunk_i]
    end if
end for

固定段内部与跨段注意力复用 CCPE有效地对齐了固定段中的位置编码,为复用固定段的注意力(包括段内注意力和固定段之间的交叉注意力)创造了机会。由于标记$i$的KV缓存依赖于标记$0, \ldots, i-1$,基于注意力稀疏性【14,Attention is naturally sparse with gaussian distributed input+2024+arXiv】,【23,RaaS: Reasoning-aware attention sparsity for efficient llm reasoning+2024+ACL】,【41,From softmax to sparsemax: A sparse model of attention and multi-label classification+2016+ICML】,【84,Informer: Beyond efficient transformer for long sequence time-series forecasting+2021+AAAI】,只有这些标记的一个子集对标记$i$产生实质性影响。当这个子集位于固定段内时,CCPE的位置对齐确保了这些标记的KV缓存是对全输入重新计算所得KVs的近乎无损的近似。

跨层KV相似性与加权校正注意力 尽管固定段的KV缓存可以被有效复用,但恢复固定段与更新段之间的交叉注意力仍然具有挑战性。在预填充阶段,每个标记的KVs是从第0层到第$i$层逐层填充的。对于任何给定标记,其相邻层的KVs表现出相似性,且这种相似性随着层深度的增加而增加,深层KVs变得高度相似【17,Omnikv: Dynamic context selection for efficient long-context llms+2025+ICLR】,【33,Minicache: Kv cache compression in depth dimension for large language models+2024+NeurIPS】,【73,Pyramidinfer: Pyramid kv cache compression for high-throughput llm inference+2024+ACL】。利用这一特性,系统提出了加权校正注意力,主要分为两个阶段:首先是选择前$\delta \cdot k$个标记。在第1层,系统重新计算所有段的KVs。对于每个标记$i$,计算平方偏差$d_i = \lVert K_i^{\mathrm{recompute}} - K_i^{\mathrm{reuse}} \rVert^2$,定义索引集$S = \{i \mid d_i > 0\}$,按降序排列分数并选择前$k$个标记,将其索引集记为$S_k \subseteq S$。其次是相似度门控的加权融合。对于每一层$i > 1$,系统仅重新计算$S_k$中的标记,使用感知偏差的权重融合重新计算的KVs和缓存的KVs,并重新评估它们的CKSim。每隔四层,设置一个CKSim阈值$\tau$,如果对于任何标记$j \in S_k$,其CKSim $< \tau$,则从$S_k$和$S$中移除$j$,并将$S \backslash S_k$中具有最大偏差分数$d_m$的标记$m$添加到$S_k$中。
图8:加权校正注意力的方案。

相似度门控的加权融合执行细节 在相似度门控加权融合阶段,对于每个标记$i \in S_k$,算法仅针对与其相关的更新段重新计算KV。重新计算的KV和缓存的KV随后根据权重$\alpha_i$进行融合。由于仅计算了选定标记和更新段的KV缓存,系统仍需将其与固定段的注意力进行融合。通常,选定标记的KV缓存更强调更新段,但由于前$k$个标记是按固定比例选择的,一些选定标记实际上可能与真实KVs只有很小的差异。为了减轻这种风险,系统融合了更新段和固定段的注意力。在每处理四层后(遵循相似度评估的标准实践),算法评估重新计算的KVs与复用的KVs之间的CKSim。如果标记$i$的CKSim低于预定义阈值$\tau$(表明收敛充分),算法将$i$从$S_k$中移除,并将$S \backslash S_k$中表现出最大剩余差异的标记提升到$S_k$。一旦标记$i$重新计算的KV与其KV缓存之间的差异变得可以忽略不计,层间相似性意味着标记$i$在后续层中的KVs与真实KVs之间的差异同样可以忽略不计,因此系统继续恢复其他标记。CKSim阈值和前$\delta \cdot k$策略选择的标记比例显著影响生成质量,建议CKSim阈值的最佳值为0.12,前$k$比例为0.26。

# Algorithm 2: Weighted Correction Attention
Require: cached KV {K_i^reuse, V_i^reuse}, total layers L, threshold \tau, stability \epsilon, compute fusion weight \alpha_i
# (1) Initialization - Layer 1:
for i = 1 to N do  # full recompute on entire prompt
    d_i = \lVert K_i^recompute - K_i^reuse \rVert^2
    compute \alpha_i
end for
S = {i | d_i > 0}  # indices with positive deviation
S_k = Top-k indices in S ranked by d_i

# (2) Similarity-Gated Weighted Fusion - Layer 2 to L:
for \ell = 2 to L do
    for all i in S_k do
        K_i = \alpha_i K_i^recompute + (1 - \alpha_i) K_i^reuse  # same for V_i
        \alpha_i = \frac{\lVert K_i^recompute - K_i^reuse \rVert^2}{\lVert K_i^reuse \rVert^2}
        if \ell mod 4 == 0 then  # every four layers, apply gating
            c_i = CKSim(K_i^recompute, K_i^reuse)
            if c_i < \tau then
                remove i from S_k
                S_k = S_k \cup {m \in S \setminus S_k with max d_m}
            end if
        end if
    end for
end for

加权校正注意力带来的系统级开销 尽管加权校正注意力(WCA)在KV缓存跨输入位置滑动时有效地恢复了注意力,但它引入了类似于PIC的系统级副作用。因为WCA需要逐层加载KV缓存并更新选定标记的KVs,这导致了层内的加载-写入锁。当容量压力迫使脏页(将写入选定标记的KVs)溢出到SSD时,会导致SSD上的随机写入和更高的写放大。

SLIDE内存与存储管理机制 为了解决这些问题,设计了KV缓存管理器SLIDE(Spill-aware & Load-write decoupling Intra-layer & Dirty-page Eviction)。在预填充期间,在第$i$层开始时,SLIDE启动重新计算,同时流水线式地加载第$i$层的KV缓存。如果重新计算在加载完成之前完成,SLIDE将选定标记的KVs写入新分配的页面,而不是阻塞在加载上(即分配额外的页面K并将KVs写入页面K)。为了防止存储浪费,解码优先将KVs覆盖到选定标记的原始KV缓存槽中,然后进行正常的页面分配(例如,首先将KVs写入页面1中的更新槽映射,然后分配页面m)。相反,如果KV缓存加载先完成,则将选定标记的KVs写入更新的槽映射中。从第2层开始,如果页面包含加权校正注意力中的选定标记,SLIDE将其标记为脏页,否则标记为干净页,并为每个脏页维护其包含的选定标记计数。当预填充中存储受限时,KV缓存溢出到SSD,SLIDE首先驱逐干净页,然后按选定标记计数对脏页进行排序,按降序驱逐。优先处理干净页可防止对脏页的碎片化写回。按选定标记计数对脏页排序促进了写入合并,减少了不可避免的脏页溢出时的随机写入和写放大(WAF)。在解码期间应用相同的策略:按选定标记计数对脏页排序并降序驱逐,实现合并覆盖和顺序写回。
图9:SLIDE中解耦的加载-写入和溢出感知的KV缓存管理。

SLIDE的具体实现细节 SLIDE的实现基于vLLM 0.8.5【63,vllm0.8.5+GitHub】。在预填充初始化阶段(PagedAttention._init_cache中),系统为第2到n层预分配与第1层观察到的选定标记数量成比例的额外KV页面。这些页面被注册到每个请求的BlockTable和slot_mapping中,以实现层内加载-写入解耦。在加权校正注意力期间的重定位阶段,选定标记的KVs被写入新分配的页面,并相应更新block_tables和slot_mapping。在随后的解码覆盖阶段,这些block_tables及其关联的slot_mapping被复用于就地写入,直到可用槽耗尽。耗尽后获取新页面并分配新的条目。从第2层开始,如果页面包含任何选定标记,则被标记为脏页,否则保持干净。每个脏页维护一个计数器,当slot_mapping将选定标记路由到该页面时更新。在溢出策略和合并方面,当存储受限时,SLIDE优先驱逐干净页,然后按选定标记计数降序驱逐脏页,脏范围被合并为顺序写回以减少随机写入和WAF。

实验环境

实验结果

精度与TTFT权衡 在批处理大小为1且禁用束搜索的设置下评估基线。结果显示,CacheSlide在所有模型和数据集上始终处于帕累托前沿,提供了极佳的精度-TTFT权衡。相比之下,极快的系统(如EPIC、PromptCache、CacheBlend)精度损失严重;而优先考虑质量的方法(如Recompute、ContextCache)虽然精度高但TTFT显著增加。CacheSlide的优势在于利用CCPE复用固定段注意力,使用WCA恢复交叉注意力,并通过SLIDE解耦加载与计算。
图10:在三个模型和数据集上,与ContextCache相比,CacheSlide在精度损失可忽略不计的情况下,实现了2.4-3.3倍的TTFT降低。与CacheBlend相比,TTFT降低了1.21-2.11倍,精度提高了1.97-2.28倍。与PromptCache相比,TTFT降低了1.12-2.45倍,精度提高了1.41-3.95倍。

并行推理与束搜索(Beam Search) 在批处理大小为2、4、6的并行推理中,随着序列数量增加,CacheSlide的TTFT增加幅度小于基线,相比最佳基线提升了1.2倍到2.3倍。随着批处理大小增加,更多KV缓存溢出到SSD,PromptCache和CacheBlend由于缺乏有效的溢出管理而性能下降,而CacheSlide通过SLIDE优化了溢出管理。在束搜索设置下(宽度为2至6),CacheSlide相比最佳基线的提升从1.1倍增加到2.1倍,展示了在存储压力增长下的卓越鲁棒性。
图11:使用Mistral-7B在MemGPT和Multi-Session Chat数据集上进行并行推理和束搜索(仅共享系统提示)。

SLIDE组件消融实验
- 加载-写入解耦(LWD):LWD组件大幅减少了并行等待时间,LWD时间远小于加载和重计算时间。
- 脏页驱逐:随着批处理大小从4增加到16,脏页驱逐组件显著减少了写入停顿(等待KV缓存加载的时间),有效缓解了磁盘写入碎片化。
- 写放大(WAF)与显存占用:在SWE-Agent工作负载下,SLIDE大幅减少了SSD写入流量(降低3.11-3.62倍)。与PromptCache相比,CacheSlide平均减少了1.71倍的VRAM使用量,因为它每个固定段只存储一份KV缓存副本。
图12:CacheSlide的性能评估:(a) SLIDE组件将层内并行延迟降低了26.7-51.5%。(b) SLIDE将写入停顿减少了66.9-73.5%。(c) CacheSlide将SSD写放大降低了3.11-3.62倍。(d) GPU存储减少了1.63-1.9倍。

吞吐量鲁棒性 在大规模并行设置(批处理大小=8)下,CacheSlide的每秒吞吐量平均比基线(CacheBlend和EPIC)高63.1%,且吞吐量的标准差降低了68.9%。由于CacheSlide采用了脏页驱逐机制,避免了额外的磁盘访问,从而在实现吞吐量大幅提升的同时,最小化了外部存储I/O不可预测性带来的性能波动。
图13:在Mistral-7B和MPT-30B上评估吞吐量效率。CacheSlide的吞吐量分别比CacheBlend和EPIC高49.6%和45.2%,标准差降低了77.4-58.6%。在MPT-30B上,吞吐量高75-82.2%,标准差降低75.8-64.1%。

Top-k与CKSim阈值的影响 实验测试了Top-k比例(0%到100%)和CKSim阈值(0到1)对QPS(每秒正确完成任务数)的影响。结果一致表明,在Top-k $\approx 0.26$ 且 CKSim $\approx 0.12$ 附近,QPS达到峰值。这得益于注意力机制的稀疏性(仅26%的关键标记足以维持推理质量)以及模型深层表示的相似性。结合较小的Top-k和自适应层的CKSim能够高效复用KV缓存,同时平衡性能与输出保真度。
图14:QPS热力图作为top-k(x轴)和CKSim(y轴)的函数。

结论

CacheSlide是对行业标准前缀缓存范式的重大推进。它优于最先进的PIC/PDC基线,将延迟降低了$3.11 - 4.3\times$,吞吐量提升了$3.5 - 5.8\times$,并将SSD写放大降低了$3.11 - 3.62\times$。在智能体工作负载上,它实现了计算节省、存储友好行为以及高质量的输出。

补充细节

相关工作空间
- LLM服务优化:如vLLM引入PagedAttention实现高吞吐量,SGLang提供领域特定前端和优化后端。其他调度技术包括解耦预填充与解码(DistServe)、连续批处理以及多LoRA集成。
- 上下文缓存(CC):PDC方法(如CacheGen、PromptCache)的复用仍然依赖于位置;PIC方法(如CacheBlend、EPIC)尝试解决位置无关问题。
- 稀疏性:分为动态稀疏性(如运行时确定重要标记)和静态稀疏性(依赖预定义的稀疏模式)。
- 智能体生成:智能体通过总结用户历史(MemGPT)、分析推理链(Reflexion、CoT)和访问外部工具(AutoGen)来增强LLM的能力,从而在复杂任务中实现显著改进。


方法细节中引用的参考文献汇总:
- 【14,Attention is naturally sparse with gaussian distributed input+2024+arXiv】用于支持注意力稀疏性的理论基础。
- 【17,Omnikv: Dynamic context selection for efficient long-context llms+2025+ICLR】用于说明模型跨层KV表示的相似性。
- 【23,RaaS: Reasoning-aware attention sparsity for efficient llm reasoning+2024+ACL】用于支持注意力稀疏性的理论基础。
- 【33,Minicache: Kv cache compression in depth dimension for large language models+2024+NeurIPS】用于支持深层KVs变得高度相似的观察。
- 【41,From softmax to sparsemax: A sparse model of attention and multi-label classification+2016+ICML】用于支持注意力稀疏性的理论基础。
- 【63,vllm0.8.5+GitHub】说明SLIDE系统的底层代码实现基于vLLM 0.8.5。
- 【73,Pyramidinfer: Pyramid kv cache compression for high-throughput llm inference+2024+ACL】用于支持跨层KV表示相似性及深层KVs高度相似的观察。
- 【84,Informer: Beyond efficient transformer for long sequence time-series forecasting+2021+AAAI】用于支持注意力稀疏性的理论基础。