核心 · Key Idea
一句话:vLLM 是面向 GPU 的高吞吐 LLM 推理引擎。PagedAttention 让 KV cache 像内存分页一样省、Continuous Batching 让吞吐拉满。生产部署 OpenAI 兼容 API 的首选。
一行起服务#
pip install vllm
# 单卡 7B
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--port 8000
# 多卡张量并行
... --tensor-parallel-size 2
# 量化
... --quantization awqAPI 完全兼容 OpenAI(/v1/chat/completions / /v1/completions / /v1/models),openai SDK 改 base_url 就能用。
打个比方#
打个比方 · Analogy
HuggingFace transformers 自带的 generate() 像家用打印机:可以打,量大了排队。
vLLM 像印刷厂:分版、合批、流水线,一小时印一万张不抖。
关键概念#
PagedAttention分页 KV
KV cache 切 16-token 等大 block,按需分配 → 几乎零碎片。
Continuous Batching持续合批
新请求中途也能加入正在跑的 batch,吞吐 vs vanilla 5-20 倍。
Tensor Parallel张量并行
把每层切到多卡。--tp 2/4/8。多卡同 NUMA / NVLink 时效果最好。
Pipeline Parallel流水并行
把不同层放不同卡,大模型多机时用。
AWQ / GPTQ / FP8量化
vLLM 支持多种量化格式直接加载。
Prefix Cache前缀缓存
system prompt 等共享前缀只算一次。--enable-prefix-caching。
Speculative Decoding投机解码
vLLM 内置 draft model / Medusa 支持。
LoRA AdapterLoRA 切换
运行时加载多个 LoRA,按请求路由。
怎么工作#
实操要点#
--max-model-len:根据显存容量调;默认按模型最大上下文,会 OOM。--gpu-memory-utilization:默认 0.9,留 10% 给系统。多模型共卡可降到 0.45。- 量化选型:AWQ 通常质量最好;GPTQ 兼容性最广;FP8 仅 H100/H200 等支持。
- 多 LoRA 一键切换:
--enable-lora --lora-modules name1=path1 name2=path2,按请求model: name1选不同 adapter。 - Speculative Decoding:搭配 draft 模型
--speculative-model,常见加速 1.5-2x。 - K8s 部署:搭配 KubeRay 或 LWS(LeaderWorkerSet)做多机张量并行。
- 替代品:TensorRT-LLM(NVIDIA 生态)/ SGLang(路由更灵活)/ TGI(HuggingFace)/ llama.cpp(CPU)。
易混点#
vLLM
GPU 推理服务,**生产高并发**。
OpenAI 兼容 API。
OpenAI 兼容 API。
Ollama / llama.cpp
CPU + GPU 通用,**单机便利**。
跑得动 70B 但吞吐低。
跑得动 70B 但吞吐低。