vLLM 是目前最主流的大模型高性能推理框架之一,凭借 PagedAttention + 高吞吐 + OpenAI 兼容 API,已经成为本地部署 LLM 服务的首选方案。
本文将带你一步步搭建一个可对外提供 API 的 vLLM 服务(支持 ChatGPT API 格式),适用于:
- 本地开发测试
- 私有化部署
- 高并发模型服务
- AI 应用后端
一、vLLM 是什么?
vLLM 是一个高性能大模型推理框架,核心优势:
- 🚀 极高吞吐(比 Transformers 快数倍)
- 🧠 PagedAttention(显存分页管理)
- 🔌 OpenAI API 兼容
- ⚡ 支持多并发请求
- 💾 显存利用率极高
二、环境准备
1. 硬件要求
| 模型规模 | 推荐显卡 |
|---|---|
| 7B | RTX 3060 / 4060 / 3090 |
| 13B | RTX 3090 / 4090 |
| 30B+ | A100 / H100 / 多卡 |
2. 系统要求
- Ubuntu 20.04 / 22.04(推荐)
- Python 3.10+
- CUDA 11.8 / 12.x
- NVIDIA Driver 已安装
三、安装 vLLM
方法1:pip 安装(推荐)
pip install vllm
如果 CUDA 环境正确,这一步即可完成。
方法2:创建虚拟环境(推荐生产)
conda create -n vllm python=3.10 -y
conda activate vllm
pip install vllm
四、启动 OpenAI 风格 API 服务
基础启动命令
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-2-7b-hf \
--host 0.0.0.0 \
--port 8000
参数说明
| 参数 | 作用 |
|---|---|
| model | 模型名称或路径 |
| host | 监听地址 |
| port | API端口 |
五、使用 HuggingFace 模型(推荐)
例如:
- Llama
- Mistral
- Qwen
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--dtype auto \
--host 0.0.0.0 \
--port 8000
六、测试 API(重点)
1. 使用 curl
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-7B-Instruct",
"messages": [
{"role": "user", "content": "你好,介绍一下vLLM"}
]
}'
2. Python 调用(OpenAI SDK)
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="none"
)
response = client.chat.completions.create(
model="Qwen/Qwen2.5-7B-Instruct",
messages=[
{"role": "user", "content": "写一段Python代码"}
]
)
print(response.choices[0].message.content)
七、提升性能(生产必看)
1. 开启多并发优化
--max-num-seqs 256
2. 控制显存(很重要)
--gpu-memory-utilization 0.9
👉 防止 OOM
3. 限制上下文长度
--max-model-len 4096
4. 使用 FP16 / BF16
--dtype half
八、Docker 部署(推荐生产)
1. 拉取镜像
docker pull vllm/vllm-openai
2. 启动容器
docker run --gpus all \
-p 8000:8000 \
vllm/vllm-openai \
--model Qwen/Qwen2.5-7B-Instruct
九、GPU 多卡部署(进阶)
--tensor-parallel-size 2
👉 适用于:
- 2×3090
- 2×4090
- A100多卡
十、常见问题(非常重要)
❌ 1. CUDA out of memory
解决方案:
- 降低
max-model-len - 降低并发
- 开启量化模型
- 使用 4bit 模型
❌ 2. 模型加载失败
检查:
- HuggingFace token
- 模型路径
- 网络访问
❌ 3. API 无法访问
检查:
--host 0.0.0.0
并开放端口:
ufw allow 8000
十一、推荐部署架构(实战)
单机方案(个人/测试)
vLLM + 7B/13B模型 + 1 GPU
生产方案(中小型)
Nginx
↓
vLLM API(多实例)
↓
Qwen / Llama 模型
高并发方案(企业级)
Load Balancer
↓
vLLM Cluster(多GPU/多节点)
↓
KV Cache优化 + 量化模型
十二、总结
vLLM 的核心价值:
用更少的 GPU,跑更快的模型服务,并支持 OpenAI API 生态。