⭐️ Nossa série funciona: [ MMStar ] [ ShareGPT4Video ] [ ShareGPT4Omni ]
??? Implementação oficial do ShareGPT4V: Melhorando Grandes Modelos Multimodais com Melhores Legendas no ECCV 2024.
Autores : Lin Chen*, Jinsong Li*, Xiaoyi Dong, Pan Zhang, Conghui He, Jiaqi Wang, Feng Zhao?, Dahua Lin?
Institutos : Universidade de Ciência e Tecnologia da China; Laboratório de IA de Xangai
Recursos : [Artigo] [Página do Projeto] [ Conjunto de dados ShareGPT4V]
Modelos : [ShareGPT4V-7B] [ShareCaptioner]
Demonstração ShareGPT4V-7B [OpenXLab] [?HuggingFace] [Colab]
Demonstração do Share-Captioner [OpenXlab] [?HuggingFace]
? Um conjunto de dados de imagem-texto altamente descritivo em grande escala
? 100 mil legendas geradas pelo GPT4-Vision, 1,2 milhão de legendas de alta qualidade
? Um legendador de imagens geral , aproximando-se da capacidade de legenda do GPT4-Vision.
? Um grande modelo multimodal superior, ShareGPT4V-7B
[2024/7/2] Tenho o prazer de anunciar que o ShareGPT4V foi aceito pelo ECCV 2024!
[2024/5/8] Lançamos o ShareGPT4Video , um conjunto de dados de legendas de vídeo em grande escala, com 40 mil legendas anotadas por GPT4V e 4,8 milhões de legendas anotadas por nosso ShareCaptioner-Video. O total de vídeos dura 300 horas e 3.000 horas separadamente!
[2024/4/1] Lançamos um benchmark multimodal indispensável à visão de elite , MMStar. Divirta-se!?
[2023/12/14] Lançamos o modelo ShareGPT4V-13B. Divirta-se!?
[2023/12/13] O código de treinamento e avaliação está disponível.
[2023/12/13] O ShareCaptioner local já está disponível! Você pode utilizá-lo para gerar legendas de alta qualidade para seu conjunto de dados com inferência em lote executando diretamente tools/share-cap_batch_infer.py
.
[2023/11/23] Lançamos a demonstração web do Share-Captioner geral!?
[2023/11/23] Lançamos código para construir sua demonstração local do ShareGPT4V-7B !?
[2023/11/22] A demonstração da Web e o ponto de verificação já estão disponíveis !?
[2023/11/21] O conjunto de dados ShareGPT4V já está disponível !?
[2023/11/20] O artigo e a página do projeto estão liberados!
Código de treinamento e avaliação para ShareGPT4V-7B
ShareCaptioner local
Demonstração na Web e demonstração local do ShareGPT4V-7B
Pontos de verificação do ShareGPT4V-7B
Veja mais detalhes em ModelZoo.md.
Nome | LLM | Ponto de verificação | LLaVA-Banco-Selvagem | Percepção MME | Cognição MME | MMBench | MMBench-CN | Imagem SEED | MM-Vet | Banco Q | Imagem SQA | VQA-v2 | VizWiz | GQG | TextoVQA |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CompartilharGPT4V-7B | Vicunha-7B | CompartilharGPT4V-7B | 72,6 | 1567,4 | 376,4 | 68,8 | 62,2 | 69,7 | 37,6 | 63,4 | 68,4 | 80,6 | 57,2 | 63,3 | 60,4 |
CompartilharGPT4V-13B | Vicunha-13B | CompartilharGPT4V-13B | 79,9 | 1618,7 | 303.2 | 68,5 | 63,7 | 70,8 | 43,1 | 65,2 | 71,2 | 81,0 | 55,6 | 64,8 | 62,2 |
de share4v.model.builder importar load_pretrained_modelfrom share4v.mm_utils importar get_model_name_from_pathfrom share4v.eval.run_share4v importar eval_modelmodel_path = "Lin-Chen/ShareGPT4V-7B"tokenizer, modelo, image_processor, context_len = load_pretrained_model( model_path=model_path, model_base=None, nome_modelo=get_nome_modelo_from_path(caminho_modelo) )
Confira os detalhes com a função load_pretrained_model
em share4v/model/builder.py
.
Você também pode usar a função eval_model
em share4v/eval/run_llava.py
para obter a saída facilmente. Ao fazer isso, você pode usar este código no Colab diretamente após baixar este repositório.
model_path = "Lin-Chen/ShareGPT4V-7B"prompt = "Qual é o slogan mais comum do personagem à direita?"image_file = "examples/breaking_bad.png"args = type('Args', (), { " model_path": model_path, "model_base": Nenhum, "model_name": get_model_name_from_path(model_path), "query": prompt, "conv_mode": Nenhum, "image_file": image_file, "sep": ",", "temperatura": 0, "top_p": Nenhum, "num_beams": 1, "max_new_tokens": 512})()eval_model(args )
clone git https://github.com/InternLM/InternLM-XComposer --profundidade=1cd projetos/ShareGPT4V conda criar -n share4v python=3.10 -y conda ativar share4v pip instalar --atualizar pip pip install -e .pip install -e ".[train]"pip install flash-attn --no-build-isolation
Você pode criar sua demonstração local:
# run script python tools/app.py
Você deve seguir esta instrução Data.md para gerenciar os conjuntos de dados. Atualmente, fornecemos acesso direto para download aos dados da web. No entanto, para evitar possíveis disputas, planejamos divulgar URLs para esses conjuntos de dados, em vez dos dados brutos, em um futuro próximo.
O treinamento do modelo ShareGPT4V consiste em dois estágios: (1) estágio de alinhamento de recursos: use nosso conjunto de dados ShareGPT4V-PT com pares de imagem-texto de alta qualidade gerados pelo ShareCaptioner de 1,2M para ajustar o codificador de visão, o projetor e o LLM para alinhar o texto e modalidades visuais; (2) estágio de ajuste de instrução visual: ajuste fino do projetor e do LLM para ensinar o modelo a seguir instruções multimodais.
Para treinar em menos GPUs, você pode reduzir per_device_train_batch_size
e aumentar gradient_accumulation_steps
de acordo. Sempre mantenha o mesmo tamanho do lote global: per_device_train_batch_size x gradient_accumulation_steps x num_gpus
.
Usamos um conjunto semelhante de hiperparâmetros como ShareGPT4V-7B no ajuste fino. Ambos os hiperparâmetros usados no pré-treinamento e no ajuste fino são fornecidos abaixo.
Pré-treinamento
Hiperparâmetro | Tamanho global do lote | Taxa de aprendizagem | Épocas | Comprimento máximo | Decadência de peso |
---|---|---|---|---|---|
CompartilharGPT4V-7B | 256 | 2e-5 | 1 | 2048 | 0 |
Afinação
Hiperparâmetro | Tamanho global do lote | Taxa de aprendizagem | Épocas | Comprimento máximo | Decadência de peso |
---|---|---|---|---|---|
CompartilharGPT4V-7B | 128 | 2e-5 | 1 | 2048 | 0 |
Primeiro, você deve baixar o projetor MLP pré-treinado pelo LLaVA-1.5 com LAION-CC-SBU-558K. Porque um processo aproximado de alinhamento de modalidade é benéfico antes de usar legendas detalhadas de alta qualidade para alinhamento de modalidade.
Você pode executar projects/ShareGPT4V/scripts/sharegpt4v/slurm_pretrain_7b.sh
para pré-treinar o modelo. Lembre-se de especificar o caminho do projetor no script. Nesta etapa, ajustamos a segunda metade dos blocos do codificador de visão, do projetor e do LLM.
Em nossa configuração utilizamos 16 GPUs A100 (80G) e todo o processo de pré-treinamento durou cerca de 12 horas. Você pode ajustar o número de etapas de acumulação de gradiente para reduzir o número de GPUs.
Nesta etapa, ajustamos o projetor e o LLM com sharegpt4v_mix665k_cap23k_coco-ap9k_lcs3k_sam9k_div2k.json.
Você pode executar projects/ShareGPT4V/scripts/sharegpt4v/slurm_finetune_7b.sh
para ajustar o modelo.
Em nossa configuração utilizamos 16 GPUs A100 (80G) e todo o processo de pré-treinamento durou cerca de 7 horas. Você pode ajustar o número de etapas de acumulação de gradiente para reduzir o número de GPUs.
Para garantir a reprodutibilidade, avaliamos os modelos com decodificação gananciosa. Não avaliamos o uso da pesquisa em feixe para tornar o processo de inferência consistente com a demonstração de chat de resultados em tempo real.
Consulte Avaliação.md.
LLaVA: a base de código sobre a qual construímos. Obrigado pelo seu maravilhoso trabalho.
Vicuna: o incrível modelo de linguagem grande e de código aberto!
Se você achar nosso trabalho útil para sua pesquisa, considere dar uma estrela ⭐ e uma citação ?
@artigo{chen2023sharegpt4v, title={ShareGPT4V: Melhorando Grandes Modelos Multimodais com Melhores Legendas}, autor={Chen, Lin e Li, Jisong e Dong, Xiaoyi e Zhang, Pan e He, Conghui e Wang, Jiaqi e Zhao, Feng e Lin, Dahua}, diário={pré-impressão arXiv arXiv:2311.12793}, ano={2023}}@article{chen2024sharegpt4video, title={ShareGPT4Video: Melhorando a compreensão e a geração de vídeos com melhores legendas}, autor={Chen, Lin e Wei, Xilin e Li, Jinsong e Dong, Xiaoyi e Zhang, Pan e Zang , Yuhang e Chen, Zehui e Duan, Haodong e Lin, Bin e Tang, Zhenyu e outros}, diário = {pré-impressão arXiv arXiv:2406.04325}, ano={2024}}@article{chen2024we, title={Estamos no caminho certo para avaliar grandes modelos de visão-linguagem?}, autor={Chen, Lin e Li, Jinsong e Dong, Xiaoyi e Zhang, Pan e Zang, Yuhang e Chen, Zehui e Duan, Haodong e Wang, Jiaqi e Qiao, Yu e Lin, Dahua e outros}, diário={pré-impressão arXiv arXiv:2403.20330}, ano={2024}}
Avisos de uso e licença : Os dados e o ponto de verificação destinam-se e são licenciados apenas para uso em pesquisa. Também estão restritos a usos que sigam o contrato de licença de LLaMA, Vicuna e GPT-4. O conjunto de dados é CC BY NC 4.0 (permitindo apenas uso não comercial) e os modelos treinados com o conjunto de dados não devem ser usados fora para fins de pesquisa.