0


Ubuntu系统下部署大语言模型:Ollama和OpenWebUI实现各大模型的人工智能自由

之前在window下安装过 Ollama和OpenWebUI搭建本地的人工智能web项目(可以看我之前写的文章),无奈电脑硬件配置太低,用qwen32b就很卡,卡出PPT了,于是又找了一台机器安装linux系统,在linux系统下测试一下速度能否可以快一些。

系统硬件介绍

Ubuntu 22.04.4 LTS

CPU: i5-10400F

内存:32G

硬盘: 512G SSD

显卡: NVIDIA GeForce GTX 1060 6GB

内网IP: 192.168.1.21

ubuntu-Ollama-OpenWebUI

下载 Ollama

访问下载: https://ollama.com/

image-20240517160214023

安装Ollama

方法1、命令行下载安装(耗时长)

安装命令:

  1. $ sudo apt install curl
  2. $ curl -fsSL https://ollama.com/install.sh | sh

image-20240517160657340

缺点: 国内网络环境要等很久

方法2 , 手动下载安装

1、手动下载 https://ollama.com/install.sh 这个文件

  1. $ sudo mkdir ollama
  2. cd ollama
  3. $ sudo wget https://ollama.com/install.sh

2、注释掉下载部分 curl xxxx 手动下载ollama-linux-{ARCH}

  1. $ sudo vim install.sh
  2. 修改文件:
  3. status "Downloading ollama..."
  4. #curl --fail --show-error --location --progress-bar -o $TEMP_DIR/ollama "https://ollama.com/download/ollama-linux-${ARCH}${VER_PARAM}"

我电脑intel/amd cpu 所以 {ARCH} = amd64
浏览器下载 https://ollama.com/download/ollama-linux-amd64 当然科学上网速度更快哟。 放在 install.sh 同目录下

3、注释掉 #$SUDO install -o0 -g0 -m755 $TEMP_DIR/ollama $BINDIR/ollama

改为下面一行:

  1. $ sudo vim install.sh
  2. 修改文件:
  3. status "Installing ollama to $BINDIR..."
  4. $SUDO install -o0 -g0 -m755 -d $BINDIR
  5. #$SUDO install -o0 -g0 -m755 $TEMP_DIR/ollama $BINDIR/ollama
  6. $SUDO install -o0 -g0 -m755 ./ollama-linux-amd64 $BINDIR/ollama

4 运行 install.sh ,安装

  1. sh ./install.sh

image-20240517171750382

image-20240517171944028

重启电脑

配置模型下载路径

  1. cd
  2. sudo vim .bashrc
  3. sudo mkdir -p /home/star/ollama/ollama_cache

然后添加一行 配置 OLLAMA_MODELS 环境变量自定义路径

  1. ### ollama model dir 改为自己的路径
  2. # export OLLAMA_MODELS=/path/ollama_cache
  3. export OLLAMA_MODELS=/home/star/ollama/ollama_cache

如果开始没配置OLLAMA_MODELS ,默认路径是/usr/share/ollama/.ollama/models

启动ollama服务

  1. # ollama --help
  2. Large language model runner
  3. Usage:
  4. ollama [flags]
  5. ollama [command]
  6. Available Commands:
  7. serve Start ollama
  8. create Create a model from a Modelfile
  9. show Show information for a model
  10. run Run a model
  11. pull Pull a model from a registry
  12. push Push a model to a registry
  13. list List models
  14. ps List running models
  15. cp Copy a model
  16. rm Remove a model
  17. help Help about any command
  18. Flags:
  19. -h, --help help for ollama
  20. -v, --version Show version information
  21. Use "ollama [command] --help" for more information about a command.

提示

  1. star@star-ai:~$ ollama serve
  2. Couldn't find '/home/star/.ollama/id_ed25519'. Generating new private key.
  3. Your new public key is:
  4. ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPmYsSi6aIsyhC4EHEsCdBtSOqnfKmNVSf0Ofz9sVzyB
  5. Error: listen tcp 127.0.0.1:11434: bind: address already in use

说明已经运行

修改ollama端口

  1. vim /etc/systemd/system/ollama.service
  2. [Service] 下添加 Environment="OLLAMA_HOST=0.0.0.0"
  3. cat /etc/systemd/system/ollama.service
  4. [Unit]
  5. Description=Ollama Service
  6. After=network-online.target
  7. [Service]
  8. ExecStart=/usr/local/bin/ollama serve
  9. User=ollama
  10. Group=ollama
  11. Restart=always
  12. RestartSec=3
  13. Environment="PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
  14. Environment="OLLAMA_HOST=0.0.0.0"
  15. [Install]
  16. WantedBy=default.target

重新加载配置,重启ollama

  1. systemctl daemon-reload
  2. systemctl restart ollama
  3. 关闭服务
  4. systemctl stop ollama
  5. 启动服务
  6. systemctl start ollama

运行qwen大模型

  1. ollama run qwen

image-20240517173411382

安装docker

