题记与说明
标题: vLLM: Easy, Fast, and Cheap LLM Serving with PagedAttention
作者: Woosuk Kwon*、Zhuohan Li*、Siyuan Zhuang、Ying Sheng、Lianmin Zheng、Cody Yu、Joey Gonzalez、Hao Zhang、Ion Stoica(UC Berkeley,* 同等贡献)
来源: https://vllm.ai/blog/2023-06-20-vllm
存档日期: 2026-11-04
标签: vLLM, PagedAttention, LLM推理, KV-Cache, 操作系统, 性能优化
这篇讲什么
这是 vLLM 项目的官方首发博文(2023-06-20,配套 SOSP'23 论文 arXiv:2309.06180)。它宣布了开源推理引擎 vLLM,并解释其核心算法 PagedAttention:把操作系统里虚拟内存与分页的经典思想搬到 LLM 推理的 KV cache 管理上。传统做法为每条序列预留一段连续显存,而 PagedAttention 把 KV cache 切成固定大小的 block(块),逻辑块经 block table 映射到不必连续的物理块,按需分配——块如页、token 如字节、序列如进程。
核心观点
- LLM 服务的瓶颈在显存而非算力:KV cache 又大(LLaMA-13B 单序列可达 1.7GB)又动态(长度不可预测),现有系统因碎片化和过度预留浪费了 60%–80% 的显存。
- 分页思想直接消解碎片化:浪费只发生在每条序列的最后一个块,实测显存浪费低于 4%,接近最优;显存省下来就能塞更大的 batch,GPU 利用率随之提高。
- 块表还顺带解决了共享问题:多条输出序列共享同一段 prompt 时,通过引用计数 + 写时复制(Copy-on-Write)共享物理块,把 parallel sampling / beam search 的显存开销最多降 55%。
- 结果:无需改动模型结构,吞吐量比 HuggingFace Transformers 最高提升 24 倍,比当时的 SOTA TGI 最高提升 3.5 倍。
最值得记住的句子与数据
- 「可以把块当作页,token 当作字节,序列当作进程」——一句话讲清整个设计的类比。
- 现有系统浪费 60%–80% 显存 → PagedAttention 把浪费压到 4% 以内,吞吐量最高 24×。
- 落地实证:LMSYS 用 FastChat-vLLM 后端把吞吐量较原 HF 后端提升至 30 倍,GPU 数量砍半,日均 3 万、峰值 6 万请求撑起 Chatbot Arena。
对我的启发
- 旧思想的新战场:1960 年代的虚拟内存分页,解决的是 2023 年的 KV cache 难题。最强的创新常常不是发明新东西,而是把一个领域打磨成熟的心智模型迁移到新瓶颈上。遇到新问题时,先问「这个问题在别的领域叫什么名字」。
- Agent 系统的成本直觉:Agent 多轮对话、长上下文的成本大头在推理侧。理解了 KV cache 的浪费来源(碎片化、过度预留、重复前缀),才真正理解 prefix caching 为什么值钱、为什么长 system prompt 每轮都在烧钱——这是设计 Agent 记忆与上下文策略时的底层账本。
- 性能优化的方法论:先定位瓶颈(这里是显存),再围绕瓶颈重构抽象(连续预留 → 分页),而不是堆硬件。24× 来自系统层而非模型层。
- 写作范本:这篇 8 分钟的博文是技术写作的标杆——一个问题、一个类比、三个数字(60–80%、24×、<4%)就讲清了整个创新,值得写技术文章时反复对照。
适合谁读
所有关心 LLM 推理服务的人:想理解 vLLM 为什么快的工程师、做 Agent/应用要算推理账本的开发者、以及喜欢看「操作系统思想解决新问题」这类跨域迁移案例的系统爱好者。它是读懂现代 LLM serving 生态(vLLM、SGLang、各类 prefix caching 方案)的必读起点。