体验 MiniGPT-4
- 1. 什么是 MiniGPT-4
- 2. Github 地址
- 3. 安装 MiniGPT-4
- 4. 准备预训练的 MiniGPT-4 checkpoint
- 5. 在本地启动演示
1. 什么是 MiniGPT-4
MiniGPT-4:使用高级大型语言模型增强视觉语言理解。
MiniGPT-4 是一种改进型的预训练自编码器模型,用于改进视觉-语言理解任务的性能。
MiniGPT-4 基于 GPT-4 架构,但参数数量减少了约 40 倍,以降低计算成本和提高训练速度。
MiniGPT-4 被应用于图像描述生成、视觉问答和视觉常识推理三个视觉-语言理解任务。实验结果表明,相比于最先进的方法,MiniGPT-4 可以在这三个任务中实现更好的性能,同时训练速度也更快。研究表明,通过减少高级语言模型的参数数量,可以在视觉-语言理解领域实现更快、更准确的推理。
MiniGPT-4 可以作为一种轻量级的选择,应用于视觉-语言联合学习环境。
2. Github 地址
https://github.com/Vision-CAIR/MiniGPT-4
3. 安装 MiniGPT-4
准备代码和环境,
git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4
准备好预先训练好的 Vicuna weights,Vicuna 是一个开源的基于 LLAMA 的 LLM,其性能接近于 ChatGPT。我们目前使用Vicuna-13B的v0版本。
安装 git-lfs (https://git-lfs.com),
sudo apt install -y git-lfs
下载 Vicuna 的 delta weight,
git lfs install
git clone https://huggingface.co/lmsys/vicuna-13b-delta-v0 # 更强大,需要至少24G的gpu内存
# or
git clone https://huggingface.co/lmsys/vicuna-7b-delta-v0 # 更小,需要12G gpu内存
注意,这不是直接的 working weight,而是 working weight 和 LLAMA-13B 的 original weight 之间的差异。(由于LLAMA的规则,我们不能发布 LLAMA 的 weight)。
从互联网上获得 HuggingFace 格式的 LLAMA-7B 或 LLAMA-13B 的 original weight,
git clone https://huggingface.co/decapoda-research/llama-13b-hf # 更强大,需要至少24G的gpu内存
# or
git clone https://huggingface.co/decapoda-research/llama-7b-hf # 更小,需要12G gpu内存
模型的作者在编写配置文件时,出现了拼写错误。请将 tokenizer_config.json
文件通过执行以下命令修改即可,
sed -i 's/LLaMATokenizer/LlamaTokenizer/g' ./llama-13b-hf/tokenizer_config.json
当这两个 weight 准备好后,我们可以使用 Vicuna 团队的工具来创建真正的 working weight。
首先,通过以下方式安装他们与 v0 Vicuna 兼容的库,
pip install git+https://github.com/lm-sys/FastChat.git@v0.1.10
然后,运行以下命令来创建最终的 working weight,
python -m fastchat.model.apply_delta --base ./llama-13b-hf/ --target ./vicuna_weights/ --delta ./vicuna-13b-delta-v0/
最后的 weight 将在一个单一的文件夹中,其结构类似于以下,
vicuna_weights/
├── config.json
├── generation_config.json
├── pytorch_model-00001-of-00003.bin
├── pytorch_model-00002-of-00003.bin
├── pytorch_model-00003-of-00003.bin
├── pytorch_model.bin.index.json
├── special_tokens_map.json
├── tokenizer.model
└── tokenizer_config.json
然后,在第 16 行这里的模型配置文件中设置 vicuna weight 的路径,
vi minigpt4/configs/models/minigpt4.yaml
--- modify
llama_model: "/root/workspace/MiniGPT-4/vicuna_weights/"
---
4. 准备预训练的 MiniGPT-4 checkpoint
根据你准备的 Vicuna 模型,下载预训练的 checkpoint。
-
Checkpoint Aligned with Vicuna 13B
-
Checkpoint Aligned with Vicuna 7B
然后,在 eval_configs/minigpt4_eval.yaml
的评估配置文件中第11行设置预训练的检查点的路径。
vi eval_configs/minigpt4_eval.yaml
--- modify
ckpt: '/root/workspace/MiniGPT-4/'
---
5. 在本地启动演示
在你的本地机器上尝试我们的演示 Demo.py,运行以下命令,
python demo.py --cfg-path eval_configs/minigpt4_eval.yaml --gpu-id 0
未完待续!