LLaVAR: Verbesserte Abstimmung visueller Anweisungen für das Verständnis textreicher Bilder
Yanzhe Zhang, Ruiyi Zhang, Jiuxiang Gu, Yufan Zhou, Nedim Lipka, Diyi Yang, Tong Sun
Projektseite
Arxiv-Link
@misc{zhang2023llavar,
title={LLaVAR: Enhanced Visual Instruction Tuning for Text-Rich Image Understanding},
author={Yanzhe Zhang and Ruiyi Zhang and Jiuxiang Gu and Yufan Zhou and Nedim Lipka and Diyi Yang and Tong Sun},
year={2023},
eprint={2306.17107},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
[UPDATE 01.08.] Schauen Sie sich den gebrauchsfertigen Modellkontrollpunkt und den Feinabstimmungsdatensatz der Community auf Huggingface an!
[UPDATE 21.07.] Geben Sie die Metadaten der verwendeten LAION-Bilder frei: Pretrain/Finetune.
[UPDATE 12.07.] Veröffentlichung der OCR-Bewertungsergebnisse/Skripts für den MME-Benchmark. LLaVAR erhöht den OCR-Score von LLaVA von 50 auf 80.
[UPDATE 07/05] Daten verfügbar auf Huggingface ?.
[UPDATE 07/05] Model Weight Delta auf Huggingface ?.
[UPDATE 29.06.] Erstveröffentlichung.
Der Hauptunterschied zwischen unserem Code und dem Code von LLaVA besteht darin, dass wir die Trainings-/Test-/Bereitstellungsdateien geändert haben, um Vicuna v1.1 zu unterstützen, das „</s>“ als Trennzeichen anstelle von „###“ verwendet.
Bitte bereiten Sie die Umgebung vor/fügen Sie das Modellgewicht gemäß LLaVA zusammen.
Modellgewicht Delta: Google Drive, Huggingface
Dies sollte mit LLaMA-13B zusammengeführt werden.
Fügen Sie nach dem Zusammenführen bitte „v1“ zu Ihrem Ordnernamen hinzu und stellen Sie sicher, dass der Konversationsmodus „llava_v1“ verwendet wird.
Unsere Bilddaten sind bereits in das Format von LLaVA Pretraining/Finetuning umgewandelt (sie haben „falsche“ Dateinamen im Format CC3M und COCO). Sie können sie herunterladen und in die LLaVA-Trainingssets integrieren.
Unsere Anleitungen hingegen enthalten bereits die Anleitungen von LLaVA.
Bilder vor dem Training: Google Drive
Anweisungen vor dem Training (595 KB + 422 KB): Google Drive
Feinabstimmung von Bildern: Google Drive
Anleitung zur Feinabstimmung (158K + 16K): Google Drive
Anleitung zur Feinabstimmung (158K + 20K): Google Drive
Wir sammeln 50 Fragen und Antworten zur Befolgung von Anweisungen auf 50 textreichen Bildern von LAION, die für die GPT-4-basierte Bewertung der Befolgung von Anweisungen genutzt werden können.
Bewertungsbilder: Google Drive
GPT-4-Bewertungskontexte (595 KB + 422 KB): Datei
GPT-4-Bewertungsregeln: Datei
Fragen: Datei
GPT-4-Antworten: Datei
Sie sollten unsere Pretraining-Bilder im cc3m-Ordner zusammenführen.
torchrun --nnodes=1 --nproc_per_node=8 --master_port=25001
/path/to/LLaVA/llava/train/train_mem.py
--model_name_or_path /path/to/models/vicuna_13b_v1_1
--data_path /path/to/chat_llavar.json
--image_folder /path/to/cc3m
--vision_tower openai/clip-vit-large-patch14-336
--tune_mm_mlp_adapter True
--mm_vision_select_layer -2
--mm_use_im_start_end
--bf16 True
--output_dir /path/to/checkpoint
--num_train_epochs 1
--per_device_train_batch_size 8
--per_device_eval_batch_size 4
--gradient_accumulation_steps 2
--evaluation_strategy " no "
--save_strategy " steps "
--save_steps 4000
--save_total_limit 1
--learning_rate 2e-3
--weight_decay 0.
--warmup_ratio 0.03
--lr_scheduler_type " cosine "
--logging_steps 1
--tf32 True
--model_max_length 1024
--gradient_checkpointing True
--lazy_preprocess True
--image_aspect_ratio ' pad '
--report_to wandb
Sie sollten unsere Finetuning-Bilder im Ordner coco2017 zusammenführen.
torchrun --nnodes=1 --nproc_per_node=8 --master_port=25001
/path/to/LLaVA/llava/train/train_mem.py
--model_name_or_path /path/to/models/vicuna_13b_v1_1
--data_path /path/to/llava_instruct_150k_llavar_16k.json
--image_folder /path/to/coco/images/train2017
--vision_tower openai/clip-vit-large-patch14-336
--pretrain_mm_mlp_adapter /path/to/mm_proj/llava-13b-pretrain.bin
--mm_vision_select_layer -2
--mm_use_im_start_end True
--bf16 True
--output_dir /path/to/checkpoint
--num_train_epochs 3
--per_device_train_batch_size 4
--per_device_eval_batch_size 4
--gradient_accumulation_steps 1
--evaluation_strategy " no "
--save_strategy " steps "
--save_steps 8000
--save_total_limit 1
--learning_rate 2e-5
--weight_decay 0.
--warmup_ratio 0.03
--lr_scheduler_type " cosine "
--logging_steps 1
--tf32 True
--fsdp " full_shard auto_wrap "
--fsdp_transformer_layer_cls_to_wrap ' LlamaDecoderLayer '
--model_max_length 2048
--gradient_checkpointing True
--lazy_preprocess True
--image_aspect_ratio ' pad '
--report_to wandb
Anleitungsfolgen auf COCO-Bildern.
python /path/to/LLaVA/llava/eval/model_vqa.py
--model-name /path/to/checkpoint
--question-file
/path/to/LLaVA/playground/data/coco2014_val_qa_eval/qa90_questions.jsonl
--image-folder
/path/to/coco2014/val2014
--answers-file
/path/to/qa90-answer-file.jsonl
--conv-mode "llava_v1"
Anweisungen befolgen für eine bestimmte Bild-URL.
python -m llava.eval.run_llava
--model-name /path/to/checkpoint
--image-file "https://cdn.shopify.com/s/files/1/0057/3728/3618/products/a-man-called-otto_ezrjr0pm_480x.progressive.jpg"
--query "Who starred in the movie?"
Für textbasierte VQA (von MultimodalOCR): Nachdem Sie ihr Repo geklont und die Daten vorbereitet haben, können Sie ./MultimodalOCR/Eval_LLaVAR.py
in /your/path/to/MultimodalOCR/models/LLaVA/
einfügen und unser Modell zu /your/path/to/MultimodalOCR/eval.py
hinzufügen. /your/path/to/MultimodalOCR/eval.py
zur Auswertung.
Die Codebasis stammt hauptsächlich aus dem LLaVA-Projekt. Unsere Evaluierung basiert auch auf dem MultimodalOCR-Projekt.
Für einen besseren Sprachdecoder können Sie auch auf das aktuelle Vicuna-Modell-Update achten.
@article{liu2023llava,
author = {Liu, Haotian and Li, Chunyuan and Wu, Qingyang and Lee, Yong Jae},
title = {Visual Instruction Tuning},
publisher = {arXiv:2304.08485},
year = {2023}
}
@misc{liu2023hidden,
title={On the Hidden Mystery of OCR in Large Multimodal Models},
author={Yuliang Liu and Zhang Li and Hongliang Li and Wenwen Yu and Yang Liu and Biao Yang and Mingxin Huang and Dezhi Peng and Mingyu Liu and Mingrui Chen and Chunyuan Li and Xucheng Yin and Cheng-lin Liu and Lianwen Jin and Xiang Bai},
year={2023},
eprint={2305.07895},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{vicuna2023,
title = {Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality},
url = {https://lmsys.org/blog/2023-03-30-vicuna/},
author = {Chiang, Wei-Lin and Li, Zhuohan and Lin, Zi and Sheng, Ying and Wu, Zhanghao and Zhang, Hao and Zheng, Lianmin and Zhuang, Siyuan and Zhuang, Yonghao and Gonzalez, Joseph E. and Stoica, Ion and Xing, Eric P.},
month = {March},
year = {2023}
}