像酒店按整间房计费:即使四张床只住了一人,房间也不能再分配。大模型的KV缓存——保存已读上下文中间结果、避免每次重新计算——也有类似问题。PagedAttention通常把缓存按16个Token一块管理;逐个淘汰不重要的Token后,只要块里还有一个保留项,整块显存就无法回收。论文的初步实验显示,在16K上下文下,多数缓存块利用率不超过50%,块内浪费达到40%—60%。
vToken在Token的逻辑位置与实际显存位置之间加了一层映射,像住户搬房但通讯录号码不变。淘汰策略只需决定保留哪些Token;系统则在显存吃紧时异步搬运并压紧仍有用的数据,把腾空的整块交还给其他请求,同时保留原有PagedAttention计算内核和CUDA Graph兼容性。作者称,相比Naive-Evict基线,vToken让每个请求保留的KV块减少27.2%—72.3%,受服务时延目标约束的吞吐量最高提升至1.37倍。该方案主要面向KV显存成为瓶颈的场景;显存充足时,论文认为原生完整缓存路径仍更合适。