MiniGPT-4|图像对话模型

MiniGPT-4使用一个投影层将冻结视觉编码器与冻结的LLM对齐,通过传统预训练和自我生成方式构建高质量图像文本对,再在小型数据集上进行微调训练,该模型在视觉语言任务中表现出了很好的效果。

MiniGPT-4|图像对话模型

MiniGPT-4|使用高级大语言模型增强视觉语言理解

示例

介绍

  • MiniGPT-4仅使用一个投影层将来自BLIP-2的冻结视觉编码器与冻结的LLM,Vicuna对齐。
  • 我们分两个阶段训练 MiniGPT-4。第一个传统的预训练阶段是使用 5 个 A10 在 4 小时内使用大约 100 万个对齐的图像文本对进行训练。在第一阶段之后,骆马能够理解图像。但骆马的生成能力受到严重影响。
  • 为了解决这个问题并提高可用性,我们提出了一种新颖的方法,通过模型本身和 ChatGPT 一起创建高质量的图像文本对。在此基础上,我们创建了一个小的(总共3500对)但高质量的数据集。
  • 第二个微调阶段在对话模板中对此数据集进行训练,以显着提高其生成可靠性和整体可用性。令我们惊讶的是,这个阶段的计算效率很高,使用单个 A7 只需要大约 100 分钟。
  • MiniGPT-4 产生了许多新兴的视觉语言功能,类似于 GPT-4 中展示的功能。
MiniGPT-4|图像对话模型

GitHub

项目开源地址:Vision-CAIR/MiniGPT-4

部署教程

如果您是初学者,对于命令行不太理解,那么请按下键盘上的Win键+R键后,在弹出的新窗口内输入CMD并按下回车,打开CMD窗口,按顺序执行如下的每一条命令。

首先我们需要确认一个工作目录,用来存放MiniGPT-4的相关文件。本站所选择的目录为D盘的根目录下openai.wiki文件夹,完整路径为:D:\openai.wiki

1.检测D盘是否在openai.wiki,没有则创建该文件夹。

if not exist D:\openai.wiki mkdir D:\openai.wiki

2.强制切换工作路径为D盘的openai.wiki文件夹。

cd /d D:\openai.wiki

3.拉取Github仓库文件夹,将下载至openai.wiki文件夹。

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

注意:如果您无法完成第3步,执行后报错或者无法下载,可以下载该文件将其解压至D:\openai.wiki即可。

MiniGPT-4-main

提取密码 文件说明 文件大小 34.41MB 文件格式 ZIP 资源价格 免费 下载次数 0

环境安装

为不影响电脑中的现有环境,请一定要安装Conda,如果您不知道什么是Conda,或者未安装过Conda,请参考如下文章,安装部署Conda之后再继续以下步骤。

在CMD中执行下面的命令行,创建Conda虚拟环境至该项目的目录中,方便日后重装系统也能够正常使用,无需重新部署环境。

为避免出现问题,我们再次强制切换至MiniGPT-4的项目路径,确保一切可以正常安装。

cd /d D:\\openai.wiki\\MiniGPT-4

安装MiniGPT-4项目的相关依赖库,此步骤可能需要稍等几分钟才能够安装完成。

conda env create -p D:\\openai.wiki\\MiniGPT-4\\minigpt4 -f D:\\openai.wiki\\MiniGPT-4\\environment.yml

激活已创建的Conda环境,这样我们可以将我们后续所需要的所有环境依赖都安装至此环境下。

conda activate D:\\openai.wiki\\MiniGPT-4\\minigpt4

模型相关

⚠️注意:自编译模型该项目的模型文件比较特殊,需要自行编译,官方因版权问题并没有直接提供可以直接使用的模型文件。需要自行下载两个模型进行编译,编译可能需要128GB内存,本站的电脑只有32GB内在,无法达到要求,请各位自行编译。

官方下载

Vicuna官方下载地址:lmsys/vicuna-13b-delta-v0 · Hugging Face

LLAMA-13B官方下载地址:LLaMA (huggingface.co)

MiniGPT-4官方下载地址:https://drive.google.com/file/d/1a4zLvaiDBr-36pasffmgpvH5P7CKmpze/view?usp=share_link

网盘下载

vicuna-13b-delta-v0:https://www.123pan.com/s/sKd9-fcJc.html

