为什么选择 vLLM

在自建大模型推理服务时,显存利用率和吞吐量往往是最大的瓶颈。传统的 HuggingFace transformers 推理方式在处理并发请求时,KV Cache 的管理效率较低,容易出现显存碎片化。vLLM 通过 PagedAttention 机制,将 KV Cache 按照固定大小的“页”进行管理,类似操作系统的虚拟内存分页,从而大幅提升显存利用率与并发吞吐能力。

核心特性

  • PagedAttention:按页管理 KV Cache,减少显存浪费
  • Continuous Batching:动态批处理,新请求可以在旧请求未完成时插入
  • OpenAI 兼容 API:可直接替换 OpenAI SDK 的 base_url
  • 多种量化支持:AWQ、GPTQ、FP8 等,降低显存占用

安装

python3 -m venv vllm-env
source vllm-env/bin/activate
pip install vllm

对于显存有限的轻量环境,建议使用较小参数量模型并结合量化版本,例如 Qwen2.5-7B-Instruct-AWQ。

启动一个推理服务

vllm serve Qwen/Qwen2.5-7B-Instruct-AWQ \
  --quantization awq \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.85 \
  --port 8000

启动后即可通过标准 OpenAI 接口调用:

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

小结

vLLM 的轻量化并不意味着功能阉割,而是在保持高吞吐的同时降低了部署门槛。后续文章将深入探讨显存调优、批处理参数以及生产环境的服务化实践。