文章目录
nvidia gpu驱动安装安装卸载 ollama 部署添加docker秘钥docker配置添加国内镜像源ollama安装从源拉取ollama镜像。启动一个ollama容器 通过ollama下载模型到本地检验本地模型 open-webui 部署安装容器和镜像下载webui使用查看模型运行时内存、cpu、gpu占用
业余兴趣,部署下最近很火的LLM大模型玩玩,现在市面做这种大模型的部署快速应用还是挺多的,比如下面这些。
这里介绍采用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 [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.listapt-get update#安装 NVIDIA Container Toolkit 软件包 apt-get install -y nvidia-container-toolkit#配置 Docker 以使用 Nvidia 驱动程序 sudo nvidia-ctk runtime configure --runtime=dockerapt-get install dkmsubuntu-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 [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
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#下载通义ollama3docker exec -it ollama ollama run llama3.1:8b
查看已经安装好的模型:
docker exec -it ollama ollama list
可下载其他模型库如下,根据自身电脑配置下载
模型 | 参数数量 | 大小 | 下载方式 |
---|---|---|---|
Llama 2 | 7B | 3.8GB | docker exec -it ollama ollama run llama2 |
Mistral | 7B | 4.1GB | docker exec -it ollama ollama run mistral |
Dolphin Phi | 2.7B | 1.6GB | docker exec -it ollama ollama run dolphin-phi |
Phi-2 | 2.7B | 1.7GB | docker exec -it ollama ollama run phi |
Neural Chat | 7B | 4.1GB | docker exec -it ollama ollama run neural-chat |
Starling | 7B | 4.1GB | docker exec -it ollama ollama run starling-lm |
Code Llama | 7B | 3.8GB | docker exec -it ollama ollama run codellama |
Llama 2 Uncensored | 7B | 3.8GB | docker exec -it ollama ollama run llama2-uncensored |
Llama 2 | 13B | 7.3GB | docker exec -it ollama ollama run llama2:13b |
Llama 2 | 70B | 39GB | docker exec -it ollama ollama run llama2:70b |
Orca Mini | 3B | 1.9GB | docker exec -it ollama ollama run orca-mini |
Vicuna | 7B | 3.8GB | docker exec -it ollama ollama run vicuna |
LLaVA | 7B | 4.5GB | docker exec -it ollama ollama run llava |
Gemma | 2B | 1.4GB | docker exec -it ollama ollama run gemma:2b |
Gemma | 7B | 4.8GB | docker exec -it ollama ollama run gemma:7b |
检验本地模型
通过命令运行ollama3.1,能直接进行对话,说明正常了。
docker exec -it ollama ollama run llama3.1:8b
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 always registry.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安装的容器和镜像:
webui使用
网页登入:
http://127.0.0.0:3000/
第一次登入,需要注册个管理员账号。
进入webui后,查看是否识别到模型。
以及管理模型docker的端口号是否与ollama一致。
第一次启动模型提问,可能要等待一段时间,等模型加载启动后才有回应。
(如果一直没有回应,但命令行方式有回应,那可能是webui安装问题,或者浏览器问题)。
查看模型运行时内存、cpu、gpu占用
模型开始回答问题时,cpu变化不大,回答结束后cpu恢复,但内存被占用很多,而且回答结束后仍然占用,说明模型已经被加载到内存处于活跃状态。
nvidia-smi
查看,模型j计算的主要占用在GPU中。