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