使用視覺和語言說明培訓多模式聊天機器人!
基於開源多模型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 }
}