使用 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 ... & 等方法,网上教程非常多,本文在此不叙述。
性能优化
待补充
本站不记录浏览量,但如果您觉得本内容有帮助,请点个小红心,让我知道您的喜欢。