搬瓦工 VPS 部署 vLLM 高速模型推理服务教程
vLLM 是由 UC Berkeley 开发的高性能大语言模型推理和服务引擎,以其创新的 PagedAttention 技术闻名。vLLM 能够高效管理 GPU 和 CPU 内存,提供比传统推理框架高数倍的吞吐量。它原生支持 OpenAI 兼容 API,非常适合作为大模型的生产级推理后端。本文将介绍在搬瓦工 VPS 上部署 vLLM 的完整流程。
一、vLLM 简介与特点
vLLM 的核心优势包括:
- PagedAttention:借鉴操作系统虚拟内存分页思想,大幅提升 KV cache 利用率。
- 连续批处理:动态合并请求,最大化硬件利用率。
- OpenAI 兼容 API:可直接替换 OpenAI 后端,无需修改客户端代码。
- 广泛的模型支持:支持 Llama、Qwen、Mistral、ChatGLM 等主流模型。
- 量化支持:支持 AWQ、GPTQ、INT8 等多种量化格式。
二、环境要求
- 操作系统:Ubuntu 20.04 或更高版本。
- 内存:至少 4GB,推荐 8GB 以上。
- Python:Python 3.9 至 3.12。
- 磁盘:至少 20GB 可用空间。
虽然 vLLM 主要为 GPU 环境设计,但它也支持 CPU 推理模式。在搬瓦工 VPS 的 CPU 环境下,推荐使用较小的量化模型。选购合适方案请参考 方案页面。
三、安装 vLLM
3.1 使用 pip 安装
apt update && apt upgrade -y
apt install python3 python3-pip python3-venv -y
mkdir -p /opt/vllm && cd /opt/vllm
python3 -m venv venv
source venv/bin/activate
# 安装 CPU 版本的 vLLM
pip install vllm
3.2 使用 Docker 安装
确保已安装 Docker(参考 Docker 安装教程):
docker pull vllm/vllm-openai:latest
docker run -d --name vllm-server \
-p 8000:8000 \
-v /opt/vllm-models:/models \
vllm/vllm-openai:latest \
--model /models/your-model \
--dtype auto \
--device cpu
四、启动 vLLM API 服务
vLLM 内置了功能完善的 OpenAI 兼容 API 服务器:
source /opt/vllm/venv/bin/activate
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-1.5B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--dtype auto \
--device cpu \
--max-model-len 2048 \
--trust-remote-code
4.1 测试 API 服务
# Chat Completions API
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-1.5B-Instruct",
"messages": [
{"role": "user", "content": "解释一下什么是机器学习"}
],
"max_tokens": 500,
"temperature": 0.7
}'
# 查看可用模型
curl http://localhost:8000/v1/models
五、vLLM 配置参数详解
常用的服务器配置参数:
--model:HuggingFace 模型名称或本地路径。--max-model-len:最大上下文长度,降低此值可减少内存占用。--dtype:数据类型,可选 auto、float16、bfloat16、float32。--device:运行设备,cpu 或 cuda。--max-num-seqs:最大并发请求数。--trust-remote-code:信任模型仓库中的自定义代码。
六、使用预下载的模型
为了避免每次启动都要下载模型,建议预先下载到本地:
pip install huggingface_hub
python3 -c "
from huggingface_hub import snapshot_download
snapshot_download(
repo_id='Qwen/Qwen2.5-1.5B-Instruct',
local_dir='/opt/vllm-models/qwen2.5-1.5b'
)
"
# 使用本地模型启动
python -m vllm.entrypoints.openai.api_server \
--model /opt/vllm-models/qwen2.5-1.5b \
--host 0.0.0.0 --port 8000 \
--device cpu
七、配置 Systemd 服务
cat > /etc/systemd/system/vllm.service <<EOF
[Unit]
Description=vLLM OpenAI API Server
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/vllm
ExecStart=/opt/vllm/venv/bin/python -m vllm.entrypoints.openai.api_server \
--model /opt/vllm-models/qwen2.5-1.5b \
--host 0.0.0.0 --port 8000 \
--device cpu --max-model-len 2048
Restart=always
RestartSec=15
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable vllm
systemctl start vllm
八、与前端对接
由于 vLLM 提供 OpenAI 兼容 API,可以直接对接各种聊天界面:
# 使用 Python OpenAI 库调用
pip install openai
python3 <<'PYEOF'
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="not-needed"
)
response = client.chat.completions.create(
model="Qwen/Qwen2.5-1.5B-Instruct",
messages=[{"role": "user", "content": "你好,介绍一下你自己"}],
max_tokens=200
)
print(response.choices[0].message.content)
PYEOF
推荐配合以下前端使用:Open WebUI、LobeChat、ChatGPT Next Web。
九、性能调优
- 减小上下文长度:
--max-model-len设置为实际需要的最小值。 - 使用量化模型:AWQ 或 GPTQ 量化可大幅减少内存需求。
- 限制并发:
--max-num-seqs 4限制同时处理的请求数。 - 添加 swap:为系统添加足够的交换空间作为缓冲。
十、vLLM 与 Llama.cpp 对比
两者各有优势:vLLM 的批处理性能更强,适合高并发的 API 服务场景;Llama.cpp 的资源占用更低,更适合内存有限的环境。在 CPU 环境下,Llama.cpp 通常有更好的单请求延迟,而 vLLM 在多请求并发时表现更佳。
总结
vLLM 是构建高性能大模型推理服务的优秀选择,其 OpenAI 兼容 API 使得对接各种应用变得简单。在搬瓦工 VPS 上使用 CPU 模式运行小型量化模型,可以搭建功能完整的私有 AI 服务。选购搬瓦工 VPS 请查看 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,购买链接:bwh81.net。