LLaVAR: ajuste de instrução visual aprimorado para compreensão de imagens ricas em texto
Yanzhe Zhang, Ruiyi Zhang, Jiuxiang Gu, Yufan Zhou, Nedim Lipka, Diyi Yang, Tong Sun
Página do projeto
Link 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}
}
[ATUALIZAÇÃO 01/08] Confira o ponto de verificação do modelo pronto para uso e o conjunto de dados de ajuste fino da comunidade no Huggingface!
[ATUALIZAÇÃO 21/07] Divulgue os metadados das imagens LAION usadas: pré-treinamento/ajuste fino.
[ATUALIZAÇÃO 12/07] Divulgação dos resultados/script da avaliação de OCR no benchmark MME. LLaVAR aumenta a pontuação de OCR do LLaVA de 50 para 80.
[ATUALIZAÇÃO 07/05] Dados disponíveis no Huggingface?.
[ATUALIZAÇÃO 07/05] Modelo Delta de peso no Huggingface?.
[ATUALIZAÇÃO 29/06] Lançamento inicial.
A principal diferença entre nosso código e o código do LLaVA é que modificamos os arquivos de treinamento/teste/serviço para suportar Vicuna v1.1, que usa '</s>' como separador em vez de '###'.
Prepare o ambiente/mescle o peso do modelo seguindo LLaVA.
Delta de peso do modelo: Google Drive, Huggingface
Este deve ser mesclado com o LLaMA-13B.
Após a fusão, adicione "v1" ao nome da sua pasta e certifique-se de que o modo de conversação "llava_v1" seja usado.
Nossos dados de imagem já estão transformados no formato de pré-treinamento/ajuste fino do LLaVA (eles possuem nomes de arquivos "falsos" no formato CC3M e COCO). Você pode baixá-los e mesclá-los nos conjuntos de treinamento LLaVA.
Nossas instruções, por outro lado, já contêm as instruções do LLaVA.
Imagens de pré-treinamento: Google Drive
Instruções de pré-treinamento (595K + 422K): Google Drive
Imagens de ajuste fino: Google Drive
Instruções de ajuste fino (158K + 16K): Google Drive
Instruções de ajuste fino (158K + 20K): Google Drive
Coletamos 50 perguntas e respostas de acompanhamento de instruções em 50 imagens ricas em texto do LAION, que podem ser aproveitadas para avaliação de acompanhamento de instruções baseada em GPT-4.
Imagens de avaliação: Google Drive
Contextos de avaliação GPT-4 (595K + 422K): Arquivo
Regras de avaliação GPT-4: Arquivo
Perguntas: Arquivo
Respostas GPT-4: Arquivo
Você deve mesclar nossas imagens de pré-treinamento na pasta 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
Você deve mesclar nossas imagens de ajuste fino na pasta 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
Seguimento de instruções em imagens 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"
Seguimento de instruções em um determinado URL de imagem.
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?"
Para VQA baseado em texto (do MultimodalOCR): após clonar seu repositório e preparar os dados, você pode colocar ./MultimodalOCR/Eval_LLaVAR.py
em /your/path/to/MultimodalOCR/models/LLaVA/
e adicionar nosso modelo a /your/path/to/MultimodalOCR/eval.py
para avaliação.
A base de código vem principalmente do projeto LLaVA. Nossa avaliação também se baseia no projeto MultimodalOCR.
Para um melhor decodificador de linguagem, você também pode prestar atenção à recente atualização do modelo 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}
}