MiniGPT-4#

这个项目是来自阿卜杜拉国王科技大学的几位博士做的,目标是实现图像对话能力,虽然这个项目名字叫做MiniGPT-4,但是实际上跟GPT-4没有任何关系,只是为了吸引眼球而已。

GitHub:https://github.com/Vision-CAIR/MiniGPT-4

在线体验:https://minigpt-4.github.io/

项目作者认为,GPT-4 所实现的多模态能力,在以前的视觉 - 语言模型中很少见,因此认为,GPT-4 先进的多模态生成能力,主要原因在于利用了更先进的大型语言模型。

为了验证这一想法,团队成员将一个冻结的视觉编码器与一个冻结的 Vicuna 进行对齐,造出了 MiniGPT-4。

这个项目提供了预训练模型,可以直接使用,但是模型效果不是很好,如果想要训练自己的模型,需要自己准备数据集。并且需要使用 A100 GPU,因为模型太大了,不然训练不起来。目前我们没有 A100 GPU,所以暂时无法训练。等有钱了再说。

所以这部分的文档我只写如何使用预训练模型。等有钱了再写训练模型的文档。

值得注意的是,预训练模型效果真的的很差,所以这个项目目前的意义不大。即使使用作者的在线体验(作者自己训练的模型),也是很差的效果。

安装#

1.准备代码和环境#

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

2.预训练的Vicuna权重#

要准备 Vicuna 的权重,首先从(https://huggingface.co/lmsys/vicuna-13b-delta-v0)下载 Vicuna 的增量权重。如果你安装了 git-lfs ( https://git-lfs.com ),这可以通过     git lfs install     git clone https://huggingface.co/lmsys/vicuna-13b-delta-v0    然后,您需要按照here HuggingFace 提供的说明或从 Internet 获取 HuggingFace 格式的原始 LLAMA-13B 权重。

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

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

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

python -m fastchat.model.apply_delta --base /path/to/llama-13b-hf/  --target /path/to/save/working/vicuna/weight/  --delta /path/to/vicuna-13b-delta-v0/

然后,在minigpt4.yaml第 16行的模型配置文件中设置 vicuna 权重的路径 。

3.下载预训练模型#

要使用作者的预训练模型,请在here下载预训练模型。然后,在第 11 行的eval_configs/minigpt4_eval.yaml中的评估配置文件中设置预训练模型的路径。

4.在本地启动演示#

通过运行在本地计算机上试用演示demo.py

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