推理与部署推理优化vLLM速答 · 约 5 分钟更新 2026-09-19

vLLM 为什么快?PagedAttention 解决了什么问题

一句话结论

vLLM 快的核心是 PagedAttention:把 KV Cache 像操作系统管内存分页那样按小块管理,显存几乎零浪费,同样显存能装下更多并发请求,吞吐自然上去。

先这样答

vLLM 是一个开源的大模型推理服务框架,它的招牌技术叫 PagedAttention。先看它解决了什么问题:在它之前,服务框架给每个请求预留一段连续显存放 KV Cache,而且按可能的最大长度预留,实际生成长度往往短得多,空间大量闲置,显存碎片也严重,一张卡同时装不下几个请求,吞吐(单位时间完成的生成量)上不去。

PagedAttention 把 KV Cache 交给一套类似操作系统内存分页的机制管理:逻辑上连续的序列,物理上切成固定大小的小块,用一张块表记录逻辑位置到物理位置的映射,用到哪里就分配哪里。按最大长度预留的浪费和外部碎片都基本消失,显存利用率大幅提高,同样的卡能同时服务更多请求,吞吐随之上升。分页还带来一个副产品:不同请求中内容相同的前缀块可以直接共享,一份键值服务多条请求,这也是 vLLM 做前缀缓存的基础。

所以回答 vLLM 为什么快,别停在「用了 PagedAttention」这句,要给出因果链:显存按块管理,浪费少了;浪费少了,单卡容纳的并发多了;并发多了,GPU 算力被持续喂饱,吞吐就高。顺带补一句它还内置连续批处理和前缀缓存,快是一整套内存与调度机制共同的结果,不是单点技巧。

面试官会怎么追问

  • 「显存碎片具体指什么?」 一是内部碎片:按最大长度预留,实际生成没到那么长,多留的部分白占;二是外部碎片:反复分配释放后显存被切得零散,总量够却找不到一块连续空间。分页把分配粒度从整段降到小块,两种问题同时缓解。
  • 「分页管理会不会拖慢计算?」 每步要做一次块表查询和地址映射,有少量开销。但它换来的显存利用率能支撑高得多的并发,吞吐收益远大于这点开销,否则它不会被广泛采用。
  • 「除了显存管理,vLLM 还做了什么?」 连续批处理让请求随到随进、完成即退;前缀缓存复用公共开头的键值;还支持量化模型和多卡并行部署。把这几层分开讲,说明你理解它快在系统工程,不在某一招。

回答的坑

  • 把 vLLM 快归因于「优化了模型计算」。模型前向本身没变,省下的是浪费的显存和空闲的算力,加速来自资源利用率。
  • 只背 PagedAttention 名词,讲不出它针对的碎片问题。面试官考的是能不能从「显存浪费在哪」推出这个设计,背名词过不了第二问。
—— 本题完 ——