⚡ vLLM:80k Stars 的高吞吐 LLM 推理引擎,一行命令把你的 GPU 跑满
项目地址:github.com/vllm-project/vllm | ⭐ 80K+ Stars | 🛠 Python | UC Berkeley Sky Computing Lab
老实说,部署 LLM 推理服务这事儿,写个 API 不难,难的是压榨 GPU。一张 A100 80G 跑 Llama 70B,用 naive 的方式 inference,吞吐惨不忍睹,显存浪费得让人心疼。把模型跑起来和把它跑满,中间隔着八百个优化技巧。
vLLM 就是来填这个坑的——80k Stars,UC Berkeley Sky Computing Lab 出品,用 PagedAttention 把 KV cache 碎片管理到极致,连续 batching + 前缀缓存 + FP8 量化一条龙打包。
一、为什么快?核心三板斧
1. PagedAttention:KV cache 不浪费一寸显存
传统推理框架的 KV cache 是连续分配的,类似内存碎片,很快就 OOM 了。vLLM 借鉴 OS 的虚拟内存分页,把 KV cache 切成固定大小的"页",不连续但连续访问,碎片趋近于零。
显存利用率从 ~40% 干到 95%+,这不是渐进式改进,是量级跳跃。
2. 连续 batching + chunked prefill
传统做法是等一个 batch 完整跑完再进下一个。vLLM 把 prefill 和 decode 阶段拆开,新请求随时可以插队进入正在运行的 batch。你排你的队,我插我的单,GPU 从不闲着。
3. 全栈量化方案
FP8 / INT8 / INT4 / GPTQ / AWQ / GGUF……应有尽有。FP8 量化下 Llama 70B 在单卡 A100 上就能跑,推理速度几乎无损。
二、一行命令部署
# 安装
pip install vllm
# 启动 OpenAI 兼容 API
vllm serve meta-llama/Llama-3.3-70B-Instruct \
--tensor-parallel-size 4 \
--quantization fp8 \
--max-model-len 8192
启动后,你的应用不需要改任何代码:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Llama-3.3-70B-Instruct",
"messages": [{"role": "user", "content": "Hello"}]
}'
Python SDK 也是同理:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="token-abc")
response = client.chat.completions.create(
model="meta-llama/Llama-3.3-70B-Instruct",
messages=[{"role": "user", "content": "Explain vLLM in one sentence"}]
)
print(response.choices[0].message.content)
三、热门模型即插即用
vLLM 原生支持 200+ 种模型架构。Decoder-only 的 Llama / Qwen / Gemma,MoE 的 DeepSeek-V3 / Mixtral / GPT-OSS,多模态的 LLaVA / Qwen-VL / Pixtral,embedding 的 E5-Mistral / GTE——全都能直接跑。
用 vllm serve Qwen/Qwen3-72B 这么一行命令就能启动,自动识别架构,不用写配置。
四、分布式推理不费劲
单卡放不下大模型?tensor parallelism 一行搞定:
vllm serve deepseek-ai/DeepSeek-V3 \
--tensor-parallel-size 8 \
--pipeline-parallel-size 2
8 卡 tensor parallel + 2 卡 pipeline parallel,16 张 GPU 跑 DeepSeek V3,吞吐接近线性扩展。还支持 expert parallelism 和 context parallelism,MoE 模型特别吃这套。
五、踩坑记录
- 首次启动慢:第一次要编译 CUDA 图,等 1-2 分钟是正常的。之后的冷启动就快了。
- max-model-len 别设太大:超过模型原生长度不会报错,但显存暴增。建议按实际需求设。
- 多模态模型:图片输入记得开
--trust-remote-code,有些处理器注册在 HuggingFace 上。 - 别用
--dtype auto:显式指定bfloat16或float16,auto 在某些卡上会 fallback 到 float32,显存直接翻倍。
六、总结
- PagedAttention 让显存利用率从 40% 飙到 95%+
- 连续 batching + chunked prefill = GPU 永不空闲
- FP8 量化让 70B 模型单卡可跑
- OpenAI 兼容 API,现有应用零改动
- 200+ 模型架构、多卡分布式都原生支持
如果你正在搭 LLM 推理服务,别用 naive 方案了,直接上 vLLM。别问我怎么知道的——踩过的坑都是泪。
标签:#LLM #推理 #vLLM #模型部署 #AI