准备工作
机器配置:
CPU
i5-10400
内存
16GB
硬盘
SSD 480GB
显卡
GTX 1660
系统:Ubuntu 18.04 Server
NVIDIA驱动安装 - 下载 驱动下载地址:https://www.nvidia.cn/geforce/drivers/
- 获取下载链接 GTX 1660驱动下载链接:https://cn.download.nvidia.cn/XFree86/Linux-x86_64/550.100/NVIDIA-Linux-x86_64-550.100.run
- 安装驱动所需依赖 1 sudo apt install gcc g++ make
- 安装驱动 1 2 chmod +x NVIDIA-Linux-x86_64-550.100.run ./NVIDIA-Linux-x86_64-550.100.run
- 验证驱动
安装 Ollama - 安装方式:
- 修改ollama.service环境变量 由于ollama.service默认启动地址是127.0.0.1,仅限本机访问,所以要改成0.0.0.0
,使其能被其他主机连接,后边docker部署open-webui
也会用到这个地址。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 chain@ubuntu:~$ cat /etc/systemd/system/ollama.service [Unit] Description=Ollama Service After=network-online.target [Service] ExecStart=/usr/local/bin/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/data/envs/go/bin" Environment="OLLAMA_HOST=0.0.0.0" [Install] WantedBy=default.target
- 重载并重启服务 1 2 systemctl daemon-reload systemctl restart ollama.service
- 验证是否正常运行 1 2 chain@ubuntu:~$ curl localhost:11434 Ollama is running
- ollama常用命令 1 2 3 4 5 6 7 ollama list:显示模型列表。 ollama show:显示模型的信息 ollama pull:拉取模型 ollama push:推送模型 ollama cp : 拷贝一个模型 ollama rm : 删除一个模型 ollama run: 运行一个模型
大模型库下载 下载地址:https://ollama.com/library 模型版本数值B数
越低,最低要求的资源就少,B数
越高,最低要求的资源就多,可根据自己主机配置,酌情选择。
- 例子:llama2模型使用 模型地址文档:https://ollama.com/library/llama2,由文档中可知模型有三个版本
7b
通常最低需要8GB内存
13b
通常最低需要16GB内存
70b
通常最低需要64GB内存
我的主机配置是16GB
,我选择7b
这个版本
- 开始下载 1 2 3 4 5 6 7 ollama run llama2 chain@ubuntu:~$ ollama list NAME ID SIZE MODIFIED llama2:latest 78e26419b446 3.8 GB 4 hours ago
- 开始运行 问一个AI模型中最近比较热的问题,看起来答的还可以,只不过中文回答支持不太好。
1 2 3 chain@ubuntu:~$ ollama run llama2 >>> 9.9和9.11哪个大 Both 9.9 and 9.11 are less than 10. Therefore, the smallest of the two is 9.11.
- 资源使用情况 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 chain@ubuntu:~$ nvidia-smi Tue Jul 23 06:54:50 2024 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 550.100 Driver Version: 550.100 CUDA Version: 12.4 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA GeForce GTX 1660 Off | 00000000:01:00.0 Off | N/A | | 46% 38C P0 22W / 120W | 5071MiB / 6144MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | 0 N/A N/A 23520 C ...unners/cuda_v11/ollama_llama_server 5068MiB | +-----------------------------------------------------------------------------------------+ chain@ubuntu:~$ free -h total used free shared buff/cache available Mem: 15G 1.7G 553M 27M 13G 13G Swap: 0B 0B 0B chain@ubuntu:~$ w 06:58:22 up 1 day, 18 min, 2 users , load average: 0.03, 0.02, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT chain pts/0 192.168.1.110 Mon09 3:41 0.92s 0.70s ollama run llama2
由此看到显卡资源:5G/6G,内存:1.7G/15G ,CPU: 0.02。由于我们装了显卡驱动,优先计算使用资源的是显卡。如果无显卡,则使用CPU和内存资源。
open-webui部署 官方仓库地址:https://github.com/open-webui/open-webui
docker部署 1 2 3 4 5 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
–add-host:将host.docker.internal=host-gateway添加到容器内/etc/hosts中,即容器内的hosts文件会增加一条记录172.17.0.1 host.docker.internal
。host.docker.internal=host-gateway是固定用法。
-v open-webui:/app/backend/data : 将宿主机的open-webui目录映射到容器/app/backend/data目录.
【宿主机的open-webui目录存放位置:/var/lib/docker/volumes/open-webui,这里我尝试过改到其他目录,即 -v /data/open-webui:/app/backend/data
,但启动后查看日志会报OSError: We couldn’t connect to ‘https://huggingface.co' to load this file, couldn’t find it in the cached files and it looks like sentence-transformers/all-MiniLM-L6-v2 is not the path to a directory containing a file named config.json.此问题暂未解决。】
其他参数为docker常用参数,不再细嗦。
web访问 地址:http:// ip 或者 localhost: 3000,首次访问需要离线注册,没有验证码。
界面展示: