vllm

vLLM 高性能推理服务

补充说明

vLLM 使用 PagedAttention 和连续批处理提升大模型推理吞吐,提供 OpenAI 兼容 API。适合生产环境的多并发推理、量化部署和多卡张量并行。

常用示例

安装:

pip install vllm

启动 OpenAI 兼容服务:

vllm serve Qwen/Qwen2.5-7B-Instruct \
  --host 0.0.0.0 --port 8000 \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.9

调用:

curl http://localhost:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"Qwen/Qwen2.5-7B-Instruct","messages":[{"role":"user","content":"你好"}]}'

多卡张量并行:

vllm serve Qwen/Qwen2.5-72B-Instruct \
  --tensor-parallel-size 4 \
  --max-model-len 16384

量化模型:

vllm serve Qwen/Qwen2.5-7B-Instruct-AWQ \
  --quantization awq \
  --dtype auto

查看指标:

curl http://localhost:8000/metrics | grep vllm

易错点与排错

读完自测

合上页面,先回答,再展开对照。

  1. vLLM 服务启动即 OOM,先检查哪个参数?
  2. 多卡启动时 --tensor-parallel-size 要注意什么?
  3. 客户端不设 max_tokens 会带来什么风险?
答案
  1. 先看 --max-model-len 是否过大,导致 KV Cache 预分配失败。也要检查 --gpu-memory-utilization 是否过高。
  2. 张量并行数必须是 GPU 数量的因数。否则启动会报错。
  3. 长输出会持续占用显存,可能把显存占满。客户端应设置 max_tokens。