【导读】在 LLM 推理中,“KV Cache”几乎成了性能与成本优化的必答题:它缓存 Attention 计算中的 Key/Value 中间产物,避免生成 next token 时对历史 token 反复计算。本文从 Transformer 的 Q/K/V 与自回归解码机制切入,解释 KV Cache 为什么能显著降算力、降延迟,并梳理 vLLM、SGLang、LMCache、Mooncake、NVIDIA Dynamo 等代表性方案如何围绕缓存复用、调度与分层存储展开工程竞速。
一、从《Attention Is All You Need》到Decoder-only:KV Cache从何而来
Transformer 的核心在于 Attention。以 Decoder-only 架构为例(当下主流的生成式 LLM 形态),模型推理通常可拆为三段:
- Embedding:prompt 被 tokenization 后得到 token 序列,每个 token 映射为 embedding 向量,并叠加 positional encoding(或同类位置表征)。
- Transformer Block(Nx):多层堆叠,每层包含自注意力(Self-Attention)与 FFN(Feed-Forward Network)等子层,逐层生成更“上下文化”的隐藏表示(contextualized embedding)。
- Output Probabilities:通过 Linear(LM Head)+ Softmax 得到 vocab_size 上的条件分布,再用 argmax/采样等策略生成 next token。
在 Self-Attention 子层中,每个 token 的隐藏向量会经线性投影得到 **Query (Q)、Key (K)、Value (V)**。它们由该层的投影矩阵(如 Wq/Wk/Wv)生成,随后进入经典的缩放点积注意力(Scaled Dot-Product Attention)流程:
- 用 Q 与 K 的相似度形成注意力权重(经 Softmax 归一化)
- 用该权重对 V 进行加权求和,得到当前 token 的 attention 输出
推理阶段的关键在于:LLM 以 自回归(autoregressive) 方式逐 token 生成。生成第 t 个 token 时,当前 token 的 Q 只与“当前步”有关,但它要和 所有历史 token 的 K/V 共同参与计算,才能形成当前步的上下文聚合结果。这直接解释了一个工程事实:
- K/V 是跨步可复用的“历史中间结果”
- Q 通常是“即用即算”,缓存价值不大
因此,“KV Cache”并非凭空出现,而是由 Decoder-only 的 next token 机制与 Attention 的计算结构自然导出的推理侧优化点。

二、KV Cache为什么能提速:从重复计算到复用K/V
在生成式推理中,序列长度随着输出增长而增长(prompt tokens + generated tokens)。如果每一步都从头计算历史 token 的 K/V,会造成大量重复工作:历史 token 的 K/V 在模型参数固定的情况下并不会变化,却会在每个 decoding step 中被反复参与 attention 计算。
KV Cache 的做法是:
- 在 prefill(处理 prompt)阶段,计算并保存各层的 K/V;
- 在后续 decode 阶段,每生成一个新 token,只计算该 token 对应的增量 K/V;
- 将增量 K/V 与已有 KV Cache concatenate(或以 block/page 组织方式逻辑拼接),再与当前步的 Q 做 attention。
这带来两个直接收益:
- 显著减少重复计算:历史 token 的 K/V 不再重复生成
- 将推理性能瓶颈转移到“缓存管理与数据移动”:GPU VRAM 紧张、KV Cache 容量随上下文增长,需要更精细的内存/存储/网络策略
也正因此,KV Cache 常被更准确地称为 Compute Cache:它缓存的是计算中间产物,而非传统存储系统里“静态数据”的读缓存。

