Efficient LLM Inference 与 Serving:KV Cache、Speculative Decoding、PagedAttention 和量化
Efficient LLM Inference 与 Serving:KV Cache、Speculative Decoding、PagedAttention 和量化
系列:AI 论文盘点 / 技术趋势
日期:2026-07-04
适合读者:研究生、LLM 系统研究者、推理平台与 AI 应用工程师
摘要
2025-2026 年,LLM 系统的主战场正在从“如何训练更大的模型”转向“如何把模型又快又便宜地服务给真实用户”。原因很直接:推理不是一次性成本,而是每个请求、每个 token、每次 agent 工具调用都会持续发生的成本。尤其在长上下文、推理型模型、多轮对话和代码 agent 场景里,瓶颈往往不再是单次矩阵乘法,而是 KV cache 内存、prefill/decode 阶段干扰、请求调度、低 batch 延迟、量化误差、GPU 内核与网络传输共同组成的系统问题。
这篇文章按系统栈梳理 Efficient LLM Inference 与 Serving 的技术路线:PagedAttention 和 vLLM 如何把 KV cache 当作操作系统式分页资源管理;SGLang 的 RadixAttention、vLLM Automatic Prefix Caching 和 Mooncake 的 KVCache-centric 架构如何把“重复上下文”变成可复用资产;speculative decoding、Medusa、EAGLE-3 与 TensorRT-LLM 的工程支持如何把串行 decode 改写成 draft-and-verify;KIVI、QServe、TurboQuant 与 TensorRT-LLM 量化路线如何把低比特从权重扩展到 KV cache;FlashAttention-3 与 FlashInfer 则说明,内核层优化仍然是服务系统的底座。
目录
- 研究背景:推理为什么成为 AI 基础设施瓶颈
- 近一年路线图:从单机加速到分层 serving 架构
- 代表论文分组解读
- 方法对比表
- 关键技术趋势
- 工程落地启发
- 局限与争议
- 接下来值得关注的问题
- 总结
- 参考资料
研究背景:推理为什么成为 AI 基础设施瓶颈
Transformer 训练时代的核心指标是吞吐、并行效率和训练稳定性;推理时代的核心指标变成了 TTFT(time to first token)、TPOT / ITL(每个输出 token 的延迟)、吞吐、SLO 达标率、显存占用和单位 token 成本。更麻烦的是,这些指标经常互相牵制:增大 batch 能提升吞吐,却可能拉高首 token 延迟;激进量化能降低显存,却可能引入额外反量化开销;长上下文提升能力,却会让 KV cache 线性膨胀。
生成式 LLM 推理有两个阶段。prefill 阶段处理 prompt,通常计算密集、可并行;decode 阶段逐 token 生成,常常受内存带宽、KV cache 读取和串行依赖限制。短问答服务可能主要卡在 decode;RAG、长文档问答和代码仓库 agent 则常常卡在长 prompt prefill 与重复上下文复用。服务系统的难点就在于:不同请求长度、输出长度、采样策略、LoRA adapter、多模态输入、结构化输出和 agent 调用链会混在同一个集群里。
经典的 FlashAttention 把注意力优化带到 IO-aware 层面:不要只看 FLOPs,要看 HBM 与 SRAM 之间读写多少。PagedAttention 进一步把 serving 的核心问题落到 KV cache 管理:KV cache 会随请求动态增长,如果按最大长度预留连续显存,碎片和浪费会直接压低 batch size。到了 2025-2026 年,系统开始更明确地把推理平台视为一个“内存、调度、内核、网络和缓存”共同优化的问题。
近一年路线图
第一条线:KV cache 从副产品变成一等资源。
PagedAttention 让 KV cache 可以按块分页、共享和按需分配;vLLM 的 Automatic Prefix Caching 把共享前缀的 KV cache 复用工程化;SGLang 的 RadixAttention 针对结构化 prompt、多轮对话和程序化 generation 复用前缀;Mooncake 则把 KV cache 放到架构中心,用 CPU DRAM、SSD 和独立 cache 层来服务超长上下文与过载场景。
第二条线:prefill/decode 逐步解耦。
DistServe、Splitwise、Mooncake 和 TensorRT-LLM/vLLM 的 disaggregated serving 示例都指向同一个判断:prefill 与 decode 的资源画像不同,强行 colocate 会导致干扰。2025 年以后的工作进一步探索单 GPU 内部的 prefill/decode 分区、跨节点 KV 传输和 stage-aware scheduling。
第三条线:decode 串行瓶颈用投机和多 token 预测缓解。
Speculative decoding 的核心是“便宜模型先猜,目标模型批量验证”。Medusa 不维护独立 draft model,而是在目标模型上加多头;EAGLE 系列从 feature-level draft 走向 EAGLE-3 的 token prediction 与多层特征融合。TensorRT-LLM 文档到 2026 年已经列出 DraftTarget、Eagle3、NGram、MTP、PARD、DFlash、SA 等多种 speculative decoding 选项,说明它已经从论文技巧变成 serving 框架标配。
第四条线:量化从权重走向端到端 serving。
GPTQ、AWQ、SmoothQuant 等早期路线主要聚焦权重和激活;KIVI 把 2-bit 非对称量化用于 KV cache;QServe 用 W4A8KV4 做算法-系统协同;TensorRT-LLM 支持 FP8、FP4、AWQ/GPTQ 和 FP8/NVFP4 KV cache;2025-2026 的 TurboQuant、KVTC、GPU-accelerated INT8 KV cache 等工作继续把长上下文推理的瓶颈指向 KV cache 压缩。
第五条线:内核库成为 serving 框架竞争力。
FlashAttention-3 面向 Hopper GPU 的异步、TMA、FP8 注意力优化;FlashInfer 则把可组合 attention template、JIT、block-sparse KV 格式和负载均衡调度做成 LLM serving kernel engine,并已被 vLLM、SGLang、MLC-Engine 等集成。推理服务的上层 API 越像云服务,底层就越依赖内核细节。
代表论文分组解读
1. PagedAttention 与 KV cache 内存管理
vLLM / PagedAttention 的贡献不只是“快”,而是重新定义了 serving 内存管理接口。传统实现往往给每个请求预留连续 KV cache 区域,长短请求混合时会产生大量内部和外部碎片。PagedAttention 借鉴虚拟内存,把每个序列的 KV cache 拆成固定大小块,用 block table 做逻辑块到物理块的映射。这样一来,请求不必占用连续物理显存,生成过程中可以按需追加块;共享 prompt、parallel sampling 和 beam search 也可以通过块共享和 copy-on-write 减少重复。
这条线的工程启发是:长上下文 serving 首先是内存系统问题。一个模型是否“能跑满 GPU”,不只取决于 GEMM 吞吐,还取决于调度器能否把更多活跃请求装进显存。vLLM 文档中的 Automatic Prefix Caching 进一步把复用从论文实验带到常见场景:同一长文档被多次查询、多轮聊天复用历史前缀时,新的请求可以跳过共享 prefix 的 prefill 计算。但 APC 也有边界:它主要减少 prefill,不会缩短长回答的 decode。
2. 结构化生成与 prefix 复用
SGLang 的角度更偏“LLM 程序”。当应用不再是一次 prompt 一次 completion,而是包含检索、分支、并行调用、JSON 约束、多轮自洽和 agent 控制流时,系统需要知道哪些上下文可以复用、哪些生成步骤可以并行。SGLang 论文提出前端语言和后端 runtime,后端的 RadixAttention 用 radix tree 管理可共享前缀,减少重复 KV cache 与重复计算。它尤其适合 few-shot、RAG、多轮对话和结构化输出这类共享 prefix 明显的 workload。
这也解释了为什么 2025-2026 年的 serving 框架不再只是“模型加载器”。它们越来越像数据库执行引擎:要理解请求结构、缓存中间状态、调度不同阶段,并在一致性、延迟和吞吐之间做优化。
3. Prefill / Decode 解耦与 disaggregated serving
DistServe 明确提出把 prefill 和 decode 放到不同 GPU 池中,以减少两阶段干扰,并分别优化 TTFT 与 TPOT。Mooncake 进一步把 KV cache 放在架构中心:在 GPU 集群之外利用 CPU DRAM、SSD 和 cache scheduler,目标是支撑 Kimi 这类长上下文聊天服务。TensorRT-LLM 和 vLLM 最新文档也都把 disaggregated serving、KV cache connector、KV offloading 等能力列为重要工程接口。
这里的关键不是“所有场景都应该拆分”,而是拆分让资源规划更精细。短 prompt、长输出的聊天流量可能需要强 decode 池;长文档问答则需要强 prefill 与 cache 复用;agent 工作流还会产生 bursty、可中断、共享上下文的请求。未来的 serving 平台很可能按 workload 动态选择 colocated、chunked prefill、disaggregated prefill/decode、KV offload 或 cache transfer。
4. Speculative decoding:把串行 decode 改成草稿与验证
Leviathan 等人的 speculative decoding 和 DeepMind 的 speculative sampling 都利用一个事实:目标模型一次验证多个候选 token 的代价,常常接近验证一个 token;如果便宜 draft model 能猜中多个 token,就能减少目标模型串行 forward 次数。理论上,带拒绝采样的版本可以保持目标模型采样分布不变。
后续方法开始解决“draft 从哪里来”。Medusa 在模型上加多个解码头,避免维护单独小模型;EAGLE 系列用目标模型内部特征或多层特征构建高接受率 draft;EAGLE-3 在 2025 年报告了对聊天和 reasoning 模型更强的加速效果。TensorRT-LLM 到 2026 年的文档已经把 EAGLE 3、NGram、MTP、Suffix Automaton 等作为可配置选项。这说明 speculative decoding 的工程问题已经从“能否加速”转为“什么 workload、什么 batch size、什么 acceptance rate 下值得启用”。
5. 量化:从模型文件压缩到 serving 协同
低比特量化最容易被误解成“把模型变小”。在 serving 中,更重要的是它改变了内存带宽、cache 容量、反量化开销和 kernel 形态。QServe 的 W4A8KV4 很典型:它不仅提出 4-bit weight、8-bit activation、4-bit KV cache 的 QoQ 算法,还配套实现 QServe runtime,强调低比特如果让 CUDA core 上的反量化变慢,理论压缩不一定转化成吞吐提升。
KV cache 量化尤其重要。KIVI 观察 key cache 与 value cache 的分布不同,分别采用 per-channel 与 per-token 策略,提出 tuning-free 2-bit KV cache 量化。2025-2026 年的 TurboQuant、KVTC、eOptShrinkQ、Fast-TurboQuant 和 GPU-accelerated INT8 KV cache 工作继续沿着“长上下文内存瓶颈”推进。需要注意的是,2026 年的新论文与厂商博客中有些指标仍需按具体硬件、模型、上下文长度和 workload 人工复测,不能直接当成通用 SOTA。
6. 内核与编译:FlashAttention-3、FlashInfer 与硬件协同
FlashAttention 的核心思想是 IO-aware exact attention:通过 tiling 降低 HBM 读写,而不是只优化算子 FLOPs。FlashAttention-3 面向 Hopper GPU,利用 Tensor Core 与 TMA 的异步能力、warp specialization、FP8 等硬件特性,说明 attention kernel 会随着硬件代际持续重写。FlashInfer 则把注意力内核做成 serving-oriented engine,支持多种 KV cache 格式、JIT template 和负载均衡调度。
对工程团队来说,这意味着“换一个 serving 框架”不只是 API 迁移,还可能改变 kernel 后端、CUDAGraph 策略、batch invariance、量化 recipe 和可观测指标。推理性能调优必须用真实请求分布压测,不能只看单条样例或固定长度 benchmark。
方法对比表
| 方向 | 代表工作 / 系统 | 主要解决的问题 | 适合场景 | 主要风险 |
|---|---|---|---|---|
| Paged KV cache | PagedAttention / vLLM | KV cache 碎片、动态增长、共享前缀 | 多租户 serving、长上下文、beam/parallel sampling | kernel 与内存管理复杂度上升 |
| Prefix reuse | vLLM APC、SGLang RadixAttention | 重复 prompt / 历史上下文重复计算 | RAG、多轮对话、few-shot、agent 程序 | 对共享前缀敏感,长输出收益有限 |
| Prefill/decode 解耦 | DistServe、Mooncake、TensorRT-LLM/vLLM disaggregated serving | prefill 与 decode 干扰、SLO 拆分 | 长上下文、混合流量、大规模集群 | KV 传输、调度和容量规划复杂 |
| Speculative decoding | Leviathan、Speculative Sampling、Medusa、EAGLE-3 | decode 串行步数多、低 batch 延迟高 | 低 batch、短到中等输出、draft 接受率高 | draft 维护成本、接受率波动、batch 大时收益下降 |
| KV / weight 量化 | KIVI、QServe、TensorRT-LLM FP8/NVFP4、TurboQuant | 显存和带宽瓶颈 | 长上下文、高并发、边缘或成本敏感部署 | 精度、反量化开销、硬件支持差异 |
| Attention kernel | FlashAttention-3、FlashInfer | HBM 读写、kernel 调度、硬件利用率 | Hopper/Blackwell 等新 GPU、长上下文 | 依赖硬件与框架集成,复现实验门槛高 |
关键技术趋势
趋势一:KV cache 会成为推理系统的“数据层”。
未来 serving 不只是加载权重和跑 forward,而是管理可复用 KV、可压缩 KV、可迁移 KV、可过期 KV。长上下文 agent、代码仓库问答和多轮工作流越普及,KV cache 的生命周期管理越像数据库缓存和存储系统。
趋势二:调度器从 batch scheduler 变成 SLO scheduler。
连续 batching 只是起点。系统需要同时看 TTFT、TPOT、输出长度预测、prefix 命中率、GPU 显存水位、KV 传输成本、租户优先级和拒绝策略。Mooncake 的 early rejection、DistServe 的 goodput 优化、Nexus 的 intra-GPU 分区都说明,serving 研究正在从平均吞吐转向尾延迟和 SLO。
趋势三:投机解码会和模型训练共同设计。
早期 speculative decoding 可以外挂小模型;现在 EAGLE-3、MTP、Medusa 等方法暗示,模型可能在训练或 post-training 阶段就为多 token 预测、draft head 或验证路径预留结构。推理系统和模型结构会更强耦合。
趋势四:低比特不是单点算法,而是系统协同。
权重量化、激活量化、KV cache 量化、FP8/FP4 kernel、反量化 fusion、scheduler batch size 都会影响最终收益。只报告 perplexity 或压缩率不够,必须报告端到端 TTFT、TPOT、吞吐和成本。
趋势五:开源 serving 框架会继续向生产栈靠拢。
vLLM、SGLang、TensorRT-LLM、llama.cpp、TGI、MLC 等生态不再只拼单机速度,还会拼 OpenAI-compatible API、Kubernetes 部署、metrics、KV connector、LoRA serving、structured output、reasoning parser 和多硬件后端。
工程落地启发
第一,先做 workload 画像,再选优化。至少要统计输入长度、输出长度、并发、共享前缀比例、流式比例、工具调用链长度和 SLO。没有这些数据,讨论 PagedAttention、spec decoding 或量化都是盲调。
第二,把 TTFT 和 TPOT 分开看。长文档问答的用户可能最敏感 TTFT;代码生成和长回答更敏感 TPOT;agent 内部调用可能更在意总完成时间和并发成本。不同指标会导向不同系统方案。
第三,KV cache 预算要独立规划。不要只问“模型权重占多少显存”。在长上下文和高并发下,KV cache 可能超过权重成为主要显存占用;prefix caching、KV offload、KV quantization 和 cache eviction 需要一起设计。
第四,speculative decoding 需要在线开关和回退。它不是普遍加速器:低 batch、draft 接受率高、目标模型验证效率高时收益明显;大 batch、长复杂推理、draft 与目标分布不匹配时可能退化。生产系统应按模型、请求类型和 batch 状态动态启用。
第五,量化必须端到端压测。权重 4-bit 不等于吞吐翻倍,KV 4-bit 也不等于无损。要同时测任务质量、长上下文召回、结构化输出稳定性、工具调用 JSON 合法率、反量化开销和硬件兼容性。
第六,保留可观测性。至少记录 prefill tokens/s、decode tokens/s、KV cache hit rate、prefix cache 命中、GPU 显存碎片、queueing delay、spec acceptance rate、rejected tokens、per-tenant SLO 和 OOM/eviction 事件。
局限与争议
第一,很多论文指标依赖特定模型、硬件和 workload。比如 EAGLE-3 的加速、QServe 的吞吐提升、TurboQuant 的压缩收益,都不能无条件迁移到私有模型、不同 GPU 或 agent 流量。
第二,系统复杂度正在快速上升。Paged KV、disaggregated serving、KV offload、speculation、量化和多后端部署叠加后,debug 难度会显著增加。一次性能回退可能来自调度、网络、cache 命中、kernel fallback 或 tokenizer 不一致。
第三,质量评估仍不充分。低比特和投机方法常用 perplexity、MMLU、LongBench 或局部任务验证,但生产应用还关心格式稳定、拒答边界、工具参数正确性和多轮一致性。这些指标很少在系统论文中完整覆盖。
第四,生态版本变化快。vLLM、SGLang、TensorRT-LLM 的 feature matrix、支持模型、量化 recipe 和 speculative decoding 实现都在快速演进。本文中涉及 2026 年文档和新闻的部分,建议在部署前以项目最新 release notes 与本地 benchmark 复核。
接下来值得关注的问题
- KV cache 会不会形成标准化接口?如果 vLLM、TensorRT-LLM、SGLang、LMCache、Mooncake connector 能互通,推理平台会更像可组合存储系统。
- 推理型模型会不会原生训练 speculative head 或 verifier?这可能让 test-time compute 与 efficient serving 进一步合流。
- 多模态与 agent workload 会怎样改变调度器?图像、视频、工具调用和代码执行会带来更异构的阶段。
- 低比特 KV cache 的质量边界在哪里?长上下文检索、数学推理、代码补全和安全拒答可能有不同敏感性。
- AI-generated kernel 能否进入生产闭环?FlashInfer-Bench 这类工作把 agent 写 kernel、benchmark、替换生产实现连起来,值得持续观察。
总结
Efficient LLM Inference 与 Serving 已经不是单一加速技巧,而是一整套系统工程:KV cache 管理决定能装下多少上下文和并发;调度决定吞吐是否能转化成用户可感知延迟;投机解码挑战 autoregressive 串行瓶颈;量化改变内存、带宽和 kernel 形态;FlashAttention、FlashInfer 这类内核工作则决定框架能否真正吃到硬件红利。
对研究者来说,这个方向的机会在于把算法、模型结构和系统约束一起建模。对工程团队来说,最重要的不是追逐某一个“最快框架”,而是建立可测量、可回退、可分层演进的推理平台:真实流量画像、端到端指标、缓存策略、动态调度、量化验证和版本化 benchmark,才是 2026 年 LLM 应用成本控制的底盘。
参考资料
检索日期:2026-07-04。以下优先列出论文、官方文档、项目主页等一手资料;涉及 2026 年新资料的性能数字建议部署前人工复核。
- Kwon et al., “Efficient Memory Management for Large Language Model Serving with PagedAttention,” arXiv, 2023. https://arxiv.org/abs/2309.06180
- vLLM Documentation, “Automatic Prefix Caching,” latest developer preview, accessed 2026-07-04. https://docs.vllm.ai/en/latest/features/automatic_prefix_caching/
- Zheng et al., “SGLang: Efficient Execution of Structured Language Model Programs,” arXiv, 2023 / NeurIPS 2024. https://arxiv.org/abs/2312.07104
- Zhong et al., “DistServe: Disaggregating Prefill and Decoding for Goodput-optimized Large Language Model Serving,” arXiv, 2024. https://arxiv.org/abs/2401.09670
- Qin et al., “Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving,” arXiv, 2024. https://arxiv.org/abs/2407.00079
- Leviathan et al., “Fast Inference from Transformers via Speculative Decoding,” arXiv, 2022 / ICML 2023. https://arxiv.org/abs/2211.17192
- Chen et al., “Accelerating Large Language Model Decoding with Speculative Sampling,” arXiv, 2023. https://arxiv.org/abs/2302.01318
- Cai et al., “Medusa: Simple LLM Inference Acceleration Framework with Multiple Decoding Heads,” arXiv, 2024. https://arxiv.org/abs/2401.10774
- Li et al., “EAGLE-3: Scaling up Inference Acceleration of Large Language Models via Training-Time Test,” arXiv, 2025. https://arxiv.org/abs/2503.01840
- NVIDIA TensorRT-LLM Documentation, “Speculative Decoding,” accessed 2026-07-04. https://nvidia.github.io/TensorRT-LLM/features/speculative-decoding.html
- Liu et al., “KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache,” arXiv, 2024. https://arxiv.org/abs/2402.02750
- Lin et al., “QServe: W4A8KV4 Quantization and System Co-design for Efficient LLM Serving,” arXiv, 2024. https://arxiv.org/abs/2405.04532
- NVIDIA TensorRT-LLM Documentation, “Quantization,” accessed 2026-07-04. https://nvidia.github.io/TensorRT-LLM/features/quantization.html
- Zandieh et al., “TurboQuant: Online Vector Quantization with Near-optimal Distortion Rate,” arXiv, 2025. https://arxiv.org/abs/2504.19874
- Staniszewski and Łańcucki, “KV Cache Transform Coding for Compact Storage in LLM Inference,” arXiv, 2025. https://arxiv.org/abs/2511.01815
- Dao et al., “FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness,” arXiv, 2022. https://arxiv.org/abs/2205.14135
- Shah et al., “FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision,” arXiv, 2024. https://arxiv.org/abs/2407.08608
- Ye et al., “FlashInfer: Efficient and Customizable Attention Engine for LLM Inference Serving,” arXiv, 2025. https://arxiv.org/abs/2501.01005
- Xing et al., “FlashInfer-Bench: Building the Virtuous Cycle for AI-driven LLM Systems,” arXiv, 2026. https://arxiv.org/abs/2601.00227
- Li et al., “LLM Inference Serving: Survey of Recent Advances and Opportunities,” arXiv, 2024. https://arxiv.org/abs/2407.12391
- Miao et al., “Towards Efficient Generative Large Language Model Serving: A Survey from Algorithms to Systems,” arXiv, 2023. https://arxiv.org/abs/2312.15234
- Shi et al., “Nexus: Proactive Intra-GPU Disaggregation of Prefill and Decode in LLM Serving,” arXiv, 2025. https://arxiv.org/abs/2507.06608
- Tiwari et al., “QuantSpec: Self-Speculative Decoding with Hierarchical Quantized KV Cache,” arXiv, 2025. https://arxiv.org/abs/2502.10424
- Su, “eOptShrinkQ: Near-Lossless KV Cache Compression Through Optimal Spectral Denoising and Quantization,” arXiv, 2026. https://arxiv.org/abs/2605.02905
- Pereira et al., “Fast-TurboQuant: A Multiplier-Free Online Vector Quantization Approach,” arXiv, 2026. https://arxiv.org/abs/2606.21448