banner
hughie

hughie

热爱技术的小菜鸟, 记录一下所学所感

MiniGPT-4的本地搭建过程与实测

前言#

​ 本文简单记录一下个人在本地搭建 MiniGPT-4 的过程,以及相关模型参数下载转换,最后做了一些测试。


正文#

一、什么是 MiniGPT-4#

​ MiniGPT-4 是一个结合了图像和文本的先进大型语言模型,能够生成自然语言描述的图像内容。该模型的训练过程分两个阶段,第一阶段使用大量的图像 - 文本对进行传统预训练,第二阶段使用模型自己创建的高质量图像 - 文本对进行微调,从而显著提高了其生成可靠性和整体实用性。MiniGPT-4 采用了 BLIP-2 模型架构,并使用 Vicuna 语言模型来对齐图像和语言模型。

二、本地环境配置#

1、安装 Conda#

​ MiniGPT-4 基于 Python 环境运行,在 Windows、Linux 和 Macos 上均可使用,Python 环境使用 Conda 配置。所以先配置 Conda 环境,分别介绍三种不同平台的安装步骤:

  • 以下是在 Windows 上安装 Conda 的步骤

    1. 点此下载适合您操作系统的 Anaconda 或点此下载 Miniconda 安装程序。

    2. 双击下载的安装程序,按照提示进行安装。在安装过程中,您可以选择将 Anaconda 或 Miniconda 添加到系统 PATH 中,这将允许您在命令提示符下方便地使用 Conda 命令。

    3. 安装完成后,打开 Anaconda Prompt 或 Windows PowerShell,输入 "conda" 确认是否安装成功。如果成功,将显示 Conda 的基本使用方法。

    4. 如果您需要创建和管理 Conda 环境,可以使用 "conda create" 命令创建新的环境,并使用 "conda activate" 命令激活环境。详细的环境管理方法可以查看 Conda 官方文档。

  • 对于 Linux、Macos 或其他支持的操作系统,可以用上述方式下载程序安装,更推荐终端安装

    1. 下载适合您 Linux 版本和架构的 Anaconda 或 Miniconda 安装程序。

    使用 curl 命令下载:

    curl -O https://repo.anaconda.com/archive/Anaconda-latest-Linux-x86_64.sh
    

    使用 wget 命令下载:

    wget https://repo.anaconda.com/archive/Anaconda-latest-Linux-x86_64.sh
    
    1. 下载完成后,您可以通过运行以下命令来安装 Anaconda:
    bash Anaconda-latest-Linux-x86_64.sh
    

    按照安装程序的指示进行操作即可完成安装。

2、配置镜像源 (中国大陆可选)#

要在 conda 中更改国内镜像源,可以按照以下步骤操作:

​ 1. 打开终端或命令行窗口。输入以下命令,将 conda 的配置文件中的 channels 设置为清华镜像源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

注意:如果想使用其他镜像源,请将上述命令中的 URL 替换为选择的镜像源的 URL。

​ 2. 输入以下命令,更新 conda:

conda update conda

​ 3. 输入以下命令,验证配置是否成功:

conda info

​ 如果看到以下信息,说明已成功更改了镜像源:

channels:
  https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

​ 现在,可以使用 conda 命令安装软件包,它将从选择的国内镜像源下载软件包。

3、安装 MiniGPT-4#

​ Conda 安装好后就可以安装 MiniGPT-4 了:

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

对于中国大陆用户,这里需要注意一点,environment.yml 文件中除了创建 conda 环境之外,将环境中的 pip 依赖项也一并安装了,但是由于环境内的 pip 还未配置镜像源,基本上是安装不了依赖库的。

​ 对于这个问题,需要注释 environment.yml 文件中的 pip 依赖项,将其复制到新文件 requirements.txt 中,并使用以下命令安装:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

三、模型参数下载与转换#

​ MiniGPT-4 是基于 Vicuna-13B 和 Vicuna-7B 的V0 版本训练而来的,所以模型参数有两部分:Vicuna Weights 和 pretrained minigpt4 weights,需要分别下载使用。

1、Vicuna weights#

Vicuna 是一个开源的基于 LLAMA 的 LLM,其性能接近 ChatGPT。 MiniGPT-4 使用 v0 版本的 Vicuna-13B,最近两天又完成了基于 Vicuna-7B 的模型,适合小显存的 GPU 用户。

注意,所有基于 LLaMA 的模型都只能给 delta 权重 (下载地址),再使用FastChat将这个 delta 权重加到 original LLaMA 权重上,得到最终 release 模型的权重。而这个转换过程需要至少 60G 的内存占用,因此这里不介绍相关步骤,如果对转换过程感兴趣的,可以参考这篇文章和这篇文章

这里直接给出已经转换好的 Vicuna-13B 模型下载地址和 Vicuna-7B 模型下载地址,下载好完整的模型后,修改目录minigpt4/configs/models下的文件minigpt4.yaml#L16的模型加载地址,就可以直接使用了。

2、pretrained minigpt4 weights#

这是微调的 minigpt4 权重,可以直接下载:

Checkpoint Aligned with Vicuna 13BCheckpoint Aligned with Vicuna 7B
DownladDownload

下载好后修改目录eval_configs下的文件minigpt4_eval.yaml#L10为下载参数文件的地址即可。

3、本地运行#

在目录 MiniGPT-4 下执行:

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

对于 Vicuna-13B 的 16bit 权重需要 23G + 的显存,Vicuna-7B 需要 12G + 的显存,如果设置目录eval_configs下的文件minigpt4_eval.yaml中的low_resource 为 True,则可以使用 8bit 权重,可以进一步降低显存占用,根据实际显卡情况更改即可。

四、实际测试#

​使用了 Vicuna-13B 的 16bit 测试情况如下:
minigpt4-testline.png
这是测试于 2023 年 4 月 20 日的结果,同时 MiniGPT-4 的项目还在不断更新,效果应该会越来越好的。

总结#

​ MiniGPT-4 相对于 GPT4 而言,具有更小的模型规模和更低的计算资源需求,这使得 MiniGPT-4 适用于一些资源受限的场景。同时,MiniGPT-4 在视觉语言理解任务中表现出了很好的性能,特别是在生成任务中。然而,MiniGPT-4 与 GPT-4 相比还有一些局限性,例如生成的结果可能不如 GPT4 的自然流畅,以及 MiniGPT-4 并没有覆盖 GPT-4 的全部功能。但总的来说,MiniGPT-4 是一种有前途的模型,具有很大的发展潜力。同时这也是 LLM 向小型化发展的一小步,但这才刚刚开始,就跟互联网刚兴起时一样,未来可期。

最后#

参考文章#

如何得到 vicuna-13B 的模型权重

小羊驼模型 (FastChat-vicuna) 运行踩坑记录

MiniGPT-4 官方文档


声明#

本文仅作为个人学习记录。

本文与HBlog保持同步。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。