Skip to content

轻松玩转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/ 数据目录下:

  1. 创建新目录:
shell
mkdir -p /data/conda/envs
mkdir -p /data/conda/pkgs
mkdir -p /data/conda/envs
mkdir -p /data/conda/pkgs
  1. 修改 /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

image-20250509101019847

备注:

  • 已有数据处理:修改配置后,之前创建的环境和下载的包不会自动迁移到新目录。
  • 权限问题:要确保 /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;

在 “模型文件” 页面,下载模型:

image-20250509094751701

根据右侧弹出的下载提示,用 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

  1. 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
  1. 启动 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启动完成:

image-20250513103405334

  1. 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:外部端口

image-20250513103503683

安装 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升级完成:

image-20250513103841520

安装 Open webui

  1. 安装 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
  1. 启动 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

​ 启动成功:

image-20250513105028169

  1. 浏览器访问 open webui(外网端口)

    用公网 IP:8891映射的外部端口15167进行页面访问,例如:http://140.210.92.251:15167

image-20250513105223069

Open Webui 配置 VLLM

配置vllm连接

  1. 点击页面右上角【用户图标】,选择【设置】:

image-20250513105505384

  1. 左侧菜单选择【外部连接】,点击右上角【+】添加外部连接:

image-20250513105630456

  1. 配置外部连接:

    URL:http://140.210.92.251:25594/v1

    密钥:EMPTY

    此URL为vllm服务的访问地址,仅限本教程you'xiao其中:140.210.92.251为虚拟机公网IP,25594是内网端口8890映射的外部端口。用户按照此教程创建的虚拟机需自行查看实际IP:外部端口

image-20250513110141382

  1. 保存连接配置、保存用户设置

交互式测试

  1. 保存连接后,点击页面左侧【选择一个模型】,选择Qwen3-1.7B模型:

image-20250513110501149

  1. 对话框上方显示选择的模型:

image-20250513110718250

  1. 交互式对话

image-20250513110847068