Um kit de ferramentas para avaliar grandes modelos de linguagem de visão.
• • • • • •
Inglês | 简体中文 | 日本語
? OC Learderboard • QuickStart • conjuntos de dados e modelos • Desenvolvimento • Objetivo • Citação
? RABELA DE LIGADOR HF •? Registros de avaliação •? HF Video Lizerboard •? Discord • Relatório
VLMevalkit (o nome do pacote Python é VLMeval ) é um kit de ferramentas de avaliação de código aberto de grandes modelos de linguagem de visão (LVLMS) . Ele permite uma avaliação de um comando de LVLMs em vários benchmarks, sem a pesada carga de trabalho da preparação de dados em vários repositórios. No VLMevalkit, adotamos avaliação baseada em geração para todos os LVLMs e fornecemos os resultados da avaliação obtidos com a correspondência exata e a extração de respostas baseadas em LLM .
VLMEVALKIT_USE_MODELSCOPE . Ao definir essa variável de ambiente, você pode baixar os benchmarks de vídeo suportados do ModelCopepython run.py --help para obter mais detalhesVeja [QuickStart | 快速开始] para um guia de início rápido.
Os números de desempenho em nossas tabelas de classificação multimodais oficiais podem ser baixados aqui!
Robeira de liderança OpenVLM : baixe todos os resultados detalhados .
DataSet de compreensão da imagem suportada
MCQ : Pergunta de multi-escolha; Y/N : perguntas sim ou não; MTT : benchmark com conversas com várias turnos; MTI : referência com várias imagens como entradas.| Conjunto de dados | Nomes de dados (para run.py) | Tarefa | Conjunto de dados | Nomes de dados (para run.py) | Tarefa |
|---|---|---|---|---|---|
| Série MMbench : MMBENCH, MMBENCH-CN, CCBEnch | Mmbench_dev_ [en/cn] Mmbench_test_ [en/cn] Mmbench_dev_ [en/cn] _v11 Mmbench_test_ [en/cn] _v11 Ccbench | McQ | Mmstar | Mmstar | McQ |
| Mme | Mme | S/n | Série de bancada de sementes | Seedbench_img Seedbench2 Semearbench2_plus | McQ |
| MM-VET | Mmvet | VQA | Mmmu | Mmmu_ [dev_val/teste] | McQ |
| Mathvista | Mathvista_mini | VQA | Scienceqa_img | ScienceQa_ [Val/Teste] | McQ |
| Legenda Coco | Coco_val | Rubrica | Hallusionbench | Hallusionbench | S/n |
| Ocrvqa * | OCRVQA_ [TestCore/Test] | VQA | Textvqa * | Textvqa_val | VQA |
| ChartQa * | ChartQa_test | VQA | Ai2d | Ai2d_ [test/test_no_mask] | McQ |
| Llavabench | Llavabench | VQA | Docvqa + | Docvqa_ [val/teste] | VQA |
| Infovqa + | Infovqa_ [val/teste] | VQA | Ocrbench | Ocrbench | VQA |
| Realworldqa | Realworldqa | McQ | PAPA | PAPA | S/n |
| Core -MM - | Core_mm (mti) | VQA | MMT-BANCH | Mmt-banch_ [val/all] Mmt-banch_ [val/all] _mi | MCQ (MTI) |
| Mllmguard - | Mllmguard_ds | VQA | Aesbench + | Aesbench_ [val/teste] | McQ |
| VCR-wiki + | Vcr_ [pt/zh] _ [fácil/duro] _ [all/500/100] | VQA | MmlongBench-Doc + | Mmlongbench_doc | VQA (MTI) |
| PISCAR | PISCAR | MCQ (MTI) | MathVision + | MathVision MathVision_mini | VQA |
| Mt-vqa | Mtvqa_test | VQA | MMDU + | MMDU | VQA (MTT, MTI) |
| Q-BEnch1 | Q-bench1_ [val/teste] | McQ | A bancada | A-banch_ [val/teste] | McQ |
| Cara + | CARA | VQA (MTI) | SlideVQA + | SlideVqa Slidevqa_mini | VQA (MTI) |
| TaskMeanything imageqa aleatório + | TaskMeanything_v1_imageqa_random | McQ | MMMB e MMBEnch multilíngue + | Mmmb_ [ar/cn/en/pt/ru/tr] Mmbench_dev_ [ar/cn/en/pt/ru/tr] Mmmb Mtl_mmbench_dev Ps: mmmb & mtl_mmbench_dev são nomes tudo em um para 6 langs | McQ |
| A-OKVQA + | A-OKVQA | McQ | Muirbench + | Muirbench | McQ |
| Gmai-mmbench + | Gmai-mmbench_val | McQ | Tablevqabench + | Tablevqabench | VQA |
| Mme-realworld + | Mme-realworld [-cn] MME-Realworld-Lite | McQ | Hrbench + | Hrbench [4K/8K] | McQ |
| Mathverse + | Mathverse_mini Mathverse_mini_vision_only Mathverse_mini_vision_dominant Mathverse_mini_vision_intensive Mathverse_mini_text_lite Mathverse_mini_text_dominant | VQA | Amber + | ÂMBAR | S/n |
| CRPE + | CRPE_ [existir/relação] | VQA | MMSearch | - | - |
| RE-BANCO + | REC-BANCH- [DIS/Ref] | McQ | WorldMedqa-V + | WorldMedqa-V | McQ |
| GQA + | GQA_TESTDEV_BALAND | VQA | Mia-bench + | Mia-banco | VQA |
| WildVision + | WildVision | VQA | Olympiadbench + | Olympiadbench | VQA |
| Mm-Math + | Mm-math | VQA | Dynamath | Dynamath | VQA |
| Mmgenbench - | MMGENBEnch-Test MMGENBENCH DOMAIN | - | Qspatial + | Qspatial_ [Plus/Scannet] | VQA |
| Vizwiz + | Vizwiz | VQA |
* Fornecemos apenas um subconjunto dos resultados da avaliação, pois alguns VLMs não produzem resultados razoáveis na configuração de tiro zero
+ Os resultados da avaliação ainda não estão disponíveis
- Somente a inferência é suportada no VLMevalkit (que inclui as divisões TEST de alguns benchmarks que não incluem as respostas da verdade do solo).
O VLMevalkit usará um juiz LLM para extrair a resposta da saída se você definir a tecla, caso contrário, ele usa o modo de correspondência exato (encontre "sim", "não", "a", "b", "c" ... nas seqüências de saída). A correspondência exata só pode ser aplicada às tarefas sim ou não e às tarefas de multi-escolha.
DataSet de compreensão de vídeo suportado
| Conjunto de dados | Nomes de dados (para run.py) | Tarefa | Conjunto de dados | Nomes de dados (para run.py) | Tarefa |
|---|---|---|---|---|---|
| MMBEnch-Video | MMBEnch-Video | VQA | Video-mme | Video-mme | McQ |
| Mvbench | Mvbench/mvbench_mp4 | McQ | MlvU | MlvU | MCQ & VQA |
| Tempcompass | Tempcompass | McQ & Y/N & Legenda | LongVideobench | LongVideobench | McQ |
Modelos de API suportados
| GPT-4V (20231106, 20240409) ? | GPT-4O ? | Gemini-1.0-Pro ? | Gemini-1.5-Pro ? | Etapa 1V ? |
|---|---|---|---|---|
| Reka- [Edge / Flash / Core] ? | Qwen-vl- [plus / max] ? Qwen-vl- [plus / max] -0809 ? | Claude3- [Haiku / Sonnet / Opus] ? | GLM-4V ? | Congr uma Partido ? |
| CLAUDE3.5 SONET (20240620, 20241022) ? | GPT-4O-MINI ? | Yi-Vision ? | Hunyuan-Vision ? | Bluelm-v ? |
| Telemm ? |
Modelos Pytorch / HF suportados
| Idefics- [9b/80b/v2-8b/v3-8b]-instrução ? | InstructBlip- [7b/13b] | Llava- [v1-7b/v1.5-7b/v1.5-13b] | Minigpt-4- [v1-7b/v1-13b/v2-7b] |
|---|---|---|---|
| mplug-awl [2/3] | OpenFlamingo-V2 | PANDAGPT-13B | Qwen-vl ? Qwen-vl-chat ? |
| VisualGLM-6B ? | Internlm-Xcomposer- [1/2] ? | Compartilhargpt4v- [7b/13b] ? | Transcore-m |
| Llava (xtuner) ? | Cogvlm- [chat/llama3] ? | ShareCaptioner ? | Cogvlm-Gerling-Generalista ? |
| Macaco ? Macaco-bate-papo ? | EMU2-CHAT ? | Yi-vl- [6b/34b] | Mmalaya ? |
| Internlm-xcomposer-2.5 ? | Minicpm- [v1/v2/v2.5/v2.6] ? | Omnilmm-12b | Internvl-chat- [v1-1/v1-2/v1-5/v2] ? |
| Deepseek-VL | Llava-next ? | Bunny-llama3 ? | Xverse-v-13b |
| Paligemma-3b ? | 360VL-70B ? | Phi-3-Vision ? Phi-3.5-visão ? | Wemm ? |
| GLM-4V-9B ? | Cambriano- [8b/13b/34b] | Llava-next- [qwen-32b] | Chameleon- [7b/30b] ? |
| Video-Llava-7b- [HF] ? | Vila1.5- [3b/8b/13b/40b] | OVIS [1,5-LLAMA3-8B/1.5-GEMMA2-9B/1.6-GEMMA2-9B/1.6-LLAMA3.2-3B/1.6-GEMMA2-27B] ? | Mantis-8b- [Siglip-llama3/clip-llama3/idefics2/fuyu] |
| Llama-3-mixsensev1_1 ? | Parrot-7b ? | Omchat-v2.0-13b-sinlge-beta ? | Video-chatgpt ? |
| Chat-univi-7b [-v1.5] ? | Llama-vid-7b ? | VideoChat2-hd ? | Pllava- [7b/13b/34b] ? |
| Rbdash_72b ? | XGEN-MM-PHI3- [interlEave/dpo] -r-v1.5 ? | Qwen2-vl- [2b/7b/72b] ? | slime_ [7b/8b/13b] |
| Eagle-x4- [8b/13b] ?, Eagle-x5- [7b/13b/34b] ? | Moondream1 ?, Moondream2 ? | Xinyuan-VL-2b-Instruct ? | Llama-3.2- [11b/90b] -Vision-Instruct ? |
| Kosmos2 ? | H2OVL-Mississippi- [0,8b/2b] ? | ** Pixtral-12b ** | ** FALCON2-VLM-11B **? |
| ** MinimOnkey **? | ** llava-onevision **? | ** llava-video **? | ** AQUILA-VL-2B **? |
| Mini-Internnvl-Chat- [2b/4b] -v1-5 ? | Série Internvl2 ? | ** Janus-1.3b **? | ** molmoe-1b/molmo-7b/molmo-72b **? |
| ** Pontos- [Yi-1.5-9b/qwen-2.5-7b] **? | ** nvlm **? | ** Vintern **? | **Ária**? |
: Suporta várias imagens como entradas.
?: Os modelos podem ser usados sem nenhuma configuração/operação adicional.
?: Apoie o vídeo como entrada.
Recomendação da versão dos transformadores:
Observe que alguns VLMs podem não ser capazes de executar em determinadas versões do transformador, recomendamos as seguintes configurações para avaliar cada VLM:
transformers==4.33.0 Para : Qwen series , Monkey series , InternLM-XComposer Series , mPLUG-Owl2 , OpenFlamingo v2 , IDEFICS series , VisualGLM , MMAlaya , ShareCaptioner , MiniGPT-4 series , InstructBLIP series , PandaGPT , VXVERSE .transformers==4.36.2 para : Moondream1 .transformers==4.37.0 for : LLaVA series , ShareGPT4V series , TransCore-M , LLaVA (XTuner) , CogVLM Series , EMU2 Series , Yi-VL Series , MiniCPM-[V1/V2] , OmniLMM-12B , DeepSeek-VL series , InternVL series , Cambrian Series , VILA Series , Llama-3-MixSenseV1_1 , Parrot-7B , PLLaVA Series .transformers==4.40.0 para : IDEFICS2 , Bunny-Llama3 , MiniCPM-Llama3-V2.5 , 360VL-70B , Phi-3-Vision , WeMM .transformers==4.44.0 para : Moondream2 , H2OVL series .transformers==4.45.0 para : Aria .transformers==latest for : LLaVA-Next series , PaliGemma-3B , Chameleon series , Video-LLaVA-7B-HF , Ovis series , Mantis series , MiniCPM-V2.6 , OmChat-v2.0-13B-sinlge-beta , Idefics-3 , GLM-4v-9B , VideoChat2-HD , RBDash_72b , Llama-3.2 series , Kosmos series .Recomendação da versão da Torchvision:
Observe que alguns VLMs podem não ser capazes de executar em determinadas versões da Torchvision, recomendamos as seguintes configurações para avaliar cada VLM:
torchvision>=0.16 para : Moondream series e AriaRecomendação da versão Flash-ATTN:
Observe que alguns VLMs podem não ser capazes de executar em determinadas versões de atendimento flash, recomendamos as seguintes configurações para avaliar cada VLM:
pip install flash-attn --no-build-isolation PARA : Aria # Demo
from vlmeval . config import supported_VLM
model = supported_VLM [ 'idefics_9b_instruct' ]()
# Forward Single Image
ret = model . generate ([ 'assets/apple.jpg' , 'What is in this image?' ])
print ( ret ) # The image features a red apple with a leaf on it.
# Forward Multiple Images
ret = model . generate ([ 'assets/apple.jpg' , 'assets/apple.jpg' , 'How many apples are there in the provided images? ' ])
print ( ret ) # There are two apples in the provided images. Para desenvolver benchmarks personalizados, VLMs ou simplesmente contribuir com outros códigos para o VLMevalkit , consulte [Development_guide | 开发指南].
Ligue para contribuições
Para promover a contribuição da comunidade e compartilhar o crédito correspondente (na próxima atualização do relatório):
Aqui está uma lista de colaboradores que selecionamos com base nos registros.
A base de código foi projetada para:
generate_inner() , todas as outras cargas de trabalho (download de dados, pré -processamento de dados, inferência de previsão, cálculo métrico) são tratados pela base de código.A base de código não foi projetada para:
Se você achar esse trabalho útil, considere estrelar? Este repo. Obrigado pelo seu apoio!
Se você usar o VLMevalkit em sua pesquisa ou desejar consultar os resultados publicados da avaliação do OpenSource, use a seguinte entrada do Bibtex e a entrada do Bibtex correspondente ao VLM / benchmark específico que você usou.
@misc { duan2024vlmevalkit ,
title = { VLMEvalKit: An Open-Source Toolkit for Evaluating Large Multi-Modality Models } ,
author = { Haodong Duan and Junming Yang and Yuxuan Qiao and Xinyu Fang and Lin Chen and Yuan Liu and Xiaoyi Dong and Yuhang Zang and Pan Zhang and Jiaqi Wang and Dahua Lin and Kai Chen } ,
year = { 2024 } ,
eprint = { 2407.11691 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CV } ,
url = { https://arxiv.org/abs/2407.11691 } ,
}? De volta ao topo