MiniGPT-4本地部署实战方案

作者:狼烟四起2024.02.17 05:17浏览量:36

简介:本文将为你提供一份详尽的MiniGPT-4本地部署实战方案,从环境准备到代码克隆、权重下载与合并,再到预训练权重的下载和运行demo,每一步都有详细的操作指南。让我们开始吧!

在开始部署MiniGPT-4之前,我们需要先确保你的计算机满足一定的硬件要求。由于MiniGPT-4是一个大型模型,它需要较高的计算资源和存储空间。具体来说,你需要至少12GB的VRAM、16GB的RAM和2500GB的磁盘空间。这些资源将用于模型的训练和推理。

接下来,我们需要安装Anaconda。Anaconda是一个流行的Python发行版,包含了大量的科学计算和数据分析库。你可以从清华大学镜像站下载Miniconda3的安装包,并按照提示进行安装。在安装过程中,请确保Anaconda的路径设置为/data/conda,以避免与系统盘冲突。

安装完Anaconda后,我们需要配置conda环境。首先,我们使用conda命令来创建新的环境。在终端中输入以下命令:

  1. conda env create -f environment.yml

这将创建一个名为minigpt4的新环境,并根据environment.yml文件中的配置安装所需的库。

激活minigpt4环境:

  1. conda activate minigpt4

然后,我们使用git克隆MiniGPT-4的代码仓库:

  1. git clone https://github.com/Vision-CAIR/MiniGPT-4.git cd MiniGPT-4

接下来,我们需要下载一个CUDA版本。由于environment.yml中指定的pytorch版本是1.12.1,我们可以下载一个11.6的CUDA版本。请确保你的显卡支持最高版本的CUDA,可以通过命令nvidia-smi查看:

  1. conda install cudatoolkit=11.6

然后,通过以下命令检查CUDA是否可用:

  1. import torch
  2. print(torch.version.cuda) # 查看是否有cuda
  3. print(torch.cuda.is_available()) # 打印出true即可

接下来,我们需要准备预训练的Vicuna权重。首先,我们需要安装git lfs来克隆包含Vicuna权重的仓库:

  1. git lfs install git clone https://huggingface.co/lmsys/vicuna-7b-delta-v0# more powerful, need at least 24G gpu memory # or git clone https://huggingface.co/lmsys/vicuna-7b-delta-v0# more powerful, need at least 24G gpu memory # # or git clone https://huggingface.co/lmsys/vicuna-7b-delta-v1.1# smaller, need 12G gpu memory # I choose the v1.1 version, which is smaller and only needs 12G of GPU memory. However, there is a pitfall here: the official version is v0, but if you choose v1.1 instead, there will be no tensor mismatch error later on.

请注意,这里的版本选择很重要。虽然更强大的版本需要更多的GPU内存(至少24GB),但为了避免后续的tensor不匹配错误,我选择了v1.1版本。如果你选择其他版本,请确保后续操作中不会出现错误。

第二个原始权重文件通常需要填写表格向官方申请,但这条路似乎不通。你可以从以下路径获取原始权重文件:下载里面的全部文件到上面代码克隆处就好。

接下来,我们将合并这两个权重文件。首先,你需要安装FastChat库:

  1. pip install git+https://github.com/lm-sys/FastChat.git@v0.1.10

然后,运行以下命令将两个权重文件合并为一个文件夹:

  1. python -m fastchat.model.apply_delta --base 原始权重文件夹路径 --target 目标文件夹权重路径(合并的权重存放处) --delta 增量权重文件夹路径

权重合并完成后,你需要在minigpt4.yaml配置文件中添加llama_model路径:model下添加 llama_model: “目标文件夹路径” 。这样配置后,模型将使用你合并的权重进行训练和推理。

最后一步是下载预训练权重。你可以在以下链接中找到Checkpoint Aligned with Vicuna 7B的预训练权重进行下载:预训练权重下载地址 。下载完成后,你就可以运行demo了:python demo.py —cfg-path eval_configs/minig