vllm & open-webui 部署属于你的LLMs_vllm 界面
最近在工作群里看到这张图片:
很明显这个模型路径是本地部署的,但好像又有着非常友好的交互界面。我以为是vllm还有一些UI界面可以耍,但翻遍了手册也没找到。以我好学的性格,就跑到同事面前“打探”了情报,才知道是另一个工具:open-webui。
站在巨人的肩膀上,来学习一下这个extensible user-friendly self-hosted AI interface吧。
直接上图:
说说open-webui优点:
- 自定义背景图,设计属于你的LLM
- 添加系统提示词,全局定义模型的人设
- 添加“记忆”,让模型记住你的人设
- 长上下文对话
- 支持多账号管理,分级管理
- ......
功能实在是齐全,用起来很不错。
下面来在linux系统使用 open-webui 集成 vllm 的OpenAI-Compatible Server
1.在docker中安装vllm:
首先当然是启动docker:
docker run --gpus \'\"device=0,1\"\' -it --name vllm -v /home/zilong/.cache/modelscope/hub/models:/root/.cache/modelscope/hub/models -p 8080:8080 mcc-gpu:v1
这里 --gpus \'\"device=0,1\"\' 只使用宿主机的前两个gpu
-v 挂载魔搭社区的下载目录到docker,避免反复cp
-p 8080:8080 映射宿主机端口到docker中
mcc-gpu:v1是image名称,需要提前下载镜像包
容器启动后,我们直接安装python3:
sudo apt updatesudo apt install python3
然后安装vllm:
pip3 install vllm
当然如果物理机的编译器版本不老旧的话,也可以直接在虚拟环境中安装vllm。
2.启动vllm服务器
vllm serve ~/.cache/modelscope/hub/models/Qwen/Qwen2___5-14B-Instruct --dtype auto --served-model-name qwen-14B-instruct --api-key EMPTY --gpu-memory-utilization 0.60 --tensor-parallel-size 2 --port 8080
vllm serve 后直接跟模型文件的 路径
--dtype设置为auto
模型名称随便设置,最终UI界面会显示这个名称
api为EMPTY
设置gpu最大显存用量60%和双卡张量并行
--port 要和之前设置的映射docker 端口一致
我们就有了Open AI兼容的API服务:
api_key: EMPTY
base_url: http://:8080/v1
接下来我们要把这个服务接入open-webui
3.启动OpenAI API Usage open-webui
docker run -d -p 0.0.0.0:3000:8080 -e OENAI_API_KEY=EMPTY -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
-d 分离模式化,让open-webui在后台运行
-p 0.0.0.0:3000:8080,宿主机3000端口映射到docker的8080端口。注意,因为用的是OpenAI API Usage open-webui,容器端口必须监听OpenAI服务,此时只有docker的8080端口在监听,所以docker的映射端口必须设置为8080,否则无法访问宿主机的3000端口。
-v open-webui:/app/backend/data
表示将 Docker 卷 open-webui
绑定到容器内的 /app/backend/data
目录,即使容器重启,用户的设置信息、历史记录等数据也不会丢失。、
容器名称为open-webui
ghcr.io/open-webui/open-webui:main是镜像名称,会自动下载镜像
可以docker ps查看open-webui服务status:
Up 14 second (health: starting),表示正在准备服务
如果显示:
Up About a minute (unhealthy)
可以重启docker:
docker restart open-webui
等待status:
Up About a minute (healthy)
现在就可以访问open-webui了:
http://:3000
进入到UI界面,首先注册管理员账号,注册完就可以使用open-webui了
4.open-webui集成模型服务
点击右上角头像-设置:
外部链接,+号:
将刚刚拿到的Open AI服务填入:
保存完就可以选择模型名称进行对话啦。
最后是相关的参考地址:
1. vllm 部署模型,提供 OpenAI API兼容的服务地址:OpenAI-Compatible Server — vLLM
2.open-webui地址:open-webui