Prefix Caching
大语言模型推理优化技术,将多个请求共享的相同前缀部分(如系统提示词)的KV计算结果持久化缓存,实现跨请求复用,从而减少重复计算、降低延迟并提升吞吐量
时间轴 (近 90 天)
核心决策规则:缓存决定需要支付多少次冷启动读取,芯片决定每次冷启动读取的成本;如果配置导致每轮都破坏缓存,芯片升级无法弥补性能差距。
部分推理框架支持多级前缀树匹配,能命中不同请求间的公共祖先节点,从而提高前缀共享率。
工程上应对前缀失效的常见做法是将动态内容(用户输入、当前时间、检索结果)后置到静态前缀之后,形成“稳定前缀 + 可变后缀”的请求结构。
前缀复用(Prefix Caching)依赖严格条件:被复用的部分必须从序列第一个 token 开始就完全相同,否则缓存失效并导致整段重算。
固定上下文的成本可近似为:固定前缀 token 数 × 调用次数 × 缓存读取单价。
缓存感知路由优先把请求发给缓存中已存在相同前缀的副本,命中缓存时预填充几乎为零,首token延迟大幅下降。
Prefix Caching实现请求间KV复用,vLLM采用block hash,SGLang采用radix tree
PagedAttention 支持多个请求共享相同前缀的 KV Cache(Prefix Caching)
vLLM 使用 Prefix Caching(前缀缓存)技术来复用相同前缀请求的 KV Cache
vLLM当前实现存在bug:在前缀缓存中会把最后一个约16 token的缓存块直接丢弃并重新计算,即使请求命中了缓存
还有 2 条时间轴事件
全部知识事实 (10)
核心决策规则:缓存决定需要支付多少次冷启动读取,芯片决定每次冷启动读取的成本;如果配置导致每轮都破坏缓存,芯片升级无法弥补性能差距。
50%待验证前缀复用(Prefix Caching)依赖严格条件:被复用的部分必须从序列第一个 token 开始就完全相同,否则缓存失效并导致整段重算。
50%待验证部分推理框架支持多级前缀树匹配,能命中不同请求间的公共祖先节点,从而提高前缀共享率。
50%待验证工程上应对前缀失效的常见做法是将动态内容(用户输入、当前时间、检索结果)后置到静态前缀之后,形成“稳定前缀 + 可变后缀”的请求结构。
50%待验证固定上下文的成本可近似为:固定前缀 token 数 × 调用次数 × 缓存读取单价。
50%待验证缓存感知路由优先把请求发给缓存中已存在相同前缀的副本,命中缓存时预填充几乎为零,首token延迟大幅下降。
50%待验证Prefix Caching实现请求间KV复用,vLLM采用block hash,SGLang采用radix tree
50%待验证PagedAttention 支持多个请求共享相同前缀的 KV Cache(Prefix Caching)
50%待验证vLLM 使用 Prefix Caching(前缀缓存)技术来复用相同前缀请求的 KV Cache
50%待验证前缀缓存通过复用已计算的KV Cache,可节省50%-80%的prefill阶段计算量,vLLM通过基数树结构实现细粒度缓存命中匹配
50%