轻松玩转vLLM:大模型推理加速神器
本教程是从算力市场,选择conda3_25.1.1_3.10.16-ubuntu22.04_12.6镜像创建虚拟机,测试结果已打包为镜像:open-webui0.6.9_vllm0.8.5.post1。本教程仅为测试案例,不计准确性。
若您使用该镜像创建云主机,请在云主机启动完成后,登录实例并执行以下命令启动 vllm 与 open-webui:
1、打开服务器窗口,激活vllm环境 conda activate vllm 2、启动vllm python3 -m vllm.entrypoints.openai.api_server \ --model /root/.cache/modelscope/hub/models/Qwen/Qwen3-1.7B \ --host 0.0.0.0 --port 8890 \ --dtype auto \ --max-num-seqs 32 \ --max-model-len 4096 \ --tensor-parallel-size 1 \ --trust-remote-code \ --api-key EMPTY 3、另开一个窗口,激动openwebui环境 conda activate openwebui 4、设置环境变量 export HF_ENDPOINT="https://hf-mirror.com" 5、无认证方式启动,内网端口 8891 WEBUI_AUTH=False open-webui serve --port 8891
1、打开服务器窗口,激活vllm环境 conda activate vllm 2、启动vllm python3 -m vllm.entrypoints.openai.api_server \ --model /root/.cache/modelscope/hub/models/Qwen/Qwen3-1.7B \ --host 0.0.0.0 --port 8890 \ --dtype auto \ --max-num-seqs 32 \ --max-model-len 4096 \ --tensor-parallel-size 1 \ --trust-remote-code \ --api-key EMPTY 3、另开一个窗口,激动openwebui环境 conda activate openwebui 4、设置环境变量 export HF_ENDPOINT="https://hf-mirror.com" 5、无认证方式启动,内网端口 8891 WEBUI_AUTH=False open-webui serve --port 8891
open-webui 服务默认运行在内部端口
8891
。在云主机的【更多连接方式】→【预留端口】,您可通过IP及内部端口映射的公网端口实现访问。vllm 与 open-webui详细启动过程及登陆后配置vllm过程详见以下教程:
修改 miniconda 数据目录
使用
df -h
命令查看磁盘使用情况,如果系统盘大小为50G,需要修改miniconda数据目录。系统盘不可扩容,避免miniconda相关数据占用太多磁盘空间。
查看当前 miniconda 数据目录
sh
conda config --show envs_dirs pkgs_dirs
conda config --show envs_dirs pkgs_dirs
默认目录位于 /root/miniconda3/,这个目录不能扩容,所以需要修改到 /data/ 数据目录下:
- 创建新目录:
shell
mkdir -p /data/conda/envs
mkdir -p /data/conda/pkgs
mkdir -p /data/conda/envs
mkdir -p /data/conda/pkgs
- 修改 /root/miniconda3/.condarc 文件,添加如下内容:
bash
envs_dirs:
- /data/conda/envs
- /root/miniconda3/envs
- /root/.conda/envs
pkgs_dirs:
- /data/conda/pkgs
- /root/miniconda3/pkgs
- /root/.conda/pkgs
envs_dirs:
- /data/conda/envs
- /root/miniconda3/envs
- /root/.conda/envs
pkgs_dirs:
- /data/conda/pkgs
- /root/miniconda3/pkgs
- /root/.conda/pkgs
备注:在编辑时,将新目录放在列表的首位,这样新创建的环境和下载的包就会优先使用新目录。
验证修改是否生效:
shell
conda config --show envs_dirs pkgs_dirs
conda config --show envs_dirs pkgs_dirs
备注:
- 已有数据处理:修改配置后,之前创建的环境和下载的包不会自动迁移到新目录。
- 权限问题:要确保
/data/conda/
及其子目录的权限设置正确,否则在创建环境或下载包时可能会出现权限错误。
迁移现有数据
shell
cp -r ~/miniconda3/pkgs/* /data/conda/pkgs/
cp -r ~/miniconda3/pkgs/* /data/conda/pkgs/
安装 VLLM
新建环境
shell
# 新建conda环境
conda create -n vllm
# 激活环境
conda activate vllm
# 修改pip缓存目录
# 系统盘/大小为50G必须要修改,避免系统盘空间不足
# 镜像open-webui0.6.9_vllm0.8.5.post1中未执行此命令,已全部保存在系统盘默认存储目录中
# 直接在终端执行以下命令设置环境变量,仅对当前终端会话临时有效,如果希望对所有新打开的终端会话都应用这个设置,详见修改Pip数据目录(https://www.muliao.com/document/dataStoragePath-Pip)
export PIP_CACHE_DIR=/data/pip/cache
# 升级pip
python3 -m pip install --upgrade pip
# 新建conda环境
conda create -n vllm
# 激活环境
conda activate vllm
# 修改pip缓存目录
# 系统盘/大小为50G必须要修改,避免系统盘空间不足
# 镜像open-webui0.6.9_vllm0.8.5.post1中未执行此命令,已全部保存在系统盘默认存储目录中
# 直接在终端执行以下命令设置环境变量,仅对当前终端会话临时有效,如果希望对所有新打开的终端会话都应用这个设置,详见修改Pip数据目录(https://www.muliao.com/document/dataStoragePath-Pip)
export PIP_CACHE_DIR=/data/pip/cache
# 升级pip
python3 -m pip install --upgrade pip
下载模型
访问魔塔模型库:https://www.modelscope.cn/models;
搜索 “千问3” ,选择一个小模型测 Qwen3-1.7B 下载:https://www.modelscope.cn/models/Qwen/Qwen3-1.7B;
在 “模型文件” 页面,下载模型:
根据右侧弹出的下载提示,用 ModelScope 下载模型 Qwen/Qwen3-1.7B:
shell
# 安装魔塔
pip install modelscope
# 创建模型存储目录
# 系统盘/大小为50G的需要修改,避免系统盘空间不足
# 镜像open-webui0.6.9_vllm0.8.5.post1中未执行此命令,已全部保存在系统盘默认存储目录中
mkdir -p /data/modelscoope/models/Qwen/Qwen3-1.7B
# 下载模型
# 下载模型到默认存储路径(镜像open-webui0.6.9_vllm0.8.5.post1中执行的是此命令)
modelscope download --model 'Qwen/Qwen3-1.7B'
# 如果用户系统盘为50G,需要将模型下载到指定名录,如:/data/modelsoope/models 目录(耗时较长 ... )
modelscope download \
--model 'Qwen/Qwen3-1.7B' \
--local_dir '/data/modelscoope/models/Qwen/Qwen3-1.7B'
# 安装魔塔
pip install modelscope
# 创建模型存储目录
# 系统盘/大小为50G的需要修改,避免系统盘空间不足
# 镜像open-webui0.6.9_vllm0.8.5.post1中未执行此命令,已全部保存在系统盘默认存储目录中
mkdir -p /data/modelscoope/models/Qwen/Qwen3-1.7B
# 下载模型
# 下载模型到默认存储路径(镜像open-webui0.6.9_vllm0.8.5.post1中执行的是此命令)
modelscope download --model 'Qwen/Qwen3-1.7B'
# 如果用户系统盘为50G,需要将模型下载到指定名录,如:/data/modelsoope/models 目录(耗时较长 ... )
modelscope download \
--model 'Qwen/Qwen3-1.7B' \
--local_dir '/data/modelscoope/models/Qwen/Qwen3-1.7B'
安装VLLM
- pip 安装 vllm (耗时较长 ... ...)
shell
# 指定清华镜像源
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple
# 指定清华镜像源
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple
- 启动 vllm 服务,端口改成可被外网访问的内网端口(8890)
shell
python3 -m vllm.entrypoints.openai.api_server \
--model /root/.cache/modelscope/hub/models/Qwen/Qwen3-1.7B \
--host 0.0.0.0 --port 8890 \
--dtype auto \
--max-num-seqs 32 \
--max-model-len 4096 \
--tensor-parallel-size 1 \
--trust-remote-code \
--api-key EMPTY
python3 -m vllm.entrypoints.openai.api_server \
--model /root/.cache/modelscope/hub/models/Qwen/Qwen3-1.7B \
--host 0.0.0.0 --port 8890 \
--dtype auto \
--max-num-seqs 32 \
--max-model-len 4096 \
--tensor-parallel-size 1 \
--trust-remote-code \
--api-key EMPTY
备注:
--model 参数为模型存储地址,按照你的实际情况修改。例如:下载模型时,将模型下载到指定目录/data/modelscoope/models/Qwen/Qwen3-1.7B,则修改为 --model /data/modelscoope/models/Qwen/Qwen3-1.7B。这里我没有修改数据目录,用的默认路径,所以是--model /root/.cache/modelscope/hub/models/Qwen/Qwen3-1.7B
--tensor-parallel-size 参数为实际使用GPU卡数
vllm启动完成:
- CURL测试vllm 服务连接
curl http://140.210.92.251:25594/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer EMPTY" \
-d '{
"model": "/root/.cache/modelscope/hub/models/Qwen/Qwen3-1.7B",
"prompt": "今天北京天气晴朗吗",
"max_tokens": 1024,
"temperature": 80
}'
curl http://140.210.92.251:25594/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer EMPTY" \
-d '{
"model": "/root/.cache/modelscope/hub/models/Qwen/Qwen3-1.7B",
"prompt": "今天北京天气晴朗吗",
"max_tokens": 1024,
"temperature": 80
}'
以上测试命令中140.210.92.251:25594仅限本教程有效,其中:140.210.92.251为虚拟机公网IP,25594是内网端口8890映射的外部端口。用户按照此教程创建的虚拟机需自行查看实际IP:外部端口
安装 Open WebUI
新建环境
shell
# python-3.11 环境
conda create -n openwebui python=3.11
# 激动环境
conda activate openwebui
# 修改pip缓存目录
# 系统盘/大小为50G必须要修改,避免系统盘空间不足
# 镜像open-webui0.6.9_vllm0.8.5.post1中未执行此命令,已全部保存在系统盘默认存储目录中
# 直接在终端执行以下命令设置环境变量,仅对当前终端会话临时有效,如果希望对所有新打开的终端会话都应用这个设置,详见修改Pip数据目录(https://www.muliao.com/document/dataStoragePath-Pip)
export PIP_CACHE_DIR=/data/pip/cache
# 升级 pip 避免安装工具自身问题(清华镜像源)
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
# python-3.11 环境
conda create -n openwebui python=3.11
# 激动环境
conda activate openwebui
# 修改pip缓存目录
# 系统盘/大小为50G必须要修改,避免系统盘空间不足
# 镜像open-webui0.6.9_vllm0.8.5.post1中未执行此命令,已全部保存在系统盘默认存储目录中
# 直接在终端执行以下命令设置环境变量,仅对当前终端会话临时有效,如果希望对所有新打开的终端会话都应用这个设置,详见修改Pip数据目录(https://www.muliao.com/document/dataStoragePath-Pip)
export PIP_CACHE_DIR=/data/pip/cache
# 升级 pip 避免安装工具自身问题(清华镜像源)
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip升级完成:
安装 Open webui
- 安装 open webui
shell
# pip安装(清华镜像源)
pip install open-webui -i https://pypi.tuna.tsinghua.edu.cn/simple
# pip安装(清华镜像源)
pip install open-webui -i https://pypi.tuna.tsinghua.edu.cn/simple
- 启动 open webui
sh
# 设置环境变量(需在启动 open-webui 前执行),配置 Hugging Face 镜像加速
export HF_ENDPOINT="https://hf-mirror.com"
# 无认证方式启动,内网端口 8891
WEBUI_AUTH=False open-webui serve --port 8891
# 设置环境变量(需在启动 open-webui 前执行),配置 Hugging Face 镜像加速
export HF_ENDPOINT="https://hf-mirror.com"
# 无认证方式启动,内网端口 8891
WEBUI_AUTH=False open-webui serve --port 8891
启动成功:
浏览器访问 open webui(外网端口)
用公网 IP:8891映射的外部端口15167进行页面访问,例如:
http://140.210.92.251:15167
Open Webui 配置 VLLM
配置vllm连接
- 点击页面右上角【用户图标】,选择【设置】:
- 左侧菜单选择【外部连接】,点击右上角【+】添加外部连接:
配置外部连接:
URL:
http://140.210.92.251:25594/v1
密钥:EMPTY
此URL为vllm服务的访问地址,仅限本教程you'xiao其中:140.210.92.251为虚拟机公网IP,25594是内网端口8890映射的外部端口。用户按照此教程创建的虚拟机需自行查看实际IP:外部端口
- 保存连接配置、保存用户设置
交互式测试
- 保存连接后,点击页面左侧【选择一个模型】,选择Qwen3-1.7B模型:
- 对话框上方显示选择的模型:
- 交互式对话