本文主要讲述如何使用 vLLM 部署 千问 3 大语言模型。本文使用的是 Qwen3-0.6B 一个参数较小的模型,主要是为了体验整个部署过程。另外大模型运行在 CPU 上(因为支持 GPU 的 VPS 普遍较贵, 一直是用爱发电,能省则省).最后我们安装了一个 open-webui 用于和 self-hosted 的千问模型以图形界面的方式与模型进行对话。整个部署过程非常丝滑,适合有一定动手能力的用户,部署体验, 成本非常低, 仅需一台 8U32G 的 VPS, 不需要显卡。在本文的基础上略做修改也可以用于开发自己的 AI Agentic 应用。
本文的实验环境是一台 8 核心 32G 内存的 hostinger vps 运行的操作系统是 ubuntu 24.04 LTS。
VPS 申请过程参考这篇文章 快速注册 Hostinger 账号以及创建 Hostinger VPS。
1. 安装 python 虚拟环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
uv venv vllm-env --python 3.12 --seed source "$HOME/vllm-env/bin/activate"
cat <<EOF >> $HOME/.bashrc source $HOME/.local/bin/env source "$HOME/vllm-env/bin/activate" EOF
|
更多细节参考 如何使用 Astral UV 管理 Python 虚拟环境?
2. 源码安装 vLLM
vLLM 是一个专门优化 LLM 推理性能的工具,安装 vLLM 是为了在本地高效运行和优化大语言模型的推理任务, 它可以有效提升推理速度,提高资源利用率。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
sudo apt-get update -y sudo apt-get install -y gcc-12 g++-12 libnuma-dev python3-dev git sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 10 --slave /usr/bin/g++ g++ /usr/bin/g++-12
git clone https://github.com/vllm-project/vllm.git vllm_source cd vllm_source
pip install --upgrade pip pip install "cmake>=3.26" wheel packaging ninja "setuptools-scm>=8" numpy pip install -v -r requirements/cpu.txt --extra-index-url https://download.pytorch.org/whl/cpu
VLLM_TARGET_DEVICE=cpu python setup.py install
|
验证 vllm 是否安装成功
1 2
| $ vllm --version 0.16.0rc2.dev236+g3b30e6150.cpu
|
或者使用python指令验证
1 2 3 4
| user@server $ python3 -c "import vllm; print('vLLM OK')" vLLM OK
|
更多细节参考 如何使用源码安装 vLLM?
3. 下载千问 Qwen3 大模型
由于 VPS 位于海外,可以直接使用 huggingface 下载大模型。
1 2 3 4 5 6
| pip install "huggingface_hub<1.0" --force-reinstall
export HF_ENDPOINT=https://hf-mirror.com huggingface-cli download --resume-download Qwen/Qwen3-0.6B --local-dir ~/Qwen3-0.6B
|
4. 运行 Qwen3 大模型
1 2 3 4
| cd ~ python -m vllm.entrypoints.openai.api_server --model ~/Qwen3-0.6B --served-model-name Qwen3-0.6B --max-model-len=2048
|
看到如下信息表示大模型启动成功
1 2 3 4 5 6 7 8 9 10
| [api_server.py:500] Starting vLLM API server 0 on http://0.0.0.0:8000 ......
INFO: Started server process [11234] INFO: Waiting for application startup. INFO: Application startup complete.
......
|
此时使用 http://your_vps_server_id:8000/version 即可查到大模型版本信息
5. 安装 open-webui
1 2 3 4 5 6 7 8
| cd ~
uv venv webui-env --python 3.12 --seed source ~/webui-env/bin/activate pip install open-webui open-webui serve
|
open-webui 默认开启在 8080 端口上。
然后访问http://your_vps_server_id:8080/,在初次开启服务时需要新建管理员账户,邮箱只用做登录名无须验证, 如果只是测试目的可以随便填。
接下来,点击右上角头像,进入管理员面板,找到设置。点击外部连接 =》点击管理 OpenAI API 连接旁边的+加号。
URL 输入:
http://your_vps_server_id:8000/v1
密钥随便填写,不会实际验证,
然后点击保存。保存成功后回到主页,在模型选择框会看到 Qwen3-0.6B 选项,选择该模型,就可以进行对话了。
因为我们是以 vllm.entrypoints.openai.api_server 模式启动的大模型,所有 api 是与 OpenAI 的 API 兼容的,所以这里添加 OpenAI API 即可
6. 设置开机启动
使用以上安装方式无论 Qwen3 大模型,还是 open-webui 都是运行在前台。一旦 ssh 连接断开或者服务器重启, 进程就会关闭,每次重新开启非常麻烦。
首先创建一个启动脚本
1 2 3 4 5
| [user@server]vi /home/username/start_vllm.sh
python -m vllm.entrypoints.openai.api_server --model ~/Qwen3-0.6B --served-model-name Qwen3-0.6B --max-model-len=2048
|
给脚本赋予可执行权限
1
| chmod +x /home/username/start_vllm.sh
|
创建一个 systemd 服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
[user@server] vi /etc/systemd/system/vllm.service
[Unit] Description=VLLM Service for qwen3 After=network.target
[Service] Type=simple User=username WorkingDirectory=/home/username RestartSec=5s ExecStart=/bin/bash /home/username/start_vllm.sh Restart=always
[Install] WantedBy=multi-user.target
|
记得将 username 替换成实际的用户名,如果是 root 用户 WorkingDirectory 设置为 WorkingDirectory=/root
重新加载 systemd 服务:
1 2 3 4 5 6 7 8 9
| sudo systemctl daemon-reload
sudo systemctl start vllm.service
sudo systemctl enable vllm.service
systemctl status vllm.service
|
7. 后记
本技术博客原创文章位于鹏叔的 IT 技术博客空间 - 如何使用 vLLM 部署千问 3 大语言模型?, 获取最近更新请访问原文.
更多技术博客请访问: 鹏叔的 IT 技术博客空间
8. 参考文档
本地 vllm 部署 DeepSeek,但 CPU
Qwen3 在 Linux 服务器上部署流程
vLLM+OpenWebUI 本地部署 QwQ-32B 网页问答简易指南
vllm serve 设置加载 conda 环境并开机自启动