GrowPage:面向高效LLM推理服务的按需KV预算管理
摘要
GrowPage 是一个按需KV预算框架,它动态管理缓存容量以提高LLM推理服务的效率,相比现有方法实现了更优的性能-吞吐量权衡。
arXiv:2609.03494v1 公告类型:新
摘要:长输出推理使得键值(KV)缓存成为高效LLM服务的关键内存瓶颈。现有的KV压缩方法通常依赖于预定义的每请求预算,并且仅调整保留哪些KV状态,导致整个解码过程中总容量固定。然而,推理工作负载显示出显著的动态需求变化:不同请求需要不同的KV容量,且单个请求的注意力需求在生成过程中会演变。我们介绍了\textbf{GrowPage},一个按需KV预算框架,它将KV容量视为运行时资源。GrowPage维护轻量级的双时间尺度查询摘要,以捕获近期和长期的注意力行为,并使用其相对注意力工作集来估计需求演变。在每个容量边界,GrowPage要么在当前分配内压缩KV状态,要么在更广泛需求出现时获取额外的物理页。通过与PagedAttention的页面级内存抽象集成,GrowPage保留了连续批处理和前缀缓存。在多个模型上的推理基准测试实验表明,GrowPage相比现有方法实现了更优的性能--吞吐量权衡。
查看缓存全文
缓存时间: 2026/09/04 06:06
# GrowPage:面向高效LLM推理服务的按需键值预算管理 来源:https://arxiv.org/html/2609.03494 **作者信息** 钱坤 | 中国科学院深圳先进技术研究院、鹏城实验室、中国科学院大学 熊子南 | 鹏城实验室 王浩飞 | 鹏城实验室 宋珍 | 鹏城实验室 向阳 | 鹏城实验室 张子瑶 | 鹏城实验室 郑海融 | 鹏城实验室 通讯邮箱:[[email protected]†] #### 摘要 长输出推理使键值缓存成为高效LLM服务的关键内存瓶颈。现有KV压缩方法通常依赖预定义的单请求预算,仅调整保留的KV状态,而整个解码过程的总容量保持不变。然而推理工作负载存在显著的需求差异:不同请求需要不同的KV容量,且单个请求的注意力需求在生成过程中会动态变化。我们提出**GrowPage**——一种按需键值预算管理框架,将KV容量视为运行时资源。该框架维护轻量级的双时间尺度查询摘要,以捕获近期和长期注意力行为,并利用其相对注意力工作集估计需求演变。在每个容量边界,GrowPage要么压缩当前分配内的KV状态,要么在需求扩大时申请额外物理页。通过与PagedAttention的页面级内存抽象集成,GrowPage保持了连续批处理和前缀缓存能力。在多模型推理基准测试实验中,GrowPage实现了优于现有方法的性能-吞吐量权衡。 ## 1 引言 大型推理模型(Yuan et al., 2025;Guo et al., 2025)通过生成长链式思考过程(CoTs),在数学推理、代码生成等复杂任务上展现出强大性能(Wei et al., 2022)。然而这种能力伴随着高昂的服务成本:推理模型可能生成数万token,持续扩张键值缓存。当多个长时运行的推理请求同时服务时,内存占用限制了可驻留GPU的请求数量,使KV缓存成为高效LLM服务的主要瓶颈(Hu et al., 2025;Chitty-Venkata et al., 2026)。 这一压力推动了KV缓存压缩的广泛研究。早期方法主要减少提示KV状态(Li et al., 2024;Cai et al., 2024;Feng et al., 2026),近期方法则将token淘汰扩展到解码阶段以限制长输出生成期间的缓存增长(Ghadia et al., 2025;Cai et al., 2026;Liao et al., 2025;Ramachandran et al., 2026)。但许多方法难以与现代服务机制(如连续批处理、前缀缓存)集成,导致算法层面的内存节省未必转化为服务效率提升。 Zipage(Liao et al., 2026)通过压缩分页注意力机制弥合了这一鸿沟,将逐token KV淘汰与PagedAttention结合,同时保留核心服务能力。然而与大多数现有方法一样,Zipage仍基于预定义的单请求KV容量限制运行。这既未充分利用PagedAttention基于块的内存管理(原生支持增量物理页分配),也与推理请求的异构内存需求不匹配。 现有自适应方法可能改变保留的KV状态或预算分配方式,但通常保持单请求总容量固定。**GrowPage则将容量本身作为在线决策变量**。如图1(a)所示,宽松预算会过度分配给低需求请求,而激进预算可能导致高需求请求容量不足并淘汰关键推理历史。调整固定预算仅是在内存浪费与容量不足之间移动操作点。 > **图1**:LLM推理的KV预算策略对比示意。(a) 低/高需求请求下的固定预算Zipage与按需GrowPage;(b) Qwen3-8B在AMC23上的推理性能与吞吐量关系 第2节的分析揭示,这种不匹配源于两个层面:最小充分KV预算在不同请求间差异显著,且单个请求的注意力集中度在解码过程中持续演变。这促使我们将单请求KV容量视为运行时变量而非预设静态预算。我们从理论上建立了注意力集中度与保留注意力输出所需KV容量的关联,并实验证明:由近期和长期查询摘要引起的相对工作集差异,可为需求演变追踪提供轻量信号。 基于这些发现,我们提出**GrowPage**——面向高效LLM推理服务的按需KV预算框架。该框架维护轻量级双时间尺度查询摘要,以长时摘要为历史参考,短时摘要捕获近期注意力行为,通过相对工作集估计当前需求趋势。在每个容量边界,GrowPage要么压缩现有分配内的历史KV状态,要么申请额外物理页。通过将此决策与PagedAttention内存管理耦合,GrowPage在保持连续批处理和前缀缓存能力的同时,实现了单请求KV容量自适应。在多个数学推理、代码生成基准测试及多样化模型架构中,GrowPage持续优化推理性能-吞吐量权衡(图1(b)为Qwen3-8B在AMC23上的典型结果)。 **主要贡献**: - 揭示推理服务中固定KV预算导致的需求失配问题:KV需求在不同请求间和解码过程中均存在差异,静态容量限制易导致内存过度分配或保留不足。 - 提出GrowPage按需KV预算框架:利用双时间尺度查询摘要估计注意力需求演变,指导在线压缩或增量物理页分配。 - 实现与PagedAttention服务机制的协同设计:将在线需求估计转化为页面级内存操作,在保持连续批处理和前缀缓存能力的同时,提升LLM推理服务的性能-吞吐量权衡。 ## 2 为何需要按需KV预算管理? 静态KV预算假设内存需求可通过整个解码过程的固定容量充分捕获。本节从请求间异构性和请求内时变性两个互补视角检验该假设。 **观察1:最小充分KV预算在不同请求间差异显著** 我们首先量化单个推理请求所需的KV容量。对每个请求-预算对进行多次独立生成,聚合正确率以降低采样方差。给定预算集$\mathcal{B}$,定义请求$i$的*最小充分KV预算*: $$B_i^\star = \min\left\{ B \in \mathcal{B} \;\middle|\; c_i(B') = 1, \ \forall B' \in \mathcal{B}, B' \geq B \right\}$$ 其中$c_i(B)$表示预算$B$下请求$i$是否被正确回答(基于多次独立生成)。要求在所有更大测试预算下均保持正确性,可减少偶尔非单调结果的影响。在任何测试预算下均未稳定解决的请求归类为*未解决*。 > **图2**:Qwen3-8B最小充分KV预算分布(AIME24、AMC23、LiveCodeBench) 如图2所示,$B_i^\star$在三个基准测试中覆盖整个测试范围。这种广泛分布表明显著的请求间异构性:小固定预算会导致高需求请求容量不足,而大固定预算则为低需求请求不必要地保留KV内存。附录I进一步表明,GrowPage通常为最小充分预算较高的请求分配更大的自适应容量,验证了其请求级需求适应能力。 **观察2:KV需求在解码过程中显著变化** 先前研究表明,长篇推理过程会经历不同推理阶段,呈现显著不同的注意力稀疏模式(Ramachandran et al., 2026)。如图3所示,DeepSeek-R1 Distill Llama 8B在LiveCodeBench上的代表性请求,其注意力稀疏度在解码过程中持续变化,反复在集中与分散模式间转换。这种时变性表明请求所需的历史KV信息量本身是非平稳的,使解码前设定的固定容量在某些阶段过于保守,而在其他阶段可能不足。 > **图3**:DeepSeek-R1 Distill Llama 8B在LiveCodeBench上的解码过程注意力稀疏性变化 这些观察共同揭示KV需求在不同请求间和解码过程中均存在显著差异,促使我们将KV容量视为按需资源而非固定预留。下一节将正式建立注意力集中度与保留注意力输出所需KV容量的理论关联,为GrowPage的在线容量控制提供基础。 ## 3 方法论 ### 3.1 理论分析 第2节表明注意力集中度在解码过程中显著变化。本节形式化解释这种变化如何导致KV容量需求的改变。 解码步骤$t$,令$\mathbf{a}_t = (a_{t,1}, \ldots, a_{t,N_t})$表示对$N_t$个历史KV状态的归一化注意力分布,其中$a_{t,(1)} \geq \cdots \geq a_{t,(N_t)}$为排序后的注意力权重。对于目标覆盖率$p \in (0,1)$,定义*$p$-覆盖率注意力需求*: $$D_p(\mathbf{a}_t) = \min\left\{ k : \sum_{i=1}^{k} a_{t,(i)} \geq p \right\}$$ 直观上,集中注意力产生较小的$D_p$,而分散注意力需要更大工作集。 设$\mathbf{o}_t$为全缓存注意力输出,$\widehat{\mathbf{o}}_t(S)$为保留子集$S$并重新归一化后的输出: $$\mathbf{o}_t = \sum_{i=1}^{N_t} a_{t,i} \mathbf{v}_i, \qquad \widehat{\mathbf{o}}_t(S) = \sum_{i \in S} \frac{a_{t,i}}{m_t(S)} \mathbf{v}_i, \quad m_t(S) = \sum_{i \in S} a_{t,i}$$ 在有界值假设$\|\mathbf{v}_i\|_2 \leq V_{\max}$下,定义*最坏情况KV容量*: $$C_{\delta}^{\mathrm{wc}}(\mathbf{a}_t) = \min_{S} \left\{ |S| : \sup_{\|\mathbf{v}_i\|_2 \leq V_{\max}} \left\| \mathbf{o}_t - \widehat{\mathbf{o}}_t(S) \right\|_2 \leq \delta \right\}$$ 对于任意保留子集$S$,其最坏情况近似误差为: $$\sup_{\|\mathbf{v}_i\|_2 \leq V_{\max}} \left\| \mathbf{o}_t - \widehat{\mathbf{o}}_t(S) \right\|_2 = 2V_{\max}\bigl(1 - m_t(S)\bigr)$$ 该上界源于三角不等式,且当保留与丢弃值取反向范数$V_{\max}$时紧成立(完整证明见附录C)。 **定理3.1**:假设所有$i$满足$\|\mathbf{v}_i\|_2 \leq V_{\max}$。对于近似容忍度$0 < \delta < 2V_{\max}$,最小最坏情况KV容量满足: $$C_{\delta}^{\mathrm{wc}}(\mathbf{a}_t) = D_{1 - \delta/(2V_{\max})}(\mathbf{a}_t)$$ 定理3.1表明,保证误差不超过$\delta$等价于保留注意力质量$m_t(S) \geq 1 - \delta/(2V_{\max})$,而用$k$个状态实现的最大质量通过选择前$k$个注意力权重获得。因此在相同容忍度下,分散注意力需要更大的鲁棒KV容量,而集中注意力可用更少状态保留。对于特定请求的实际值向量,所需容量可能更小;定理3.1描述了仅由注意力分布决定的最坏情况需求。结合第2节观察到的非平稳注意力行为,该结果为根据解码过程中注意力需求演变调整KV容量提供了动机。 ### 3.2 在线需求估计 图4展示了GrowPage的整体工作流。解码过程中,每个请求维护短时和长时查询摘要。当当前KV容量耗尽时,GrowPage比较两者诱导的历史注意力工作集,估计需求趋势并决定是压缩现有KV状态还是申请额外物理页。 **双时间尺度查询摘要**:GrowPage为每个请求和注意力层维护两个指数平滑查询表示。为简洁,公式(6)中省略层和头索引。令$\mathbf{q}_t$表示查询归一化后、RoPE前的当前查询: $$\bar{\mathbf{q}}_t^{x} = \beta_x \mathbf{q}_t^{x} + (1 - \beta_x) \bar{\mathbf{q}}_{t-1}^{x}, \quad x \in \{s, l\}$$ 其中$\bar{\mathbf{q}}_t^{s}$为短时摘要(响应近期注意力需求),$\bar{\mathbf{q}}_t^{l}$为长时摘要(作为历史参考),衰减因子$\beta_s > \beta_l$确保短时摘要更新更快。 **基于工作集的容量决策**:设当前分配包含$k$个物理页。GrowPage计算短期和长期摘要相对于当前KV状态的工作集差异: $$\Delta_t = D_p(\mathbf{a}_t^{s}) - D_p(\mathbf{a}_t^{l})$$ 其中$\mathbf{a}_t^{s}$、$\mathbf{a}_t^{l}$分别为基于$\bar{\mathbf{q}}_t^{s}$、$\bar{\mathbf{q}}_t^{l}$的注意力分布。若$\Delta_t > \tau$(需求增长阈值),则申请新物理页;若$\Delta_t < -\tau$(需求减少),则在现有分配内压缩KV状态(如淘汰注意力权重最低的状态)。 通过将容量决策与PagedAttention页面分配机制耦合,GrowPage实现了: 1. **按需内存分配**:仅在需求增长时申请物理页,避免固定预算的内存浪费 2. **渐进式压缩**:需求减少时逐步淘汰低重要性KV状态 3. **服务机制兼容**:保持连续批处理和前缀缓存能力 该设计使GrowPage能够实时适应推理过程中的动态内存需求,在保持服务效率的同时优化推理性能。
相似文章
KGCache:面向大语言模型知识图谱推理的摊销式子图检索
KGCache是一种用于一跳知识图谱邻域的内存缓存,可减少使用大语言模型的KGQA系统中冗余的子图检索。在WebQSP和CWQ上的评估显示,它可将知识图谱检索速度提升最多1.91倍,并表明语义缓存能进一步提高命中率。
CompressKV:语义检索引导的KV缓存压缩方法,用于资源高效的长上下文大语言模型推理
CompressKV针对基于GQA的大语言模型,提出了一种语义检索引导的KV缓存压缩方法,通过识别语义检索头来保留关键令牌。在LongBench任务中,仅使用3%的KV缓存即可实现超过97%的全缓存性能。
OasisKV:利用前瞻稀疏预取将解码中KV缓存扩展到HBM之外
OasisKV是一个以内存为中心的LLM推理系统,通过使用来自推测解码的前瞻令牌预取稀疏且重要的KV块,将完整KV缓存存储与HBM解耦,与密集vLLM相比实现了高达2.1倍的吞吐量提升,且精度损失极小。
基于 PagedAttention 的大语言模型服务高效内存管理
本文介绍了 PagedAttention,这是一种受虚拟内存分页技术启发的算法,以及 vLLM,这是一种通过减少键值缓存中的内存碎片来显著提高大语言模型吞吐量的服务系统。
RestoreKV:在激进的查询无关KV缓存驱逐下恢复全缓存行为
RestoreKV 引入了一种学习式恢复机制,作为查询无关 KV 缓存驱逐的补充;它通过一次 LoRA 适配的遍历生成紧凑的上下文条件恢复缓存,从而在激进预算下恢复全缓存行为,并在四个长上下文基准上提升了性能。