• Stars
    star
    1,461
  • Rank 32,191 (Top 0.7 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 1 year ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Multimodal-GPT

🤖 Multi-modal GPT

Train a multi-modal chatbot with visual and language instructions!

Based on the open-source multi-modal model OpenFlamingo, we create various visual instruction data with open datasets, including VQA, Image Captioning, Visual Reasoning, Text OCR, and Visual Dialogue. Additionally, we also train the language model component of OpenFlamingo using only language-only instruction data.

The joint training of visual and language instructions effectively improves the performance of the model! For more details please refer to our technical report.

Welcome to join us!

English | 简体中文

Features

  • Support various vision and language instruction data
  • Parameter efficient fine-tuning with LoRA
  • Tuning vision and language at the same time, complement each other

Installation

To install the package in an existing environment, run

git clone https://github.com/open-mmlab/Multimodal-GPT.git
cd Multimodal-GPT
pip install -r requirements.txt
pip install -v -e .

or create a new conda environment

conda env create -f environment.yml

Launch Demo Locally

  1. Download the pre-trained weights.

    Use this script for converting LLaMA weights to Hugging Face format.

    Download the OpenFlamingo pre-trained model from openflamingo/OpenFlamingo-9B.

    Download our LoRA Weight from here.

    Then place these models in checkpoints folders like this:

    checkpoints
    ├── llama-7b_hf
    │   ├── config.json
    │   ├── pytorch_model-00001-of-00002.bin
    │   ├── ......
    │   └── tokenizer.model
    ├── OpenFlamingo-9B
    │   └──checkpoint.pt
    ├──mmgpt-lora-v0-release.pt
    
    
  2. launch the gradio demo

    python app.py

Examples

Recipe:

image4

Travel plan:

image3

Movie:

image2

Famous person:

image

Fine-tuning

Prepare datasets

  1. A-OKVQA

    Download annotation from this link and unzip to data/aokvqa/annotations.

    It also requires images from coco dataset which can be downloaded from here.

  2. COCO Caption

    Download from this link and unzip to data/coco.

    It also requires images from coco dataset which can be downloaded from here.

  3. OCR VQA

    Download from this link and place in data/OCR_VQA/.

  4. LlaVA

    Download from liuhaotian/LLaVA-Instruct-150K and place in data/llava/.

    It also requires images from coco dataset which can be downloaded from here.

  5. Mini-GPT4

    Download from Vision-CAIR/cc_sbu_align and place in data/cc_sbu_align/.

  6. Dolly 15k

    Download from databricks/databricks-dolly-15k and place it in data/dolly/databricks-dolly-15k.jsonl.

  7. Alpaca GPT4

    Download it from this link and place it in data/alpaca_gpt4/alpaca_gpt4_data.json.

You can also customize the data path in the configs/dataset_config.py.

  1. Baize

    Download it from this link and place it in data/baize/quora_chat_data.json.

Start training

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

Acknowledgements

If you find our project useful for your research and applications, please cite using this 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}
}

More Repositories

1

mmdetection

OpenMMLab Detection Toolbox and Benchmark
Python
29,487
star
2

mmsegmentation

OpenMMLab Semantic Segmentation Toolbox and Benchmark.
Python
7,992
star
3

mmagic

OpenMMLab Multimodal Advanced, Generative, and Intelligent Creation Toolbox. Unlock the magic 🪄: Generative-AI (AIGC), easy-to-use APIs, awsome model zoo, diffusion models, for text-to-image generation, image/video restoration/enhancement, etc.
Jupyter Notebook
6,909
star
4

mmcv

OpenMMLab Computer Vision Foundation
Python
5,879
star
5

mmpose

OpenMMLab Pose Estimation Toolbox and Benchmark.
Python
5,625
star
6

Amphion

Amphion (/æmˈfaɪən/) is a toolkit for Audio, Music, and Speech Generation. Its purpose is to support reproducible research and help junior researchers and engineers get started in the field of audio, music, and speech generation research and development.
Python
5,482
star
7

mmdetection3d

OpenMMLab's next-generation platform for general 3D object detection.
Python
5,216
star
8

OpenPCDet

OpenPCDet Toolbox for LiDAR-based 3D Object Detection.
Python
4,658
star
9

mmocr

OpenMMLab Text Detection, Recognition and Understanding Toolbox
Python
4,270
star
10

mmaction2

OpenMMLab's Next Generation Video Understanding Toolbox and Benchmark
Python
4,236
star
11

mmtracking

OpenMMLab Video Perception Toolbox. It supports Video Object Detection (VID), Multiple Object Tracking (MOT), Single Object Tracking (SOT), Video Instance Segmentation (VIS) with a unified framework.
Python
3,538
star
12

