Une boîte à outils pour évaluer les grands modèles de langue de vision.
• • • •
Anglais | 简体中文 | 日本語
? OC Learderboard • QuickStart • Ensembles de données et modèles • Développement • Objectif • Citation
? HF CADEFFORM •? Dossiers d'évaluation •? HF VIDEO CADEDBOED •? Discord • Rapport
VLMevalkit (le nom du package Python est VLMeval ) est une boîte à outils d'évaluation open source des grands modèles de vision en langue de vision (LVLM) . Il permet une évaluation unique des LVLM sur divers repères, sans la charge de travail lourde de la préparation des données sous plusieurs référentiels. Dans VLMEVALKIT, nous adoptons une évaluation basée sur la génération pour tous les LVLM et fournissons les résultats d'évaluation obtenus avec une correspondance exacte et une extraction de réponse basée sur LLM .
VLMEVALKIT_USE_MODELSCOPE . En définissant cette variable d'environnement, vous pouvez télécharger les repères vidéo pris en charge à partir de ModelScopepython run.py --help pour plus de détailsVoir [QuickStart | 快速开始] pour un guide de démarrage rapide.
Les numéros de performance sur nos classements multimodaux officiels peuvent être téléchargés à partir d'ici!
OpenVLM Leadboard : Téléchargez tous les résultats détaillés .
Ensemble de données de compréhension de l'image pris en charge
MCQ : Question multi-choix; Y/N : oui-ou-no QUESTIONS; MTT : Benchmark avec conversations multiples; MTI : Benchmark avec multi-images comme entrées.| Ensemble de données | Noms de jeu de données (pour run.py) | Tâche | Ensemble de données | Noms de jeu de données (pour run.py) | Tâche |
|---|---|---|---|---|---|
| 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 | CIC | Mmstar | Mmstar | CIC |
| Mme | Mme | O / N | Seedbench Series | Seedbench_img Seedbench2 SeedBench2_Plus | CIC |
| Mm-vet | Mmvet | Vqa | MMMU | MMMU_ [DEV_VAL / TEST] | CIC |
| Mathvista | Mathvista_mini | Vqa | Scienceqa_img | Scienceqa_ [Val / test] | CIC |
| Coco Légende | Coco_val | Légende | Salon | Salon | O / N |
| OCRVQA * | Ocrvqa_ [testcore / test] | Vqa | Textvqa * | Textvqa_val | Vqa |
| ChartQA * | Chartqa_test | Vqa | AI2D | AI2D_ [test / test_no_mask] | CIC |
| Llavabench | Llavabench | Vqa | Docvqa + | Docvqa_ [val / test] | Vqa |
| Infovqa + | Infovqa_ [val / test] | Vqa | Ocrbench | Ocrbench | Vqa |
| Realworldqa | Realworldqa | CIC | PAPE | PAPE | O / N |
| Core-mm - | Core_mm (MTI) | Vqa | Banc de mmt | Mmt-bench_ [val / all] Mmt-bench_ [val / all] _mi | MCQ (MTI) |
| MLLMGuard - | Mllmguard_ds | Vqa | Aesbench + | Aesbench_ [val / test] | CIC |
| VCR-wiki + | Vcr_ [en / zh] _ [facile / dur] _ [all / 500/100] | Vqa | MMLongBench-Doc + | Mmlongbench_doc | VQA (MTI) |
| CLIGNOTER | CLIGNOTER | MCQ (MTI) | MathVision + | Mathématiques MathVision_mini | Vqa |
| Mt-vqa | Mtvqa_test | Vqa | MMDU + | MMDU | VQA (MTT, MTI) |
| Q-Bench1 | Q-Bench1_ [Val / test] | CIC | Banc A | A-bench_ [val / test] | CIC |
| Mec + | MEC | VQA (MTI) | Slidevqa + | Slidevqa Slidevqa_mini | VQA (MTI) |
| TaskMeanything ImageQa Random + | Taskmeanything_v1_imageqa_random | CIC | MMMB et MMBENCH multilingue + | MMMB_ [AR / CN / EN / PT / RU / TR] Mmbench_dev_ [ar / cn / en / pt / ru / tr] Mmmb Mtl_mmbench_dev PS: MMMB & MTL_MMBENCH_DEV sont des noms tout-en-un pour 6 langs | CIC |
| A-okvqa + | A-okvqa | CIC | Muirbench + | Muirbench | CIC |
| Gmai-mmbench + | Gmai-mmbench_val | CIC | Tablevqabench + | Tablevqabench | Vqa |
| Mme-realworld + | Mme-realworld [-cn] MME-REALWORLD-LITE | CIC | Hrbench + | Hrbench [4k / 8k] | CIC |
| Mathverse + | Mathverse_mini Mathverse_mini_vision_only Mathverse_mini_vision_dominant Mathverse_mini_Vision_Sensive Mathverse_mini_text_lite Mathverse_mini_text_dominant | Vqa | Ambré + | AMBRE | O / N |
| CRPE + | CRPE_ [exister / relation] | Vqa | Mmsearch | - | - |
| R-Bench + | R-bench- [dis / ref] | CIC | WorldMedqa-V + | WorldMedqa-V | CIC |
| GQA + | Gqa_testdev_balanced | Vqa | Mia-bench + | Mia-banc | Vqa |
| WildVision + | Sauvage | Vqa | Olympiadbench + | Olympiadbench | Vqa |
| MM-Math + | Mm | Vqa | Dynamiser | Dynamiser | Vqa |
| MMGenBench - | MMGenbench-Test Mmgenbench-domaine | - | Qspatial + | Qspatial_ [plus / scanne] | Vqa |
| Vizwiz + | Vizwiz | Vqa |
* Nous ne fournissons qu'un sous-ensemble des résultats de l'évaluation, car certains VLM ne donnent pas de résultats raisonnables dans le cadre du paramètre zéro
+ Les résultats de l'évaluation ne sont pas encore disponibles
- Seule l'inférence est prise en charge dans VlMevalkit (qui inclut les divisions TEST de certaines références qui n'incluent pas les réponses de la vérité au sol).
VLMEvalKit will use a judge LLM to extract answer from the output if you set the key, otherwise it uses the exact matching mode (find "Yes", "No", "A", "B", "C"... in the output strings). La correspondance exacte ne peut être appliquée qu'aux tâches oui ou pas et aux tâches multi-choix.
Ensemble de données de compréhension vidéo prise en charge
| Ensemble de données | Noms de jeu de données (pour run.py) | Tâche | Ensemble de données | Noms de jeu de données (pour run.py) | Tâche |
|---|---|---|---|---|---|
| Mmbench-video | Mmbench-video | Vqa | Vidéo-MME | Vidéo-MME | CIC |
| Mvbench | Mvbench / mvbench_mp4 | CIC | MLVU | MLVU | MCQ & VQA |
| Tempcompasse | Tempcompasse | MCQ & Y / N & Légende | Longvideobench | Longvideobench | CIC |
Modèles d'API pris en charge
| GPT-4V (20231106, 20240409) ? | GPT-4O ? | Gemini-1.0-Pro ? | Gemini-1.5-Pro ? | Étape-1v ? |
|---|---|---|---|---|
| Reka- [Edge / Flash / Core] ? | Qwen-vl- [plus / max] ? Qwen-vl- [plus / max] -0809 ? | Claude3- [haiku / sonnet / opus] ? | GLM-4V ? | Félicitations ? |
| Claude3.5-Sonnet (20240620, 20241022) ? | GPT-4O-MINI ? | Yi-vision ? | Hunyuan-vision ? | BLUELM-V ? |
| Télémm ? |
Modèles Pytorch / HF pris en charge
| Idefics- [9b / 80b / v2-8b / v3-8b] -instruct ? | InstructBlip- [7b / 13b] | Llava- [v1-7b / v1.5-7b / v1.5-13b] | MINIGPT-4- [V1-7B / V1-13B / V2-7B] |
|---|---|---|---|
| Mplug-Owl [2/3] | Openflamingo-v2 | Pandagpt-13b | Qwen-vl ? Qwen-vl-chat ? |
| VisualGlm-6b ? | Interlm-xcomposer- [1/2] ? | Sharegpt4v- [7b / 13b] ? | Transcore-m |
| Llava (xtuner) ? | COGVLM- [CHAT / LLAMA3] ? | ShareCaptioner ? | COGVLM-GRADING-GÉNERISTIQUE ? |
| Singe ? Chat de singe ? | EMU2-CHAT ? | Yi-vl- [6b / 34b] | Mmalaya ? |
| Interlm-xcomposer-2.5 ? | MINICPM- [V1 / V2 / V2.5 / V2.6] ? | Omnilm-12b | Intervl-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-VISION ? | Wemm ? |
| GLM-4V-9B ? | Cambrien- [8b / 13b / 34b] | Llava-next- [qwen-32b] | Chameleon- [7b / 30b] ? |
| Vidéo-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 ? | Vidéo chatgpt ? |
| Chat-Univi-7b [-v1.5] ? | Lama-vid-7b ? | Videochat2-HD ? | Pllava- [7b / 13b / 34b] ? |
| RBDASH_72B ? | xgen-mm-phi3- [interlave / 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-Istruct ? |
| Kosmos2 ? | H2ovl-mississippi- [0,8b / 2b] ? | ** pixtral-12b ** | ** FALCON2-VLM-11B **? |
| ** minimonkey **? | ** llava onevision **? | ** llava video **? | ** Aquila-vl-2b **? |
| Mini-Internvl-chat- [2b / 4b] -v1-5 ? | Série intervl2 ? | ** janus-1.3b **? | ** molmoe-1b / molmo-7b / molmo-72b **? |
| ** Points- [yi-1.5-9b / qwen-2.5-7b] **? | ** nvlm **? | ** Vintern **? | **Aria**? |
: Prendre en charge plusieurs images en entrées.
?: Les modèles peuvent être utilisés sans aucune configuration / fonctionnement supplémentaire.
?: Soutenez la vidéo comme entrées.
Recommandation de la version Transformers:
Notez que certains VLM peuvent ne pas être en mesure d'exécuter sous certaines versions de transformateur, nous recommandons les paramètres suivants pour évaluer chaque VLM:
transformers==4.33.0 pour : 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 pour : Moondream1 .transformers==4.37.0 pour : LLaVA series , ShareGPT4V series , TransCore-M , LLaVA (XTuner) , CogVLM Series , EMU2 Series , Yi-VL Series , MiniCPM-[V1/V2] , OmniLMM-12B , DeepSeek-VL series , série InternVL series , série Cambrian Series , VILA Series , Llama-3-MixSenseV1_1 Parrot-7B , PLLaVA Series .transformers==4.40.0 pour : IDEFICS2 , Bunny-Llama3 , MiniCPM-Llama3-V2.5 , 360VL-70B , Phi-3-Vision , WeMM .transformers==4.44.0 pour : Moondream2 , H2OVL series .transformers==4.45.0 pour : Aria .transformers==latest pour : 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 .Recommandation de la version TorchVision:
Notez que certains VLM peuvent ne pas être en mesure d'exécuter sous certaines versions TorchVision, nous recommandons les paramètres suivants pour évaluer chaque VLM:
torchvision>=0.16 pour : Moondream series et AriaRecommandation de la version Flash-Attn:
Notez que certains VLM peuvent ne pas être en mesure de s'exécuter sous certaines versions Flash-Assetention, nous recommandons les paramètres suivants pour évaluer chaque VLM:
pip install flash-attn --no-build-isolation pour : 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. Pour développer des repères personnalisés, VLMS, ou simplement contribuer à d'autres codes à VLMevalkit , veuillez vous référer à [Development_Guide | 开发指南].
Appel aux contributions
Pour promouvoir la contribution de la communauté et partager le crédit correspondant (dans la prochaine mise à jour du rapport):
Voici une liste de contributeurs que nous avons organisée en fonction des enregistrements.
La base de code est conçue pour:
generate_inner() , toutes les autres charges de travail (téléchargement de données, prétraitement des données, inférence de prédiction, calcul métrique) sont gérés par la base de code.La base de code n'est pas conçue pour:
Si vous trouvez ce travail utile, veuillez envisager de jouer? Ce repo. Merci pour votre soutien!
Si vous utilisez VLMevalkit dans votre recherche ou si vous souhaitez vous référer aux résultats publiés d'OpenSource, veuillez utiliser l'entrée Bibtex suivante et l'entrée Bibtex correspondant au VLM / Benchmark spécifique que vous avez utilisé.
@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 } ,
}? Retour en haut