vToken是一种轻量级的令牌级虚拟化层,旨在解决大语言模型服务中的内存瓶颈问题。现有的KV缓存eviction算法通常以令牌粒度进行操作,但这与固定大小的内存块管理存在不匹配,导致内存块内部的碎片化,使得大量的KV内存无法被回收。 vToken通过令牌表间接寻址维持稳定的逻辑令牌视图,并通过异步重打包活跃令牌来实现物理回收。这种设计保留了PagedAttention内核和CUDA Graph兼容性。 我们在vLLM中实现了vToken,并使用H2O、Random和Scissorhands等模型进行评估。与Naive-Evict基线相比,vToken减少了每个请求保留的KV块数,范围从27.2%到72.3%,同时提高了SLA约束下的吞吐量,最高可达1.37\times。在受限的活跃KV预算下,vToken将最大可行并发度扩大了最高2\times,同时将每个策略的集成脚本从500多行减少到不到50行。 博主点评: vToken为解决KV缓存eviction问题提供了一个有效的解决方案,其令牌级虚化技术可以显著减少内存碎片化,提高系统的吞吐量和并发度,具有广泛的应用前景。