三、从“连续张量”到“分页/树/分层”:五类代表性工程路线
围绕 KV Cache,业界的竞争焦点逐渐从“有没有缓存”变为“缓存如何被组织、复用、调度与外置”。
1)vLLM:PagedAttention把KV Cache做成“分页内存”
vLLM 的代表性贡献是 PagedAttention:借鉴 virtual memory 与 paging techniques,将 KV Cache 以 KV Block 为单位分页管理,使 KV Cache 不必占用连续内存,从而缓解两类典型问题:
- 内存碎片:不同请求长度差异巨大,连续分配容易造成碎片与浪费
- 共享困难:parallel sampling、beam search 等解码策略会产生多条 sequence,存在大量可共享前缀,但传统连续布局不利于共享
PagedAttention 通过 Block Table 将逻辑块映射到物理 VRAM 块,配合 reference count 与 copy-on-write 机制实现前缀共享与分叉;并通过调度器(Scheduler)在 iteration 粒度做 batching,结合启发式策略决定 KV Block 的驱逐与 swap(GPU VRAM ↔ CPU DRAM)。
在 GPU FLOPS 增长快于显存容量的现实下,PagedAttention 实际上把“显存管理能力”提升为推理框架的核心竞争力。
2)SGLang:RadixAttention把“前缀复用”做成系统级能力
SGLang 面向更复杂的 LM Programs(多轮对话、推理任务、多模态、结构化输出),在 Runtime 侧用 RadixAttention 强化 KV Cache 的复用率:
- 用 Radix Tree 组织不同会话/请求的 prefix KV Caches
- 通过 LRU 风格策略驱逐叶子节点对应的缓存
- 结合 Cache-aware Scheduling:在一批请求中优先处理最长共享前缀的请求,提高命中率
这条路线强调:在真实业务里,prompt 的可复用部分(如 System Prompt、few-shot 前缀、模板化上下文)往往是性能收益的“矿脉”,关键在于让调度策略主动“追着缓存跑”。
3)LMCache:把KV Cache Layer做成可插拔的“事实标准”
当 vLLM 与 SGLang 都在推理框架层面进化时,LMCache 选择更聚焦的定位:提供独立的 KV Cache Layer 抽象,上承推理框架,下接多种存储后端(Mooncake、Redis、InfiniStore 等),解决企业级场景的两类常见需求:
- Context Caching:缓存 System Prompt、RAG Context 等可复用长上下文,常需要 offloading 到 CPU Memory/Local Disk
- P/D Disaggregation Caching:在 Prefill 与 Decode 分离架构下,实现 prefix KV Caches 的高效共享与传输
LMCache 典型优化包括:
- pipelining(GPU compute 与 data load/store 并行)
- chunk 级 batch store/load(提高带宽利用率)
- zero-copy(减少内存拷贝)
并尝试提供面向缓存的管控能力(如 pinning、lookup、cleanup、movement、compression),让上层路由与调度能够“cache-aware”。
4)Mooncake:Prefill/Decode资源分池 + 高性能Transfer Engine
Mooncake 以 KVCache-centric disaggregated architecture 为特征:将 Prefill Instance 与 Decoding Instance 资源池化分离,并依赖 Transfer Engine 在节点间高效传输 KV Cache,使“传输缓存”在成本与延迟上优于“重新计算”。
其 Transfer Engine 的工程要点在于:
- 充分利用多个 RDMA NIC,聚合带宽
- 提供 hardware-agnostic、network-agnostic 的统一 API,支持 DRAM/VRAM/NVMe 间数据移动
- 通过 topology matrix 选择 preferred/secondary NIC,支持故障逃逸与大请求切片并行传输
- 兼容 RDMA(InfiniBand/RoCEv2/eRDMA/GPUDirect)以及 NVMe-of 等链路
这条路线把 KV Cache 的竞争从“单机显存管理”推向“集群级资源池化与传输抽象”。
5)NVIDIA Dynamo:Smart Router + 分布式KV Cache Manager + NIXL
Dynamo 面向 Reasoning AI Models,给出四个核心组件:
- Planner:根据 SLO(TTFT、ITL)与集群指标决定 Prefill/Decode 的耦合/解耦与资源补给
- Smart Router:用 RadixTree 做 prefix 匹配,将请求路由到最可能命中 KV Cache 的 worker
- Distributed KV Cache Manager:CPU host memory、local storage、network object storage 的分层外置方案
- NIXL(NVIDIA Inference Transfer Library):提供统一语义的高性能传输抽象,可对接 UCX、GDS、S3 等后端,并支持选择“best backend connection”
从系统设计看,Dynamo 的策略与 Mooncake 在“传输抽象”上的目标相近,只是更强调 NVIDIA 生态的原生整合能力。

结语:技术背后的管理思考
KV Cache 之所以在短时间内成为 LLM Inference 的焦点,本质上反映了企业落地 AI 的新现实:模型能力的竞争正在向“交付能力”迁移——谁能在既定 GPU 预算下满足更低 TTFT、更稳 ITL、更高吞吐,谁就能更快把 AI 变成可规模化的生产力。对管理者而言,这意味着 AI 项目评估不应只看“模型参数量/跑分”,还要把 KV Cache 命中率、Prefill/Decode 分离带来的资源编排、分层存储成本、网络传输(RDMA/NVMe-of)等工程指标纳入 ROI 口径。进一步地,组织能力也会被重新定义:一方面需要既懂 LLM(Attention、Q/K/V、RAG)又懂系统(调度、内存管理、分布式元数据)的复合型人才;另一方面需要更强的流程化与平台化能力,把缓存复用、配额治理、SLO 监控沉淀为企业级标准。正如红海云在探索新一代人力资源管理解决方案时所强调的,技术的终极价值在于赋能组织:当 AI 推理从“能用”走向“可控、可算、可规模”,企业才真正具备把智能能力嵌入业务流程与岗位体系的基础。




























































