Mini-SGLang 源码阅读(三):Paged KV Cache 与 Radix Prefix Cache
KV Cache 是在线 LLM 推理中最重要的状态。它避免 Decode 每轮重新计算全部历史 token,却也通常成为显存容量和并发数的主要限制。 本文先解释 KV Cache、分页管理和前缀复用的基本原理,再阅读 Mini-SGLang 的 MHAKVCache、CacheManager 与 RadixPrefixCache。源码基于提交 9a91cfa。 一、为什么需要 KV Cache 自回归 Attention 在第 t 步需要当前 Query 与位置 0...t 的 Key、Value 做注意力。如果每轮都重新计算历史 K、V,生成 n 个 token 会重复执行大量投影计算。 KV Cache 将每层历史 K、V 保存下来: 第 1 轮:计算 K0,V0,保存 第 2 轮:只计算 K1,V1,读取 [K0,K1] 第 3 轮:只计算 K2,V2,读取 [K0,K1,K2] 缓存大小大致为: 2 × 层数 × token 数 × KV head 数 × head_dim × 元素字节数 其中 2 表示 Key 和 Value。长上下文、大 batch 和高精度都会快速放大显存消耗。 ...