LLaVAR:增强视觉指令调整以实现丰富文本的图像理解
张彦哲、张瑞一、顾九翔、周宇凡、Nedim Lipka、杨迪一、孙桐
项目页面
Arxiv 链接
@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}
}
[更新 08/01] 查看 Huggingface 社区中的即用型模型检查点和微调数据集!
[更新07/21] 发布使用的LAION图像的元数据:pretrain/finetune。
[更新07/12] 发布MME基准上的OCR评估结果/脚本。 LLaVAR 将 LLaVA 的 OCR 分数从 50 提高到 80。
[更新 07/05] Huggingface 上可用的数据?。
[更新 07/05] Huggingface 上的模型体重增量?。
[更新 06/29] 首次发布。
我们的代码和 LLaVA 代码之间的主要区别在于,我们修改了训练/测试/服务文件以支持 Vicuna v1.1,它使用“</s>”作为分隔符而不是“###”。
请按照 LLaVA 准备环境/合并模型权重。
模型体重增量:Google Drive、Hugingface
这应该与 LLaMA-13B 合并。
合并后,请在文件夹名称中添加“v1”,并确保使用对话模式“llava_v1”。
我们的图像数据已经转换为 LLaVA 预训练/微调的格式(它们具有 CC3M 和 COCO 格式的“假”文件名)。您可以下载它们并将它们合并到 LLaVA 训练集中。
另一方面,我们的指令已经包含 LLaVA 的指令。
预训练图片: Google Drive
预训练说明(595K + 422K): Google Drive
微调图像: Google Drive
微调说明(158K + 16K):Google Drive
微调说明(158K + 20K):Google Drive
我们从 LAION 收集了 50 个关于 50 个富含文本的图像的指令跟踪问题和答案,可用于基于 GPT-4 的指令跟踪评估。
评测图片: Google Drive
GPT-4评估上下文(595K + 422K):文件
GPT-4评估规则: 文件
问题:文件
GPT-4 答案:文件
您应该将我们的预训练图像合并到 cc3m 文件夹中。
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
您应该将我们的微调图像合并到 coco2017 文件夹中。
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
在 COCO 图像上遵循指令。
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"
根据给定的图像 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?"
对于基于文本的 VQA(来自 MultimodalOCR):克隆其存储库并准备数据后,您可以将./MultimodalOCR/Eval_LLaVAR.py
放入/your/path/to/MultimodalOCR/models/LLaVA/
并将我们的模型添加到/your/path/to/MultimodalOCR/eval.py
用于评估。
代码库主要来自LLaVA项目。我们的评估也是建立在 MultimodalOCR 项目的基础上的。
为了更好的语言解码器,您还可以关注最近的Vicuna模型更新。
@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}
}