vLLM

devops
vLLM 是一个开源的大语言模型推理引擎,核心技术创新是 PagedAttention(将 KV Cache 分页管理,类似操作系统虚拟内存)和连续批处理(continuous batching)。通过减少显存碎片和提升 GPU 利用率,vLLM 能将推理吞吐量提升 10-30x,同时支持 OpenAI 兼容 API(/v1/chat/completions),可直接替代 OpenAI API 使用。支持的量化方式包括 AWQ、GPTQ、INT4 等。

// 详细解释

vLLM 是伯克利大学 LMSYS 组织开源的大语言模型推理引擎,核心解决了 LLM 推理中 KV Cache 显存碎片化GPU 利用率低 两个根本问题。

核心问题:为什么 GPU 利用率这么低?

LLM 推理分为 Prefill(处理输入 prompt)和 Decode(自回归生成输出)两个阶段:

  • Prefill:计算密集,GPU 利用率高
  • Decode:内存密集,GPU 利用率低(等待显存带宽)

Decode 阶段显存被 KV Cache 占满,但计算强度不高,GPU 空转。

核心技术:PagedAttention

传统方式:为每个请求预分配最大 seq_len 的连续 KV Cache(如 32k token),即使实际只用 512 token,显存也被浪费。

PagedAttention:把 KV Cache 按 block 分块管理(通常 16 token/block),用逻辑块-物理块映射表按需分配。类似操作系统虚拟内存的页表机制。

效果:显存利用率从 ~40% 提升到 ~90%,相同显存可服务更多并发请求。

连续批处理(Continuous Batching)

传统批处理:等一个 batch 所有请求完成,才接收新请求 → GPU 中间有空档。

连续批处理:在每个 token 生成后,立即把完成的请求释放,把新请求插入 → GPU 持续运转。

量化支持

vLLM 原生支持 GPTQ / AWQ / INT4 量化模型加载,INT4 量化后 7B 模型可在单张消费级 GPU(如 RTX 3090)上运行。

快速使用

bash1 lines
pip install vllm
python5 lines
from vllm import LLM llm = LLM(model="Qwen/Qwen2.5-7B-Instruct-AWQ", quantization="AWQ") outputs = llm.generate(["解释量子纠缠"]) print(outputs[0].outputs[0].text)

相关资源

// 关联术语