• Stars
    star
    1,397
  • Rank 32,450 (Top 0.7 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 1 year ago
  • Updated 12 months 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!

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
27,899
star
2

mmsegmentation

OpenMMLab Semantic Segmentation Toolbox and Benchmark.
Python
7,372
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,575
star
4

mmcv

OpenMMLab Computer Vision Foundation
Python
5,626
star
5

mmpose

OpenMMLab Pose Estimation Toolbox and Benchmark.
Python
4,969
star
6

mmdetection3d

OpenMMLab's next-generation platform for general 3D object detection.
Python
4,781
star
7

OpenPCDet

OpenPCDet Toolbox for LiDAR-based 3D Object Detection.
Python
4,342
star
8

mmocr

OpenMMLab Text Detection, Recognition and Understanding Toolbox
Python
4,099
star
9

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
3,947
star
10

mmaction2

OpenMMLab's Next Generation Video Understanding Toolbox and Benchmark
Python
3,903
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,384
star
12

mmpretrain

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

mmselfsup

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

mmskeleton

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

mmyolo

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

mmdeploy

OpenMMLab Model Deployment Framework
Python
2,520
star
17

mmaction

An open-source toolbox for action understanding based on PyTorch
Python
1,847
star
18

mmgeneration

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

mmrotate

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

mmrazor

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

mmfashion

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

mmhuman3d

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

mmengine

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

playground

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

OpenMMLabCourse

OpenMMLab course index and stuff
Jupyter Notebook
919
star
26

mmflow

OpenMMLab optical flow toolbox and benchmark
Python
889
star
27

PIA

[CVPR 2024] PIA, your Personalized Image Animator. Animate your images by text prompt, combing with Dreambooth, achieving stunning videos. PIA๏ผŒไฝ ็š„ไธชๆ€งๅŒ–ๅ›พๅƒๅŠจ็”ป็”Ÿๆˆๅ™จ๏ผŒๅˆฉ็”จๆ–‡ๆœฌๆ็คบๅฐ†ๅ›พๅƒๅ˜ไธบๅฅ‡ๅฆ™็š„ๅŠจ็”ป
Python
716
star
28

mmfewshot

OpenMMLab FewShot Learning Toolbox and Benchmark
Python
662
star
29

awesome-vit

396
star
30

OpenUnReID

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

labelbee-client

Out-of-the-box Annotation Toolbox
JavaScript
374
star
32

mim

MIM Installs OpenMMLab Packages
Python
329
star
33

denseflow

Extracting optical flow and frames
C++
286
star
34

MMGEN-FaceStylor

Python
245
star
35

mmeval

A unified evaluation library for multiple machine learning libraries
Python
243
star
36

labelbee

LabelBee is an annotation Library
TypeScript
223
star
37

OpenMMLabCamp

Jupyter Notebook
92
star
38

polynet

The Github Repo for PolyNet
77
star
39

CLUE

C++ Lightweight Utility Extensions
C++
70
star
40

mim-example

Python
57
star
41

mmengine-template

Python
47
star
42

ecosystem

36
star
43

mmstyles

Latex style file to facilitate writing of technical papers
TeX
36
star
44

mmpose-webcam-demo

Python
23
star
45

pre-commit-hooks

Python
17
star
46

mdformat-openmmlab

Python
8
star
47

.github

3
star