vToken: Token-Level Virtualization for Reclaimable KV Caches
作者: Yuanhang Gao, Xiangrui Yang, Yuanfeng Chen, Hongjia Chen, Qianru Lv, Wenfei Wu, Dongsheng Li
分类: cs.AI, cs.DC, cs.OS
发布日期: 2026-08-13
💡 一句话要点
提出vToken以解决KV缓存的内存回收问题
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: KV缓存 内存管理 虚拟化 大型语言模型 性能优化 异步回收 PagedAttention CUDA图
📋 核心要点
- 现有的KV缓存管理方法在处理长序列和大批量时,容易导致内存碎片化,影响性能。
- vToken通过引入令牌级虚拟化,将逻辑令牌的存活状态与物理内存块的管理解耦,从而实现更高效的内存回收。
- 实验结果表明,vToken在减少KV块保留和提高吞吐量方面表现优异,显著提升了系统的并发处理能力。
📝 摘要(中文)
大型语言模型的服务面临着关键的内存瓶颈:KV缓存随着序列长度和批量大小的增加而增长。PagedAttention使用固定大小的内存块来减少分配器级别的碎片,但最近的KV驱逐算法在比块级管理更细的令牌粒度上操作。这种不匹配导致了块内碎片,使得大量分配的KV内存无法回收。我们提出了vToken,这是一种轻量级的令牌级虚拟化层,它将逻辑令牌的存活状态与物理块的放置解耦。vToken通过令牌表间接保持稳定的逻辑令牌视图,并通过异步重新打包活跃令牌实现物理回收。该设计保留了PagedAttention内核和CUDA图的兼容性。我们在vLLM中实现了vToken,并通过H2O、Random和Scissorhands在多个模型上进行了评估。与配对的Naive-Evict基线相比,vToken每个请求减少了27.2%至72.3%的保留KV块,并将SLA约束下的吞吐量提高了最多1.37倍。在受限的活跃KV预算下,它将最大可行并发性提高了最多2倍,同时将每个策略的集成代码量从500多行减少到50行以下。
🔬 方法详解
问题定义:当前大型语言模型在KV缓存管理中存在内存碎片化问题,尤其是在序列长度和批量大小增加时,导致大量分配的KV内存无法有效回收。
核心思路:vToken通过引入令牌级虚拟化,解耦逻辑令牌的存活状态与物理内存块的放置,允许异步回收活跃令牌,从而减少内存碎片化。
技术框架:vToken的整体架构包括令牌表管理模块和异步回收机制。令牌表维护逻辑令牌的状态,而异步回收机制负责重新打包活跃令牌,确保内存的高效利用。
关键创新:vToken的主要创新在于其轻量级的虚拟化层设计,能够在不改变PagedAttention内核和CUDA图兼容性的前提下,显著提高KV缓存的回收效率。
关键设计:在实现中,vToken采用了高效的令牌表结构,支持快速查找和更新,同时异步回收机制通过优化内存操作,减少了对系统性能的影响。
🖼️ 关键图片
📊 实验亮点
实验结果显示,vToken在每个请求中减少了27.2%至72.3%的KV块保留,并在SLA约束下将吞吐量提升了最多1.37倍。此外,在活跃KV预算受限的情况下,最大可行并发性提高了最多2倍,显著优化了系统性能。
🎯 应用场景
vToken的设计可以广泛应用于大型语言模型的服务中,尤其是在需要处理长序列和大批量数据的场景。其高效的内存管理能力将提升模型的响应速度和并发处理能力,具有重要的实际价值和应用前景。
📄 摘要(原文)
Large language model serving faces a critical memory bottleneck: the KV cache grows with sequence length and batch size. PagedAttention uses fixed-size memory blocks to reduce allocator-level fragmentation, but recent KV eviction algorithms operate at a token granularity finer than block-level management. This mismatch causes intra-block fragmentation, leaving a large fraction of allocated KV memory unreclaimable. We present vToken, a lightweight token-level virtualization layer that decouples logical token liveness from physical block placement. vToken maintains a stable logical token view through token-table indirection and realizes physical reclamation by repacking live tokens asynchronously. The design preserves PagedAttention kernels and CUDA Graph compatibility. We implement vToken in vLLM and evaluate it with H2O, Random, and Scissorhands across models. Compared with a paired Naive-Evict baseline, vToken reduces retained KV blocks per request by 27.2\%--72.3\% and improves SLA-constrained throughput by up to 1.37$\times$. Under a constrained active-KV budget, it extends the maximum feasible concurrency by up to 2$\times$, while reducing the per-policy integration footprint from 500+ lines to under 50.