MiniGPT4系列之一部署篇:在RTX-3090 Ubuntu服务器部署步骤详解

MiniGPT4系列之一部署篇:在RTX-3090 Ubuntu服务器部署步骤详解_seaside2003的博客-CSDN博客

MiniGPT4系列之二推理篇命令行方式:在RTX-3090 Ubuntu服务器推理详解_seaside2003的博客-CSDN博客

MiniGPT4系列之三模型推理 (Web UI):在RTX-3090 Ubuntu服务器推理_seaside2003的博客-CSDN博客

主要参考知乎帖子:

MiniGPT-4 本地部署 RTX 3090 - 知乎

MiniGPT-4部署比麻烦,首先需要获取LLaMA权重,并结合Vicuna的bitwise XOR增量文件完成Vicuna模型权重生成,最后准备好预训练的MiniGPT-4进行模型部署。为了便于理解,我画了个流程框图:

系统版本:Ubuntu 20.04

我的硬件设备:Nvidia GeForce RTX-3090,显存24G

1、准备环境

克隆MiniGPT-4库,准备environment.yml中所需的环境。

git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4

……

2LLaMA权重获取

首先我们需要从huggingface下载模型权重,pip安装huggingface_hub

pip install huggingface_hub

由于显卡限制,我选用了参数量最小的模型 llama-7b-hfhuggingface下载链接如下:

LLaMA

decapoda-research (Decapoda Research)

本文选择:decapoda-research/llama-7b-hf

decapoda-research/llama-7b-hf at main

注意:文件需要全部下载,原文中是用snapshot_download下载的,我直接网页版下载,因为git容易断,还可能出现checkout失败,可以手动下载。

3Vicuna增量文件

选用模型vicuna-7b-delta-v1.1huggingface下载链接如下:

lmsys (Large Model Systems Organization)

lmsys/vicuna-7b-delta-v1.1 at main

注:vicuna权重分为v0v1.1两个版本,MiniGPT-4作者采用的是v0,当使用v0版本时,生成vicuna权重出错(bugtensor尺度不一致),而换为v1.1版本即可解决。我之前试用过v0这个版本,没有搞成功,不是上述原因,待查,所以建议选用v1.1版本。

4Vicuna权重生成

克隆FastChat库:

git clone https://github.com/lm-sys/FastChat.git

GitHub - lm-sys/FastChat: An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and FastChat-T5.

在终端输入以下命令:

python3 -m fastchat.model.apply_delta --base-model-path /home/train/mycharm/MiniGPT-4/model/llama-7b-hf/ --target-model-path /home/train/mycharm/new/vicuna  --delta /home/train/mycharm/new/lmsys/lmsysvicuna-7b-delta-v1.1  --low-cpu-mem

说明:

base-model-path是llama原始模型权重,7b参数的,target-model-path 是要生成的vicuna权重,delta是vicuna delta权重,低CPU内存需加入--low-cpu-mem,可以把大的权重文件分割成多个小份,并使用磁盘作为临时存储。可以使峰值内存保持在16GB以下。不然无法载入vicuna增量文件,CPU内存占满,程序直接被kill,绿色表示已有的vicuna-7b-delta权重。

这行命令对初学者有些迷惑:简单说就是利用llama的权重,结合vicuna的delta权重,然后生成vicuna权重,根源在于meta发布的llama权重没有正式公开导致,能下载只是网络行为。

运行结果如下:

新生成的vicuna的权重在设定的目录中:

5MiniGPT-4启动

本文采用的权重为原作者的checkpoints,prerained_minigpt4_7b.pth,并放在生成的vicuna权重路径下,目录一定要放对。

下载链接:

https://link.zhihu.com/?target=https%3A//drive.google.com/file/d/1RY9jV0dyqLX-o38LrumkKRh6Jtaop58R/view

此处要用谷歌,下载其他版本应该也可以,我没试。

下载完成后放到上述刚生成的vicuna目录下:

修改配置文件模型权重存放的目录:

下面这两步很关键,要修改权重文件的目录,要根据自己实际情况修改:

1)、修改MiniGPT-4/minigpt4/configs/models/minigpt4.yaml 文件中llama_model的值为vicuna-7b的路径:比如,我的在/home/train/mycharm/new/vicuna/在这个目录下,原文件在16行。

2)、修改MiniGPT-4/eval_configs/minigpt4_eval.yaml,将ckpt的值改成prerained_minigpt4_7b.pth的路径,原文件在11行。

比如我的在这个目录:/home/train/mycharm/new/vicuna/prerained_minigpt4_7b.pth

6、启动MiniGPT-4 demo

进入到MiniGPT-4目录:

python demo.py --cfg-path eval_configs/minigpt4_eval.yaml  --gpu-id 0

执行成功。

7、其他说明

里面有个警告,疑似pytorch(2.0.1)和torchvision(0.13.1)版本不一致导致,不影响此处功能,参照以下帖子:

Failed to load image Python extension: libtorch_cuda_cu.so_牧羊女说的博客-CSDN博客

版本对照关系参照,可以看出torch 2.0对应torchvision版本应为:0.15而我的版本是0.13

GitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision

下面是原作者的运行图,好像也有类似问题:

执行以下安装命令(先卸载老的版本):

在下述网站选择好配置后生成安装命令:

Start Locally | PyTorch

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

重新安装再次执行,警告消失,成功。

查看版本与之对应:

Conda版本过低问题:

此处有个小问题,如果conda 版本太低不能执行以上命令,先升级conda,但可能存在执行conda update conda后,conda 版本没有变化,需要执行以下命令升级conda:

conda update -n base -c defaults conda --repodata-fn=repodata.json

I got update warning message but unable to update · Issue #12519 · conda/conda · GitHub

猜你喜欢

转载自blog.csdn.net/qq_18256855/article/details/131692285
今日推荐