使用视觉和语言说明培训多模式聊天机器人!
基于开源多模型OpenFlamingo,我们使用开放数据集创建各种视觉指令数据,包括VQA,图像字幕,视觉推理,文本OCR和视觉对话。此外,我们还仅使用仅语言指令数据来训练OpenFlamingo的语言模型组成部分。
视觉和语言说明的联合培训有效地改善了模型的性能!有关更多详细信息,请参阅我们的技术报告。
欢迎加入我们!
英语| 简体中文











要在现有环境中安装软件包,请运行
git clone https://github.com/open-mmlab/Multimodal-GPT.git
cd Multimodal-GPT
pip install -r requirements.txt
pip install -v -e .或创建新的康达环境
conda env create -f environment.yml下载预训练的权重。
使用此脚本将美洲驼的重量转换为拥抱面部格式。
从OpenFlamingo/OpenFlamingo-9B下载OpenFlamingo预培训模型。
从这里下载我们的洛拉重量。
然后将这些型号放入这样的checkpoints文件夹中:
checkpoints
├── llama-7b_hf
│ ├── config.json
│ ├── pytorch_model-00001-of-00002.bin
│ ├── ......
│ └── tokenizer.model
├── OpenFlamingo-9B
│ └──checkpoint.pt
├──mmgpt-lora-v0-release.pt
启动Gradio演示
python app.py



A-OKVQA
从此链接下载注释,然后解开data/aokvqa/annotations 。
它还需要可可数据集中的图像,这些图像可以从此处下载。
可可标题
从此链接下载并解开data/coco 。
它还需要可可数据集中的图像,这些图像可以从此处下载。
OCR VQA
从此链接下载并放置在data/OCR_VQA/中。
llava
从liuhaotian/llava-Instruct-150k下载,并放入data/llava/ 。
它还需要可可数据集中的图像,这些图像可以从此处下载。
迷你GPT4
从Vision-cair/cc_sbu_align下载并放入data/cc_sbu_align/ 。
多莉15k
从databricks/databricks-dolly-15k下载,然后将其放入data/dolly/databricks-dolly-15k.jsonl中。
羊驼gpt4
从此链接下载并将其放入data/alpaca_gpt4/alpaca_gpt4_data.json中。
您还可以在configs/dataset_config.py中自定义数据路径。
baize
从此链接下载并将其放入data/baize/quora_chat_data.json中。
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如果您发现我们的项目对您的研究和应用程序有用,请使用此Bibtex引用:
@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 }
}