欣淇
发布于 2026-05-16 / 0 阅读
0
0

⚡ vLLM:80k Stars 的高吞吐 LLM 推理引擎,一行命令把你的 GPU 跑满

⚡ 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:显式指定 bfloat16float16,auto 在某些卡上会 fallback 到 float32,显存直接翻倍。

六、总结

  • PagedAttention 让显存利用率从 40% 飙到 95%+
  • 连续 batching + chunked prefill = GPU 永不空闲
  • FP8 量化让 70B 模型单卡可跑
  • OpenAI 兼容 API,现有应用零改动
  • 200+ 模型架构、多卡分布式都原生支持

如果你正在搭 LLM 推理服务,别用 naive 方案了,直接上 vLLM。别问我怎么知道的——踩过的坑都是泪。

标签:#LLM #推理 #vLLM #模型部署 #AI


评论