当前位置: 首页 > news >正文

关于自己部署AI大模型踩的坑(三)—— 部署

最近一直在研究如何打算属于我自己的J.A.R.V.I.S.(钢铁侠中的机器人管家)。

上一篇写了我最近在部署自己的大模型,使用llama3.1, 和通义千问2。虽然最终结果也是成功了,过程却十分地坎坷。所以这一篇文章一是总结其中遇到的问题,软件、硬件,想到什么就写什么,算是随笔吧。也给后面自己部署的同学们写个避雷指南。

前面已经写了硬件和GPU的相关文章:

关于自己部署AI大模型踩的坑(一)——硬件篇_llama3.1 70b 硬件要求-CSDN博客

关于自己部署AI大模型踩的坑(二)—— GPU篇_ollama用cpu运行大模型是模拟gpu?-CSDN博客

接下来就是要部署大模型了。如果你只是想体验一下大模型,不打算使用GPU,那其实相对来说简单很多。而如果你要你的大模型更加智能,更加地有效地帮助你工作,GPU的使用在所难免,而且GPU的性能还是越高越好——这里有金钱滚滚的声音。

这篇先写部署成功的一些经历:

一、系统和驱动。

虽然windows也可以部署,但对于一个技术人员来说,linux有着不可比拟的稳定性和便捷性,尤其是Docker的使用(Windows也可以部署Docker,非开发人员也可以使用Windows部署相关应用,我选择了Ubuntu来部署)。

安装使用的是Ubuntu24.04, GPU使用的是NVIDIA Tesla P40。

之前选择的是NVIDIA Tesla K80。但K80的 Computer Capability(计算能力)只有3.7,Ollama要求GPU的计算能力在5.0以上,最好是6.0以上。

虽然可以通过修改Ollama源码,重新编译的方式使得Ollama可以使用K80的GPU,但各种适配的环境、应用都需要更改,有点太麻烦了。

同时,NVIDIA提供的CUDA版本,也有点落后了。K80目前可以安装的CUDA最高版本为11.4,而P40最高可以到12.6。

二、安装Ollama

1、自动安装

Ollama的安装,在官方页面上的介绍很简单,只需要一条命令:

curl -fsSL https://ollama.com/install.sh | sh

2、手动安装

但是众所周知的原因,我推荐使用手动安装:

curl -fsSL https://ollama.com/download/ollama-linux-amd64.tgz | sudo tar zx -C /usr

当然,对于步步都想要亲力亲为的我来说,选择的命令是:

wget https://ollama.com/download/ollama-linux-amd64.tgz
sudo tar zxvf ollama-linux-amd64.tgz -C /usr

通过上面两条命令,你可以清楚的看到Ollama的安装过程,和安装路径。

然后新添加一个用户:

sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama

新建一个service文件 /etc/systemd/system/ollama.service:

[Unit]
Description=Ollama Service
After=network-online.target[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3[Install]
WantedBy=default.target

如果需要非本机调用Ollama接口,还需要在Service标签下添加一行:

Environment="OLLAMA_HOST=0.0.0.0"

比如我的最终就是:

[Unit]
Description=Ollama Service
After=network-online.target[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0"[Install]
WantedBy=default.target

然后启动Ollama服务

sudo systemctl daemon-reload
sudo systemctl enable ollama

这时你在shell里输入命令 ollama serve, 可以看到 11434端口被占用的响应。这也说明Ollama已经安装成功了。

ubuntu@ubuntu:~$ ollama serve
Error: listen tcp 127.0.0.1:11434: bind: address already in use

三、运行大模型。

安装好Ollama后,运行大模型就非常方便了,只需要一条命令: ollama run xxx

比如我想使用llama3.1, 那么输入命令 ollama run llama3.1,ollama即会自动运行,尝试加载llama3.1的模型。如果本地没有模型文件,ollama即开始自动下载。

因为未做优化的llama3.1对汉语的支持并不太好,所以我选择了阿里的通义千问来做测试:

拉取大模型

拉取完成,自动启动大模型

当然,你也可以选择Ollama支持的任意大模型来使用:

ModelParametersSizeDownload
Llama 3.18B4.7GBollama run llama3.1
Llama 3.170B40GBollama run llama3.1:70b
Llama 3.1405B231GBollama run llama3.1:405b
Phi 3 Mini3.8B2.3GBollama run phi3
Phi 3 Medium14B7.9GBollama run phi3:medium
Gemma 22B1.6GBollama run gemma2:2b
Gemma 29B5.5GBollama run gemma2
Gemma 227B16GBollama run gemma2:27b
Mistral7B4.1GBollama run mistral
Moondream 21.4B829MBollama run moondream
Neural Chat7B4.1GBollama run neural-chat
Starling7B4.1GBollama run starling-lm
Code Llama7B3.8GBollama run codellama
Llama 2 Uncensored7B3.8GBollama run llama2-uncensored
LLaVA7B4.5GBollama run llava
Solar10.7B6.1GBollama run solar

四、安装open-webui

Ollama安装完成后,仍然是一个命令行的工具,虽然他也提供了API可供开发使用,比如python, js, java,均可供开发人员调用。

而目前开源的界面工具已经有不少,并且做得相当优秀,比如open-webui。就很简洁,也很方便。

open-webui安装部署有两种试:Docker部署和手动安装。

1、Docker部署

相对来说很方便,但有问题起来却非常地复杂。

因为我不喜欢他自动启动,所以我去掉了 --restart always 这段命令

使用CPU运行:

# 使用CPUdocker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main# 如果Ollama不在本地
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main# 使用GPU
docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:cuda# 使用国内镜像拉取
docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui registry.cn-shenzhen.aliyuncs.com/funet8/open-webui:cuda# 当然上面的几条命令也可以换成国内镜像使用。
# 比如CPU版docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui registry.cn-shenzhen.aliyuncs.com/funet8/open-webui:main

2、手动部署

在确定自己的硬件和软件都支持的前提下,也可以手动部署。不过建议小白不要尝试,其中很多问题,可能小白解决不了。

下面是open-webui官方文档里的部署方法,我部署的过程没记录,很复杂就是了(比如python虚拟环境venv/conda, torch版本和安装等等)。

Requirements 📦​
  • 🐰 Node.js >= 20.10
  • 🐍 Python >= 3.11
Build and Install 🛠️​

Run the following commands to install:

For Linux/macOS:

git clone https://github.com/open-webui/open-webui.git
cd open-webui/# Copying required .env file
cp -RPp .env.example .env# Building Frontend Using Node
npm install
npm run buildcd ./backend# Optional: To install using Conda as your development environment, follow these instructions:
# Create and activate a Conda environment
conda create --name open-webui-env python=3.11
conda activate open-webui-env# Install dependencies
pip install -r requirements.txt -U# Start the application
bash start.sh

For Windows:

git clone https://github.com/open-webui/open-webui.git
cd open-webuicopy .env.example .envnpm install
npm run buildcd .\backend# Optional: To install using Conda as your development environment, follow these instructions:
# Create and activate a Conda environment
conda create --name open-webui-env python=3.11
conda activate open-webui-envpip install -r requirements.txt -Ustart.bat

如果都部署成功,就可以通过 http://ip:3000 的地址访问到界面了。

同时也可以看到GPU已经在工作了(测试使用的是qwen2:0.5b/qwen2:7b,P40 24G显存,理论上可以支持7b甚至更高的模型流畅使用):

上面为两次GPU信息截图,上为Docker部署的open-webui运行时,下为qwen2:0.5b/Docker部署open-webui的GPU使用情况

此为单独启动qwen2:7b的GPU使用情况

qwen2:7b在运行/回答问题时的GPU使用情况


http://www.mrgr.cn/news/17146.html

相关文章:

  • Qt 实现不规则的部件或者窗口
  • 探索Python数据持久化的秘密:ZODB库的神奇之旅
  • 金融风控领域的15大顶级学术期刊
  • 【Rust练习】11.struct
  • 可能是支持属性最多的类似验证码的输入控件了。一个超好用的验证码,卡号,车牌号,IP地址-输入控件 - 掘金
  • 基于C语言开发一个职工管理系统
  • C++学习笔记----6、内存管理(一)---- 使用动态内存(1)
  • 中英翻译,就看这五款工具!
  • 使用 nuxi clean 命令清理 Nuxt 项目
  • PCB设计中” 铺铜的方式“导致电焊机设计失败
  • 基于yolov8的102种昆虫检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • 探索TinyDB:轻量级数据库的优雅之旅
  • 滚动视图ScrollView
  • AI Acronyms
  • 异步编程详解
  • 数组结构第一周做题总结_基础练习
  • JS学习笔记
  • 【AIGC】MimicMotion:姿态引导的高质量人体运动视频生成技术
  • 【LLM】文生视频相关开源数据集(VidGen、Panda、Cogvideox等)
  • FCIS+mxnet的大坑(终于ok了)