mmpretrain

OpenMMLab Pre-training Toolbox and Benchmark
Python
3,383
star
13

mmselfsup

OpenMMLab Self-Supervised Learning Toolbox and Benchmark
Python
3,182
star
14

mmyolo

OpenMMLab YOLO series toolbox and benchmark. Implemented RTMDet, RTMDet-Rotated,YOLOv5, YOLOv6, YOLOv7, YOLOv8,YOLOX, PPYOLOE, etc.
Python
2,967
star
15

mmskeleton

A OpenMMLAB toolbox for human pose estimation, skeleton-based action recognition, and action synthesis.
Python
2,928
star
16

mmdeploy

OpenMMLab Model Deployment Framework
Python
2,744
star
17

mmgeneration

MMGeneration is a powerful toolkit for generative models, based on PyTorch and MMCV.
Python
1,881
star
18

mmaction

An open-source toolbox for action understanding based on PyTorch
Python
1,853
star
19

mmrotate

OpenMMLab Rotated Object Detection Toolbox and Benchmark
Python
1,843
star
20

mmrazor

OpenMMLab Model Compression Toolbox and Benchmark.
Python
1,470
star
21

mmfashion

Open-source toolbox for visual fashion analysis based on PyTorch
Python
1,245
star
22

mmhuman3d

OpenMMLab 3D Human Parametric Model Toolbox and Benchmark
Python
1,232
star
23

mmengine

OpenMMLab Foundational Library for Training Deep Learning Models
Python
1,161
star
24

playground

A central hub for gathering and showcasing amazing projects that extend OpenMMLab with SAM and other exciting features.
Python
1,117
star
25

OpenMMLabCourse

OpenMMLab course index and stuff
Jupyter Notebook
1,000
star
26

mmflow

OpenMMLab optical flow toolbox and benchmark
Python
942
star
27

PIA

[CVPR 2024] PIA, your Personalized Image Animator. Animate your images by text prompt, combing with Dreambooth, achieving stunning videos. PIA,你的个性化图像动画生成器,利用文本提示将图像变为奇妙的动画
Python
867
star
28

mmfewshot

OpenMMLab FewShot Learning Toolbox and Benchmark
Python
697
star
29

PowerPaint

[ECCV 2024] PowerPaint, a versatile image inpainting model that supports text-guided object inpainting, object removal, image outpainting and shape-guided object inpainting with only a single model. 一个高质量多功能的图像修补模型,可以同时支持插入物体、移除物体、图像扩展、形状可控的物体生成,只需要一个模型
Python
526
star
30

awesome-vit

400
star
31

OpenUnReID

PyTorch open-source toolbox for unsupervised or domain adaptive object re-ID.
Python
393
star
32

labelbee-client

Out-of-the-box Annotation Toolbox
JavaScript
380
star
33

FoleyCrafter

FoleyCrafter: Bring Silent Videos to Life with Lifelike and Synchronized Sounds. AI拟音大师,给你的无声视频添加生动而且同步的音效 😝
Python
379
star
34

mim

MIM Installs OpenMMLab Packages
Python
346
star
35

denseflow

Extracting optical flow and frames
C++
294
star
36

mmeval

A unified evaluation library for multiple machine learning libraries
Python
254
star
37

MMGEN-FaceStylor

Python
249
star
38

labelbee

LabelBee is an annotation Library
TypeScript
244
star
39

Live2Diff

Live2Diff: A Pipeline that processes Live video streams by a uni-directional video Diffusion model.
Python
150
star
40

OpenMMLabCamp

Jupyter Notebook
93
star
41

polynet

The Github Repo for PolyNet
77
star
42

CLUE

C++ Lightweight Utility Extensions
C++
70
star
43

AnyControl

[ECCV 2024] AnyControl, a multi-control image synthesis model that supports any combination of user provided control signals. 一个支持用户自由输入控制信号的图像生成模型,能够根据多种控制生成自然和谐的结果!
Python
66
star
44

StyleShot

StyleShot: A SnapShot on Any Style. 一款可以迁移任意风格到任意内容的模型,无需针对图片微调,即能生成高质量的个性风格化图片!
Python
59
star
45

mim-example

Python
58
star
46

mmengine-template

Python
49
star
47

ecosystem

37
star
48

mmstyles

Latex style file to facilitate writing of technical papers
TeX
37
star
49

mmpose-webcam-demo

Python
25
star
50

pre-commit-hooks

Python
17
star
51

mdformat-openmmlab

Python
6
star
52

.github

4
star