LLAMA-13B:https://www.123pan.com/s/sKd9-BcJc.html

MiniGPT-4:https://www.123pan.com/s/sKd9-acJc.html

Vicuna模型配置

需要注意的是,这并不是直接使用的工作权重,而是工作权重和 LLAMA-13B 原始权重之间的差异。(由于 LLAMA 的规定,我们无法分发 LLAMA 的权重。)

然后,您需要获取HuggingFace格式的原始LLAMA-13B权重,可以按照HuggingFace提供的说明或从互联网或本站获取。

当这两个权重准备好后,我们可以使用 Vicuna 团队提供的工具来创建真正的工作权重。首先,通过以下方式安装与v0版本的Vicuna兼容的库:

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

将下载后的两个模型分别移动至D:/openai.wiki/MiniGPT-4目录下新建Model文件夹,分别放入或新建如下路径文件

  • LLAMA-13B模型路径
    • D:/openai.wiki/MiniGPT-4/Model/llama-13b-hf
  • vicuna-13b-delta-v0模型路径
    • D:/openai.wiki/MiniGPT-4/Model/vicuna-13b-delta-v0
  • working-vicuna最终输出路径
    • D:/openai.wiki/MiniGPT-4/Model/working-vicuna

最后,运行以下命令以创建最终的工作权重:

python -m fastchat.model.apply_delta --base D:/openai.wiki/MiniGPT-4/Model/llama-13b-hf/ --target D:/openai.wiki/MiniGPT-4/Model/weight/ --delta D:/openai.wiki/MiniGPT-4/Model/vicuna-13b-delta-v0/

等待良久之后,将会在D:/openai.wiki/MiniGPT-4/Model/working-vicuna目录下生成已编译后的新权重文件。

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

修改D:\openai.wiki\MiniGPT-4\minigpt4\configs\models\minigpt4.yaml文件,将第16行的内容替换为你的模型路径。

model:
  arch: mini_gpt4

  # vit encoder
  image_size: 224
  drop_path_rate: 0
  use_grad_checkpoint: False
  vit_precision: "fp16"
  freeze_vit: True
  freeze_qformer: True

  # Q-Former
  num_query_token: 32

  # Vicuna
  llama_model: "D:/openai.wiki/MiniGPT-4/Model/working-vicuna"

  # generation configs
  prompt: ""

preprocess:
    vis_processor:
        train:
          name: "blip2_image_train"
          image_size: 224
        eval:
          name: "blip2_image_eval"
          image_size: 224
    text_processor:
        train:
          name: "blip_caption"
        eval:
          name: "blip_caption"

MiniGPT-4模型配置

修改D:\openai.wiki\MiniGPT-4\eval_configs\minigpt4_eval.yaml文件,将第11行的内容替换为你的MiniGPT-4模型路径。

model:
  arch: mini_gpt4
  model_type: pretrain_vicuna
  freeze_vit: True
  freeze_qformer: True
  max_txt_len: 160
  end_sym: "###"
  low_resource: True
  prompt_path: "prompts/alignment.txt"
  prompt_template: '###Human: {} ###Assistant: '
  ckpt: '/path/to/pretrained/ckpt/'

datasets:
  cc_sbu_align:
    vis_processor:
      train:
        name: "blip2_image_eval"
        image_size: 224
    text_processor:
      train:
        name: "blip_caption"

run:
  task: image_text_pretrain

使用教程

启动MiniGPT-4的方法非常简单,按顺序执行如下代码即可。

激活MiniGPT-4的Conda虚拟环境

conda activate D:\\openai.wiki\\MiniGPT-4\\minigpt4

切换目录至MiniGPT-4项目路径

cd /d D:\\openai.wiki\\MiniGPT-4

执行行如命令,启动MiniGPT-4。

python demo.py --cfg-path eval_configs/minigpt4_eval.yaml

在这里,我们默认将 Vicuna 加载为 8 bit以节省一些 GPU 内存使用量。 此外,默认波束搜索宽度为 1。 在此设置下,演示花费大约 23G GPU 内存。 如果您有功率更强大的 GPU 和更大的 GPU 内存,则可以运行该模型在配置文件D:\\openai.wiki\\MiniGPT-4\\eval_configs\\minigpt4_eval.yaml中将low_resource设置为False并使用更大的波束搜索宽度,在 4 bit中。

