下载
中文
注册
MiniGPT4-PyTorch

概述

简述

MiniGPT-4使用一个投影层将来自BLIP-2的冻结视觉编码器与冻结的LLM Vicuna对齐。通过两个阶段来训练MiniGPT-4,先是用500万图文对训练,然后再用一个3500对高质量数据集训练。

  • 参考实现:

    url=https://github.com/Vision-CAIR/MiniGPT-4
    commit_id=22d8888ca2cf0aac862f537e7d22ef5830036808
  • 适配昇腾 AI 处理器的实现:

    url=https://gitee.com/ascend/ModelZoo-PyTorch.git
    code_path=PyTorch/built-in/foundation

准备训练环境

准备环境

  • 当前模型支持的PyTorch如下表所示。

    表 1 版本支持表

    配套 版本
    PyTorch 1.11.0
  • 环境准备指导。

    请参考《Pytorch框架训练环境准备》。

  • 安装依赖。

    在模型源码包根目录下执行命令,安装模型对应PyTorch版本需要的依赖。

    pip install -r requirements.txt  # PyTorch1.11版本
  • 替换transformers库中的相关文件。

    将当前工程目录下的transformers_modify文件夹中的文件替换到transformers安装目录下的对应位置(基于transformers 4.28.0版本):

    utils.py -> transformers/generation/utils.py

准备数据集

  1. 获取预训练数据集。

    要下载和准备Laion和CC数据集,请查看第一阶段数据集准备说明。 数据集参考目录如下:

    laion_dataset
    ├── 00000.parquet
    ├── 00000_stats.json
    ├── 00000.tar
    ├── ...
    
    cc_sbu_dataset
    ├── 00000.parquet
    ├── 00000_stats.json
    ├── 00000.tar
    ├── ...
  2. 获取微调数据集

    要下载和准备小型高质量图像文本对数据集,请查看第二阶段数据集准备说明。 数据集参考目录如下:

    cc_sbu_align
    ├── filter_cap.json
    ├── image
       ├── 0.jpg
       ├── ...
    

准备模型权重

  1. 准备预训练的Vicuna权重

    用户参照链接自行获取模型文件,并放于自定义目录下,微调依赖该模型权重。 自定义参考目录如下:

    vicuna_weights
    ├── config.json
    ├── generation_config.json
    ├── pytorch_model.bin.index.json
    ├── pytorch_model-00001-of-00003.bin

    在配置文件minigpt4.yaml中修改vicuna权重所在的路径。

  2. 准备训练的MiniGPT-4检查点:

    Checkpoint Aligned with Vicuna 3B Checkpoint Aligned with Vicuna 7B
    链接 链接

    然后,在评估配置文件minigpt4_eval.yaml的第11行中设置预训练检查点的路径。

  3. 准备只有第一阶段训练的MiniGPT-4检查点链接

开始训练

进入解压后的源码包根目录。

cd /${模型文件夹名称}

预训练

微调

  • 单机单卡微调

    bash test/finetune_gpt_1p.sh

    要启动第二阶段微调对齐,请先在minigpt4_stage2_finetune.yamlcc_sbu/align.yaml中分别指定第1阶段预训练的检查点文件的路径和精调数据集路径。

在线演示

  1. 修改配置文件minigpt4_eval.yaml第11行,路径为微调好的权重所在路径。

  2. 在线演示:

    python demo.py --cfg-path eval_configs/minigpt4_eval.yaml --gpu-id 0
  3. 运行成功后,在服务器浏览器的输入URL链接:http://127.0.0.1:7860, 会加载UI界面。上传图像开始与MiniGPT-4聊天。

  4. 如需本地浏览器远程访问服务器,需要ssh进行端口映射:

    ssh -L 6006:127.0.0.1:7860 yourname@server.ip

    在本地浏览器输入URL链接:http://127.0.0.1:6006, 即可加载聊天界面。

训练结果展示

表 1 预训练结果展示表

NAME TokensPerSec Iterations BatchSize Torch_Version
Pretrain -竞品A 8866 5000*4 64 1.11
Pretrain -NPU 7517 8000*4 40 1.11

表 2 微调结果展示表

NAME TokensPerSec Iterations BatchSize Torch_Version
Finetune -竞品A 2805 200*2 12 1.11
Finetune -NPU 2433 240*2 10 1.11

在线演示效果

这里展示了MiniGPT-4微调后的演示效果。 demo

demo

demo

demo

版本说明

变更

2023.7.05:首次发布。

FAQ

无。

使用模型资源和服务前,请您仔细阅读并理解透彻 《昇腾深度学习模型许可协议 3.0》