搬瓦工 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 WebUILobeChatChatGPT 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

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。