TL;DR
vLLM 是目前开源社区中事实标准的 LLM Serving 引擎,凭借 PagedAttention 机制在显存管理和吞吐量上实现了显著优化。它通过连续批处理(Continuous Batching)和广泛的硬件/模型支持,解决了大规模部署中显存碎片化和低并发的问题。
它解决什么问题
LLM Serving 的核心痛点在于显存利用率低和请求延迟高。传统推理引擎通常采用静态批处理,导致 GPU 在等待长序列生成时资源闲置;同时 KV Cache 的非连续分配造成严重的显存碎片,限制了并发量。vLLM 的出现正是为了解决这些效率瓶颈:它让单一 GPU 能承载更多并发请求,同时降低推理成本。随着 MoE 模型和多模态模型的普及,对灵活且高性能的 Serving 基础设施的需求更加迫切。
核心做法
vLLM 的核心创新是 PagedAttention,它将 KV Cache 的管理类比操作系统的虚拟内存分页机制。通过非连续的物理块存储逻辑上的 Key/Value 张量,彻底消除了显存碎片。在此基础上,vLLM 实现了 Continuous Batching(又称 Iteration-level Scheduling),允许在每次迭代时动态插入新请求并移除完成请求,而非等待整个批次结束。此外,项目集成了 FlashAttention、Tensor Parallelism 以及多种量化方案(FP8/INT4/GGUF),并通过 torch.compile 和 CUDA Graphs 进一步加速内核执行。
作者
vLLM 最初由 UC Berkeley Sky Computing Lab 开发,核心贡献者包括 Woosuk Kwon, Zhuohan Li, Lianmin Zheng 等知名研究者。目前由一个包含来自 Berkeley、MIT、NVIDIA、Microsoft 等多机构及公司的庞大社区维护。由于其学术起源,该项目在操作系统层面的内存管理优化上具有深厚的理论背景。
社区反应
vLLM 是 GitHub 上 Star 数最高的 AI/ML 项目之一(超过 94k),拥有近 2.4w Fork,显示出极高的行业采用率。然而,9000+ Open Issues 也反映了其快速迭代带来的维护压力和高用户期望。作为 Python 生态中的基础设施级项目,它已成为 Hugging Face、LangChain 等上层框架默认的推理后端。其活跃度表明它不仅是一个研究原型,更是工业界的生产级标准。
怎么上手
依赖环境主要为 Python 和 CUDA(或对应硬件驱动)。
1. 安装:推荐使用 uv 进行快速安装,或使用 pip。
bash
uv pip install vllm
# 预编译内核以加速启动
vllm download-kernels
2. 最小复现:启动 OpenAI 兼容的 API Server。
bash
vllm serve meta-llama/Llama-3.1-8B-Instruct
3. 验证:通过标准 OpenAI API 格式发送请求即可。支持从 Hugging Face 自动下载模型权重。
争议与局限
vLLM 主要聚焦于 NVIDIA GPU,虽然已支持 AMD、Intel 和 Apple Silicon,但在非 CUDA 平台上的性能优化程度和稳定性通常不如 NVIDIA。此外,其复杂的内核定制(如自定义 CUDA kernels)使得在特殊硬件或受限环境中从源码构建的难度较高。对于极低延迟的实时交互场景,其动态调度带来的开销可能需要额外调优(README 未提及具体延迟基准,此为基于架构的推断)。另外,随着模型规模超过单卡显存极限,分布式部署的配置复杂度显著上升。
相关项目
- TGI (Text Generation Inference) — Hugging Face 官方出品,基于 C++ Rust 后端(SGLang/TensorRT-LLM),在纯生成任务上通常提供更低的尾延迟,但灵活性略逊于 vLLM。
- SGLang — 由 Berkeley 另一团队开发,采用 RadixAttention 优化前缀缓存和结构化输出生成,在复杂推理链路上性能更强。
- TensorRT-LLM — NVIDIA 官方引擎,针对特定 GPU 架构有极致的内核优化和量化支持,但部署门槛高且主要锁定 NVIDIA 生态。
- Ollama — 面向本地开发和消费级硬件,主打易用性和 GGUF 格式支持,适合单机小模型部署而非高并发 Serving。
- LM Deploy — 由上海人工智能实验室开发,深度集成 TensorRT-LLM 和 vLLM 后端,针对国产硬件和多卡并行有特定优化。