一键安装脚本

  1. sudo curl -sSL https://get.docker.com/ | sh
  2. 安装完成之后
  3. star@star-ai:~$ sudo docker --version
  4. Docker version 26.1.3, build b72abbb

安装Open WebUI

Open WebUI是一个用于在本地运行大型语言模型(LLM)的开源Web界面。

参考: https://docs.openwebui.com/getting-started/#quick-start-with-docker-

docker安装open-webui

  1. $ 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

要运行支持 Nvidia GPU 的 Open WebUI,请使用以下命令:

  1. $ 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

改国内的地址

  1. $ 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

报错:

  1. 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
  2. 254b47e7994b2f0087ce0058918621523b39cf9b0e89018777c0cf98943ba2d1
  3. docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].

ubuntu识别不了我的显卡

  1. $ sudo nvidia-smi
  2. Fri May 17 18:37:15 2024
  3. +-----------------------------------------------------------------------------------------+
  4. | NVIDIA-SMI 550.54.15 Driver Version: 550.54.15 CUDA Version: 12.4 |
  5. |-----------------------------------------+------------------------+----------------------+
  6. | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
  7. | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
  8. | | | MIG M. |
  9. |=========================================+========================+======================|
  10. | 0 NVIDIA GeForce GTX 1060 6GB Off | 00000000:01:00.0 Off | N/A |
  11. | 40% 33C P8 6W / 120W | 65MiB / 6144MiB | 0% Default |
  12. | | | N/A |
  13. +-----------------------------------------+------------------------+----------------------+
  14. +-----------------------------------------------------------------------------------------+
  15. | Processes: |
  16. | GPU GI CI PID Type Process name GPU Memory |
  17. | ID ID Usage |
  18. |=========================================================================================|
  19. | 0 N/A N/A 1030 G /usr/lib/xorg/Xorg 56MiB |
  20. | 0 N/A N/A 1109 G /usr/bin/gnome-shell 4MiB |
  21. +-----------------------------------------------------------------------------------------+

安装nvidia-container-toolkit:
确保你已经安装了nvidia-container-toolkit,并配置Docker以使用该工具包:

  1. sudo apt-get update
  2. sudo apt-get install -y nvidia-container-toolkit
  3. sudo systemctl restart docker

检查Docker默认运行时配置:
确保Docker的默认运行时设置为nvidia。编辑Docker的配置文件(通常位于/etc/docker/daemon.json),并添加或修改如下内容:

  1. sudo vim /etc/docker/daemon.json
  2. 添加:
  3. {
  4. "default-runtime": "nvidia",
  5. "runtimes": {
  6. "nvidia": {
  7. "path": "nvidia-container-runtime",
  8. "runtimeArgs": []
  9. }
  10. }
  11. }
  12. 编辑完文件后,重启Docker服务:
  13. sudo systemctl restart docker

检查NVIDIA Container Runtime兼容性:
确保你的NVIDIA Container Runtime版本与Docker版本兼容。可以通过以下命令查看版本:

  1. sudo docker version
  2. nvidia-container-runtime --version

完成上述步骤后,再次尝试运行你的Docker命令。如果问题仍然存在,请提供更多的系统信息和日志,以便进一步诊断问题。

  1. sudo docker start open-webui

image-20240517184705558

登录open-webui

用IP+端口访问

image-20240517184836945

修改语言为中文

OpenWebUI默认是英文的,所以修改语言为简体中文。

image-20240518130431610

OpenWebUI不能连接Ollama

报错:WebUI could not connect to ollama

image-20240518130617215

修改地址:http://192.168.1.21:11434

image-20240518163725720

再下载千问的模型 qwen

image-20240518164005249

下载大模型

ollama官方的模型仓库参见这里:https://ollama.com/library

image-20240518165100596

根据自己的CPU和GPU选择合适的大模型,否则会很卡。

比如测试用的1060使用qwen:72b就很卡,问一个问题要等很久,几乎是不能用的状态。

  1. 阿里巴巴的大模型:
  2. ollama run qwen
  3. ollama run qwen:14b
  4. ollama run qwen:32b
  5. ollama run qwen:72b
  6. ollama run qwen:110b # 110b 表示该模型包含了 1100 亿(110 billion)个参数
  7. 脸书大模型:
  8. ollama run llama2
  9. ollama run llama3
  10. ollama run llama3:8b
  11. 谷歌的大模型:
  12. ollama run gemma
  13. 微软的大模型
  14. ollama run phi3

删除模型

  1. 显示所有模型
  2. # ollama list
  3. 删除模型
  4. # ollama rm llama3:latest

image-20240518162719946

ubuntu查看GPU负载

  1. nvidia-smi

确实在ubuntu20.04系统下确实比window10系统使用Ollama更加流畅。


本文转载自: https://blog.csdn.net/lxx309707872/article/details/139029385
版权归原作者 星哥说事 所有, 如有侵权,请联系我们删除。

“Ubuntu系统下部署大语言模型:Ollama和OpenWebUI实现各大模型的人工智能自由”的评论:

还没有评论