开源 AI 模型实际部署以及后端搭建环境配置
开源 AI 模型实际部署以及后端搭建环境配置
本文是博主zzzzz想要综合多个开源AI模型分布式部署,以及分布式后端反馈的搭建日记
技术栈
python 与 golang
Gin框架,grpc,Redis等等
基础环境搭建
算力平台 ( cuda , conda )
基本需求显卡支持调用cuda且满足后续所提项目的显存(最好>=12GB)
若搭建在虚拟机上需独占内存
对于一台新开的Linux机子,
一开始不少困扰大家的就是环境搭建,
我看过周围的人搭建环境卡了两天都没搭好(请不要让apt或者pip等工具自己匹配版本下载),
于此,我在这里写详细一些.
接下来,我以本人的Ubuntu Linux 22.04 + NVIDIA RTX 5000 架构:Turing 举例 (T4可以照抄,其他更多型号要留意适配cuda版本)
以我的举例 ( PS:我们需要在英伟达官网找到对应卡支持的版本!!! )
1 | wget https://developer.download.nvidia.com/compute/cuda/12.3.1/local_installers/cuda_12.3.1_545.23.08_linux.run |
安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。
编辑文件blacklist.conf
sudo vim /etc/modprobe.d/blacklist.conf
在文件最后部分插入以下两行内容
1 | blacklist nouveau |
更新系统
1 | sudo update-initramfs -u |
之后需要重新启动
1 | sudo reboot |
重启之后
我们回到下载cuda的位置
给予安装权限
1 | chmod +x cuda_12.3.1_545.23.08_linux.run |
安装前保证之前安装过build-essential
1 | sudo apt install build-essential |
即可
1 | sudo ./cuda_12.3.1_545.23.08_linux.run |
若出现Xrog报错直接kill
1 | killall Xorg |
进入安装程序后我们可以直接全部默认也可选择性安装
最后输入
1 | nvidia-smi |
即有
1 | Sat Aug 31 01:43:40 2024 |
我们的驱动就安装好了
接下来我们安装conda
对于隔离不同python环境此处很重要
以我举例
1 | wget -c https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh |
下载好后
1 | bash Anaconda3-2023.03-1-Linux-x86_64.sh |
安装中途记得填入yes否则他默认no就不会帮你配置默认环境
安装完成后,建议添加 Anaconda 到系统环境变量中。
在终端中运行以下命令:
source ~/.bashrc
或者手动编辑 .bashrc 文件,
在文件末尾添加以下内容:
export PATH="$HOME/anaconda3/bin:$PATH"
保存文件后,运行:
source ~/.bashrc
当出现
1 | (base) zzzzz@zzzzz-10L:~$ |
即conda安装完毕
后端平台 ( )
Golang
下载好golang并查看版本
1 | https://golang.google.cn/dl/go1.23.0.linux-amd64.tar.gz |
设置环境变量:
确保你的 PATH 环境变量中包含 Go 的安装路径。你可以在 ~/.bashrc 文件中添加以下行:
1 | export PATH=$PATH:/usr/local/go/bin |
然后重新加载配置文件:
1 | source ~/.bashrc |
验证安装:
确认你已经成功安装了新的 Go 版本:
1 | go version |
Goproxy
打开你的终端并执行
1 | go env -w GO111MODULE=on |
然后我们如果是运行下载的项目既可以运行配置环境
1 | go mod tidy |
Mysql
mysql准备
1 | sudo apt install -y mysql-server-8.0 |
如果不加-y 会在安装过程中,
系统将提示你设置MySQL的root密码
启动MySQL服务
安装完成后,MySQL服务会自动启动,未启动则使用以下命令启动MySQL服务:
sudo systemctl start mysql
并将MySQL设置为开机自启动:
sudo systemctl enable mysql
检查MySQL状态
你可以使用以下命令来检查MySQL是否正在运行:
sudo systemctl status mysql
默认安装是没有设置密码的,需要我们自己设置密码。
登录mysql,在默认安装时如果没有让我们设置密码,则直接回车就能登录成功。
sudo mysql
配置8.0版本参考:
注意: 在MySQL8.0以后的版本更改密码要使用Alter的方式, 而且要指定mysql_native_password
1 | ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘12345678’; |
我这里通过这种方式没有实现所有IP都能访问;我是通过直接修改配置文件才实现的,
MySQL8.0版本把配置文件 my.cnf 拆分成mysql.cnf 和mysqld.cnf,
我们需要修改的是mysqld.cnf文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改 bind-address,保存后重启MySQL即可。
bind-address = 0.0.0.0
重启MySQL重新加载一下配置:
sudo systemctl restart mysql
之后重启MySQL以root登录mysql -u root -p,
密码就是我们刚刚设的
详细后续参考其他mysql教程
AI项目服务器部署
自然语言模型 AI Llama
这个模型有7B,13B,80B…版本
我的可以跑下7B 后续以7B为示例
参考汉化模型 star 比较多的模型 https://github.com/LlamaFamily/Llama-Chinese?tab=readme-ov-file
环境配置
我们先创建一个环境
要求3.10以上
1 | conda create -n Llama python=3.10 |
接着我们对着 cuda 驱动型号下载 pytorch 等必要工具 ,
这里需注意!!!不然跑到 cpu 去了
1 | conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia |
或者使用
1 | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 |
接着
1 | git clone https://github.com/LlamaFamily/Llama-Chinese.git |
我们就下好本地 Llama 及其依赖项
huggingface工具使用
此网站有很多大模型和训练集, 是找模型和训练模型的好地方
先去下载必要工具
1 | pip install -U huggingface_hub |
处于国内则需要镜像
否则无法使用
1 | export HF_ENDPOINT=https://hf-mirror.com |
huggingface-cli+hf_transfer
huggingface-cli 和 hf_transfer 是 hugging face 官方提供的专门为下载而设计的工具链。
前者是一个命令行工具,后者是下载加速模块。
hf_transfer 依附并兼容 huggingface-cli,
是 hugging face 官方专门为提高下载速度基于 Rust 开发的一个模块,
开启后在哪怕在拥有糟糕的网络 SZTU 机器上可以跑到最高 180MB/s !!!
1 | pip install -U hf-transfer |
基本用法
1 | huggingface-cli download --resume-download FlagAlpha/Llama3-Chinese-8B-Instruct --local-dir FlagAlpha/Llama3-Chinese-8B-Instruct |
下载数据集
1 | huggingface-cli download --resume-download --repo-type dataset lavita/medical-qa-shared-task-v1-toy |
值得注意的是,有个--local-dir-use-symlinks False 参数可选,
因为huggingface的工具链默认会使用符号链接来存储下载的文件,
导致--local-dir指定的目录中都是一些“链接文件”,
真实模型则存储在~/.cache/huggingface下,
如果不喜欢这个可以用 --local-dir-use-symlinks False取消这个逻辑。
删除模型要在真实模型处删除,不然自以为删除后,发现还是没有空间
1 | | 0.00/826 [00:00<?, ?B/s] |
像这种70+G的大模型, 通过此工具仅需一顿饭时间即可下好。
介绍完基本用法
我们去到zzzzz@zzzzz-10L:~/project/Llama-Chinese
1 | huggingface-cli download --resume-download FlagAlpha/Llama3-Chinese-8B-Instruct --local-dir FlagAlpha/Llama3-Chinese-8B-Instruct |
下载好后
1 | python examples/chat_gradio.py --model_name_or_path FlagAlpha/Atom-7B-Chat |
即可以使用webui查看模型部署成功
想了解更多可以访问 https://github.com/LlamaFamily/Llama-Chinese.git
视频生视频 LivePortrait
环境搭建
与前者同理
1 | git clone https://github.com/KwaiVGI/LivePortrait |
对于pytorch同理
这里需注意!!!不然跑到 cpu 去了
1 | conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia |
或者使用
1 | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 |
最后
安装依赖项
1 | pip install -r requirements.txt --no-deps |
同理在huggingface下载模型
1 | # !pip install -U "huggingface_hub[cli]" |
最后到项目根目录下
1 | # 源输入是图像 |
若能生成即说明可以使用
想了解更多可以访问 https://github.com/KwaiVGI/LivePortrait