此文章由OpenAI开源维基百科原创发布,如若转载请注明出处:https://openai.wiki/minigpt-4.html

(0)
上一篇 2023-04-16 13:02
下一篇 2023-04-20 12:54

相关推荐

  • ChatYuan|开源本地化语言模型

    ChatYuan-large-v2是一个轻量化的、支持中英双语的功能型对话语言大模型,是ChatYuan系列的最新开源模型,增强了模型的基础能力和数学运算能力,新增了拒答、代码生成和表格生成等新功能。

    2023-04-01
    042.4K
  • ChatGLM2-6B|开源本地化语言模型

    ChatGLM2-6B是清华开源语言模型的最新升级版本、支持中英双语的对话语言模型,速度较上一代有较大提升。它使用了GLM架构和量化技术,可在消费级显卡上进行本地部署,效果堪比ChatGPT。

    2023-06-28
    0538.2K
  • Text-Generation-WebUI|通用语言模型加载工具

    oobabooga的text-generation-webui可以用来启动、加载、管理几乎所有主流的开源语言模型,并且提供WebUI界面,支持加载LLaMA2和其它羊驼类微调模型训练和LoRA的加载。

    2023-07-21
    0104.2K
  • SkyChat|Windows安装教程

    本文主要介绍如何本地化部署SkyChat模型,是由昆仑万维所公开的开源AIGC全系列算法与模型,“昆仑天工”旗下模型包括天工巧汇、天工乐府、天工妙笔、天工智码,涵盖图像、音乐、文本、编程等多模态内容。

    其它模型 2022-12-19
    0586.1K
  • SkyChat

    SkyChat是由昆仑万维所公开的开源AIGC全系列算法与模型,“昆仑天工”旗下模型包括天工巧汇、天工乐府SkyMusic、天工妙笔、天工智码SkyCode,涵盖图像、音乐、文本、编程等多模态内容。

    其它模型 2022-12-20
    022.0K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(15条)

  • Stardust
    Stardust 2023-04-22 15:44

    很详细!感谢分享~

  • 123
    123 2023-04-25 11:38

    不用模型可以部署么

  • king
    king 2023-04-25 16:01

    有没有mac上的教程

    • PhiltreX
      PhiltreX 2023-04-26 00:42

      @king站长有Mac电脑,但是Mac的效率不是很高,所以一直没写相关教程,既然大家有需要,后续会出。

  • dssmn
    dssmn 2023-04-26 18:05

    vicuna-7b行么,搭建起来步骤一样么?

    D:\openai.wiki\MiniGPT-4>conda activate D:\\openai.wiki\\MiniGPT-4\\minigpt4
    (D:\openai.wiki\MiniGPT-4\minigpt4) D:\openai.wiki\MiniGPT-4>这样算不算环境安装成功了?谢谢

    • jinny
      jinny 2023-05-13 15:16

      @dssmn执行这个才行python demo.py –cfg-path eval_configs/minigpt4_eval.yaml

  • dssmn
    dssmn 2023-05-04 11:04

    可以把LLAMA-13B换成LLAMA-7B么?

    • PhiltreX
      PhiltreX 2023-05-04 18:13

      @dssmn好像不行,官方的项目就是基于13B的。

    • 陈小鱼
      陈小鱼 2023-06-07 17:51

      @PhiltreX其实是可以的,我就是用 7B 去部署运行的MiniGPT-4

  • steve
    steve 2023-05-26 13:23

    部署完了后,有没有示例如何调用?提供些例子

  • 007
    007 2023-05-27 15:16

    A decoder-only architecture is being used, but right-padding was detected! For correct generation results, please set `padding_side=’left’` when initializing the tokenizer.
    提问ai报这个错,并且给出的答案是乱码的,想问下大佬什么问题?谢谢

  • 陈小鱼
    陈小鱼 2023-06-07 18:05

    博主,有捣鼓过MiniGPT-4的Api调用嘛,最近有这个需求,但是找文档找得脑袋有点炸裂,如果可以的话出个教程呗,万分感激。

    • PhiltreX
      PhiltreX 2023-06-08 11:13

      @陈小鱼emmm,我这里系统不满足上去玩MiniGPT-4,因为我这2080TI跑不起来,唉。

    • lckj2009
      lckj2009 2023-10-25 14:36

      @PhiltreX给个学习的地址也行啊。麻烦发个链接。

微信