Multi-modal GPT 项目介绍
项目概述
Multi-modal GPT 是一个多模态聊天机器人项目,旨在通过视觉和语言指令来训练人工智能模型。该项目基于开源的多模态模型 OpenFlamingo,结合视觉与语言指令的数据进行训练,以显著提升模型的表现。
数据集与训练
Multi-modal GPT 项目使用了一系列公开的数据集,包括视觉问答(VQA)、图像描述(Image Captioning)、视觉推理(Visual Reasoning)、文本OCR(Text OCR)和视觉对话(Visual Dialogue)等。这些数据集提供了丰富的视觉指令数据,用于训练模型的视觉组件。
此外,项目还使用仅包含语言指令的数据来训练模型的语言组件,旨在通过视觉与语言指令的联合训练来提升模型性能。具体的技术细节和成果可以在我们发布的技术报告中查看。
项目的特点
- 支持多种视觉和语言指令数据。
- 采用 LoRA(Low-Rank Adaptation)进行参数高效的微调,实现视觉和语言同时调优,二者相互补充。
安装指南
用户可以通过克隆项目的 GitHub 仓库并安装相应的依赖项来设置 Multi-modal GPT 环境,或通过创建新的 Conda 环境实现安装。具体步骤如下:
git clone https://github.com/open-mmlab/Multimodal-GPT.git
cd Multimodal-GPT
pip install -r requirements.txt
pip install -v -e .
或者创建新的 Conda 环境:
conda env create -f environment.yml
启动本地演示
为了体验 Multi-modal GPT 的功能,用户可以下载预训练权重并通过 Gradio 启动演示。预训练模型和 LoRA 权重可以分别从以下地址下载并放置于 checkpoints
文件夹中:
- OpenFlamingo 预训练模型:openflamingo/OpenFlamingo-9B
- LoRA 权重:下载链接
使用以下命令启动演示:
python app.py
示例应用
Multi-modal GPT 项目提供了多个应用示例,包括食谱生成、旅行计划、电影推荐和名人介绍等,展示了其在多模态对话中的应用潜力。
数据集准备与微调
为进行个性化的微调,用户可以下载并准备相应的数据集,例如 A-OKVQA、COCO Caption、OCR VQA 等。数据集路径可以在 configs/dataset_config.py
文件中进行定制。
用户可以使用以下命令启动微调过程:
torchrun --nproc_per_node=8 mmgpt/train/instruction_finetune.py \
--lm_path checkpoints/llama-7b_hf \
--tokenizer_path checkpoints/llama-7b_hf \
--pretrained_path checkpoints/OpenFlamingo-9B/checkpoint.pt \
--run_name train-my-gpt4 \
--learning_rate 1e-5 \
--lr_scheduler cosine \
--batch_size 1 \
--tuning_config configs/lora_config.py \
--dataset_config configs/dataset_config.py \
--report_to_wandb
致谢
Multi-modal GPT 开发过程中,得到了许多项目和工具的支持和启发,包括 OpenFlamingo、LAVIS、Stanford Alpaca、MiniGPT-4 等。如果该项目对您的研究或应用有帮助,请引用以下文献:
@misc{gong2023multimodalgpt,
title={MultiModal-GPT: A Vision and Language Model for Dialogue with Humans},
author={Tao Gong and Chengqi Lyu and Shilong Zhang and Yudong Wang and Miao Zheng and Qian Zhao and Kuikun Liu and Wenwei Zhang and Ping Luo and Kai Chen},
year={2023},
eprint={2305.04790},
archivePrefix={arXiv},
primaryClass={cs.CV}
}