jklincn


使用 vLLM + Open WebUI 部署 Qwen2.5 大模型


本文选择部署的具体模型是 Qwen2.5-Coder-32B-Instruct-AWQ,但教程应该也适用于其他 Qwen2.5 系列的模型。

相关的官方仓库/文档链接

Qwen2.5

Qwen 是阿里巴巴集团 Qwen 团队研发的大语言模型和大型多模态模型系列。

仓库:https://github.com/QwenLM/Qwen2.5-Coder

文档:https://qwen.readthedocs.io/zh-cn/latest/

Hugging Face:https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct-AWQ

vLLM

vLLM 是一个快速且易于使用的 LLM 推理和服务库。

仓库:https://github.com/vllm-project/vllm

文档:https://docs.vllm.ai/en/latest/

Open WebUI

Open WebUI 是一个可扩展的、自托管的 AI 界面,可以适应您的工作流程,同时完全离线操作。

仓库:https://github.com/open-webui/open-webui

文档:https://docs.openwebui.com/

部署过程

得益于 vllm 和 open-webui 的易用性,我们部署的过程其实非常简单。

安装 conda

这里任选一个 conda 发行版进行安装即可,使用 conda 是为了环境隔离,强烈推荐。

比如 miniconda

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
source ~/miniconda3/bin/activate
conda init --all

创建虚拟环境

conda create -n open-webui python==3.11

这里选用 python 3.11 版本是因为 open-webui 的要求。(如果使用 docker 安装则可以不考虑,本文采用 pip 安装)

安装所有依赖

conda activate open-webui
pip install -U open-webui vllm torch transformers

先激活虚拟环境,然后在虚拟环境中安装所有所需的软件,包括 open-webui 和 vllm 。注意 open-webui 的依赖非常多(题外话:感觉可以优化一下),这一步需要一些时间。

下载模型权重

export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download Qwen/Qwen2.5-Coder-32B-Instruct-AWQ

由于网络问题,这里设置了 hugging face 的镜像地址,用来加速下载。Qwen/Qwen2.5-Coder-32B-Instruct-AWQ 的权重大约为 19 GB,需要一些时间进行下载。

运行 vllm

vllm serve Qwen/Qwen2.5-Coder-32B-Instruct-AWQ --tensor-parallel-size 4

使用 vllm serve启动 vllm。由于作者有 4 张 GPU,因此这里设置 --tensor-parallel-size 4 启用张量并行,可以根据实际 GPU 数量更改。

vllm 运行后会在本地 8000 端口暴露一个 openai API 服务,我们后面使用 open-webui 来连接就可以了。

运行 open-webui

由于 vllm 的运行导致原终端阻塞,因此要另外开一个新终端

conda activate open-webui
export HF_ENDPOINT=https://hf-mirror.com
export ENABLE_OLLAMA_API=False
export OPENAI_API_BASE_URL=http://127.0.0.1:8000/v1
export DEFAULT_MODELS="Qwen/Qwen2.5-Coder-32B-Instruct-AWQ"
open-webui serve

这里设置一些环境变量,尤其是 ENABLE_OLLAMA_API 设置为 False,将大幅提升面板响应速度(因为后台会一直尝试连接 Ollama)。

开始玩耍

一切运行正常后,可以通过浏览器输入 http://127.0.0.1:8080 打开 open-webui 面板进行使用。如果部署在远程服务器则需要把 127.0.0.1 改成对应的 ip 地址(并考虑防火墙问题)。

关于后台持续运行服务,可以使用 tmux/screen/systemd 工具或者 nuhup ... & 等方法,网上教程非常多,本文在此不叙述。

性能优化

待补充


本站不记录浏览量,但如果您觉得本内容有帮助,请点个小红心,让我知道您的喜欢。