本地离线运行Openweb-ui ollama容器化部署
- 说明
- 安装
- internet操作
- 内网操作
- 问题
- 线程启动错误
- 最终命令
- 总结
说明
最近公司有一个在内网部署一个离线大模型的需求,网络是离线状态,服务器有A100GPU,一开始是想折腾开源chatGML4大模型,因为使用过gml3,所以想着部署gml4应该不难。于是把模型和程序下载好,把模型导入到内网…发现不能使用网页版运行,只能使用客户端运行,用自带网页需要依赖gradio组件,该组件又需要联网…好吧,如果您知道怎么离线运行,请视我无知…于是查询,更换了一种更便捷的方案部署。Open-webui+ollama的方案,Open-webui是网页界面服务,ollama是大模型运行框架,支持多种大模型,只需要选择切换就能切换不同模型运行了。开整!
安装
internet操作
这里使用docker镜像容器的方式安装,简化部署和运行。
1.拉取镜像,这里虽然可以分别拉取Open-webui和ollama镜像,但是我仍然推荐你拉取一个镜像就好了。
docker pull ghcr.io/open-webui/open-webui:ollama
拉取完这个镜像,run起来就算部署完了。这个镜像是包含两个组件,并且是openwebui官网提供说明的下载地址。可能会有点慢,但是实测是可以拉取下来的。
2.run起镜像来。
docker run -d -p 3000:8080 --gpus=all -v /raid/Test/ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
这里的-v是目录映射
-p是端口映射
–name是容器名称
其他的就不做说明了。
3.到这里,理论上是可以进入到网页了
用浏览器打开[ip地址:3000]。
ip地址是运行该镜像机器地址
记得防火墙关闭或者运行3000端口暴露。
4.下载模型。这里下载模型可以通过网页,选择,搜索模型,进行下载。至于模型的名字就去官网
ollama.com搜索
再推荐一种下载方法:
a,登陆到启动的容器
docker exec -it open-webui /bin/bash
b,执行拉取命令
ollama pull EntropyYue/longwriter-glm4:9b
ollama pull llama3.3
ollama pull gemma:7b
ollama pull deepseek-coder-v2:16b
每条命令拉取一个大模型,这个看自己需求吧,每一个大小不同。有一个就行了。下完一个,模型会默认存储到.ollama目录下。这个也是需要拷贝的内容。
5.拷贝下载。
a,拷贝镜像。拉取的镜像需要保存为tar
docker save -o openwebui_ollama.tar ghcr.io/open-webui/open-webui:ollama
这个会保存到当前目录,这是需要拷贝到内网找中的。
b,拷贝模型,这里模型在/raid/Test/ollama目录下,一起打包。导入内网就行了。
内网操作
拷贝进来,就解压。运行就行了。
加载镜像
docker load < openwebui_ollama.tar
run起来,这里的run命令还是跟之前操作一致,但是模型目录可以修改为内网机的目录就行,或者建立一样的目录就行了。
问题
理论上,run起来就可以用浏览器打开使用了。但是可能会卡在OI界面…查看容器日志,才发现有问题。
线程启动错误
OpenBLAS blas threas_init; pthread_create faiied for thread 23 of 64: Operation not permitted
网上说要下载模型,还挺麻烦的。
git lfs install
git clone https://hf-mirror.com/sentence-transformers/all-MiniLM-L6-v2
这个问题,还是因为openwebui需要下载一个离线文件,但是通过官网说明,只要加一个环境变量即可。
最终命令
docker run -d -p 3000:8080 --gpus=all -v /raid/Test/ollama:/root/.ollama -e HF_HUB_OFFLINE=1 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
总结
1.下载好镜像,并运行起来
2.进入容器中,执行命令拉取ollama模型
3.将镜像保存,和拉取的ollama模型保存
4.拷贝到内网,用最终命令run起镜像,防火墙运行端口
5.浏览器访问,愉快使用。
编辑:myhappyandy