论文

MiniPIC:<100LOC 中灵活的位置无关缓存

MiniPIC: Flexible Position-Independent Caching in <100LOC

模型推理KV Cache

摘要

检索增强和代理工作负载重复预填充重复出现的可预测结构化输入(我们称之为“跨度”),例如文档和代码文件。然而,vLLM 等引擎中的前缀缓存无法重用其 KV 条目,除非它们与另一个请求共享相同的前缀,而生产级推理服务器中的位置无关缓存 (PIC) 实现通常需要大量服务器代码更改或将 KV 状态保留在服务器外部,从而产生主机到设备的传输开销。我们提出 Minimalistic PIC (MiniPIC):一种最小、灵活且快速的 vLLM 设计,由两个成分构建:无位置编码的 KV 缓存和用户控制的缓存重用原语。 MiniPIC 将未旋转的 K 向量存储在 KV 缓存中,使用每个请求的逻辑位置将 RoPE 应用于注意力内的 K 个图块,并公开三个面向用户的 词元级 原语:块对齐填充、跨度分隔符 (SSep) 和提示依赖 (PDep),它们修改哈希行为和有效的块级因果注意力结构。通过不到 100 行的核心引擎更改加上自定义的注意力后端,这些原语足以在同一运行的 vLLM 实例中实现多种 PIC 方法,包括 Block-Attention、EPIC 和 Prompt Cache,同时与 KV 缓存 CPU 卸载实现原生集成。在 2WikiMultihopQA 上,采用交错调度的 MiniPIC 将预填充吞吐量比基线 vLLM 提高了 49%,将缓存跨度的首次词元时间缩短了两个数量级,保留了未缓存跨度的线性预填充缩放,并且在最坏情况下仅产生 5.7% 的开销。