铁佛 发表于 2024-9-11 16:01:53

ubuntu下open-webui + ollama本地大模子部署

业余兴趣,部署下最近很火的LLM大模子玩玩,现在市面做这种大模子的部署快速应用还是挺多的,好比下面这些。
https://i-blog.csdnimg.cn/direct/e7faa1d729634f22af3249e09a6b85b1.png
这里先容接纳nvidia gpu,基于ubuntu docker情况下的open-webui + ollama本地大模子部署过程。
nvidia gpu驱动安装

如果电脑有nvidia gpu,使用本地大模子最好接纳gpu,否则用cpu的推理速度极慢,还占用资源。
安装

# nvidia镜像源
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

apt-get update

#安装 NVIDIA Container Toolkit 软件包
   apt-get install -y nvidia-container-toolkit
#配置 Docker 以使用 Nvidia 驱动程序
   sudo nvidia-ctk runtime configure --runtime=docker

apt-get install dkms

ubuntu-drivers devices # 查询系统建议安装的nvidia版本
apt install nvidia-driver-550-open#选择驱动版本安装
ls /usr/src/ |grep nvidia #可以看到nvidia开头的驱动版本文件
安装后reboot重启
然后实行nvidia-smi查看gpu情况,确认是否安装成功。
卸载

sudo apt-get --purge remove nvidia*
sudo apt autoremove

# To remove CUDA Toolkit:
sudo apt-get --purge remove "*cublas*" "cuda*"
sudo apt-get --purge remove "*nvidia*"

ollama 部署

添加docker秘钥

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
添加阿里docker软件源
sudo add-apt-repository "deb http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
https://i-blog.csdnimg.cn/direct/0c9522855b1c4465b51637b1062c7841.png
docker配置添加国内镜像源

创建文件:/etc/docker/daemon.json, 添加如下内容, docker镜像源将会从如下站点拉取。同时配置Nvidia运行时,能在docker中使用GPU。
{
    "registry-mirrors": [#镜像源
      "https://docker.mirrors.ustc.edu.cn",
      "https://hub-mirror.c.163.com",
      "https://docker.m.daocloud.io",
      "https://ghcr.io",
      "https://mirror.baidubce.com",
      "https://docker.nju.edu.cn"
    ],
    "default-runtime": "nvidia",
        "runtimes": {
             "nvidia": {
                   "args": [],
                   "path": "nvidia-container-runtime"
             }
       },
    "data-root": "/home/docker/data/"#docker镜像默认安装路径
   
}
其中,"data-root"为docker镜像默认安装路径,用户根据自己情况选择路径。如果不选择,默认安装到:/var/run/docker/。
sudo systemctl restart docker 生效。
ollama安装

从源拉取ollama镜像。

docker pull ollama/ollama:latest
启动一个ollama容器

docker run -d --gpus=all --restart=always -v /root/project/docker/ollama:/root/project/.ollama -p 11434:11434 --name ollama ollama/ollama
使用镜像为ollama/ollama,映射端口11434。
通过ollama下载模子到本地

#下载通义千问:
docker exec -it ollama ollama run qwen2
#下载通义ollama3
docker exec -it ollama ollama runllama3.1:8b

查看已经安装好的模子:
docker exec -it ollama ollama list
https://i-blog.csdnimg.cn/direct/c6540f37d86c4595a2bdde05f9daed44.png
可下载其他模子库如下,根据自身电脑配置下载
模子参数数目巨细下载方式Llama 27B3.8GBdocker exec -it ollama ollama run llama2Mistral7B4.1GBdocker exec -it ollama ollama run mistralDolphin Phi2.7B1.6GBdocker exec -it ollama ollama run dolphin-phiPhi-22.7B1.7GBdocker exec -it ollama ollama run phiNeural Chat7B4.1GBdocker exec -it ollama ollama run neural-chatStarling7B4.1GBdocker exec -it ollama ollama run starling-lmCode Llama7B3.8GBdocker exec -it ollama ollama run codellamaLlama 2 Uncensored7B3.8GBdocker exec -it ollama ollama run llama2-uncensoredLlama 213B7.3GBdocker exec -it ollama ollama run llama2:13bLlama 270B39GBdocker exec -it ollama ollama run llama2:70bOrca Mini3B1.9GBdocker exec -it ollama ollama run orca-miniVicuna7B3.8GBdocker exec -it ollama ollama run vicunaLLaVA7B4.5GBdocker exec -it ollama ollama run llavaGemma2B1.4GBdocker exec -it ollama ollama run gemma:2bGemma7B4.8GBdocker exec -it ollama ollama run gemma:7b 检验本地模子

通过命令运行ollama3.1,能直接进行对话,说明正常了。
docker exec -it ollama ollama runllama3.1:8b
https://i-blog.csdnimg.cn/direct/1c8614f8ff514ee2bb953840b2c57cf1.png
open-webui 部署

上面命令方式跟模子对话不太通用,通常会做成网页形式交互,这里可以接纳open-webui。
安装容器和镜像下载

支持 Nvidia GPU 的 Open WebUI
sudo docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
但下载估计非常慢,可以用国内的:
sudo docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart alwaysregistry.cn-shenzhen.aliyuncs.com/funet8/open-webui:cuda
如果不支持 Nvidia GPU 可以下载main版本:
$ sudo docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
映射端口号为3000.
查看ollama和open-webui安装的容器和镜像:
https://i-blog.csdnimg.cn/direct/cfe0ec8b6d7746c989b73ce63763b5fe.png
https://i-blog.csdnimg.cn/direct/61bbcee12fac4149aa9eb4d121a01e9e.png
webui使用

网页登入:
http://127.0.0.0:3000/
https://i-blog.csdnimg.cn/direct/da7605449e6044619f9e6e471cb58c09.png
第一次登入,必要注册个管理员账号。
进入webui后,查看是否辨认到模子。
https://i-blog.csdnimg.cn/direct/a27dfbc1590a4a299076f2580082659f.png
以及管理模子docker的端口号是否与ollama一致。
https://i-blog.csdnimg.cn/direct/330ab0aa3f8e420a9d84477fe0168d2c.png
第一次启动模子提问,可能要等候一段时间,等模子加载启动后才有回应。
(如果一直没有回应,但命令行方式有回应,那可能是webui安装题目,大概欣赏器题目)。
https://i-blog.csdnimg.cn/direct/b3ad6fe31cf94b748087531f1568cc23.png
查看模子运行时内存、cpu、gpu占用

模子开始回答题目时,cpu变革不大,回答结束后cpu规复,但内存被占用很多,而且回答结束后仍旧占用,说明模子已经被加载到内存处于生动状态。
https://i-blog.csdnimg.cn/direct/e06ac9148705456aa4e3379642a736c5.png
nvidia-smi查看,模子j计算的主要占用在GPU中。
https://i-blog.csdnimg.cn/direct/c8c5c6e9365c4bd082530d78d0785dbd.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: ubuntu下open-webui + ollama本地大模子部署