Toolkit untuk mengevaluasi model bahasa penglihatan yang besar.
• • • •
Bahasa Inggris | 简体中文 | 日本語
? OC Learderboard • QuickStart • Dataset & Model • Pengembangan • Tujuan • Kutipan
? Papan peringkat HF •? Catatan Evaluasi •? Papan peringkat video HF •? Perselisihan • Laporkan
VlMevalkit (Nama Paket Python adalah VlMeval ) adalah toolkit evaluasi open-source dari model bahasa penglihatan besar (LVLM) . Ini memungkinkan evaluasi satu-komandan dari LVLM pada berbagai tolok ukur, tanpa beban kerja persiapan data yang berat di bawah beberapa repositori. Di VLMevalkit, kami mengadopsi evaluasi berbasis generasi untuk semua LVLM, dan memberikan hasil evaluasi yang diperoleh dengan pencocokan yang tepat dan ekstraksi jawaban berbasis LLM .
VLMEVALKIT_USE_MODELSCOPE . Dengan mengatur variabel lingkungan ini, Anda dapat mengunduh tolok ukur video yang didukung dari Modelscopepython run.py --help untuk lebih jelasnyaLihat [QuickStart | 快速开始] untuk panduan awal yang cepat.
Angka kinerja di papan peringkat multi-modal resmi kami dapat diunduh dari sini!
OpenVLM Leaderboard : Unduh semua hasil terperinci .
Dataset pemahaman gambar yang didukung
MCQ : Pertanyaan multi-pilihan; Y/N : pertanyaan ya-or-no; MTT : Benchmark dengan percakapan multi-turn; MTI : Benchmark dengan multi-gambar sebagai input.| Dataset | Nama dataset (untuk run.py) | Tugas | Dataset | Nama dataset (untuk run.py) | Tugas |
|---|---|---|---|---|---|
| Seri MMBench : Mmbench, Mmbench-CN, CCBench | Mmbench_dev_ [en/cn] Mmbench_test_ [en/cn] Mmbench_dev_ [en/cn] _v11 Mmbench_test_ [en/cn] _v11 Ccbench | Markus | Mmstar | Mmstar | Markus |
| Nyonya | Nyonya | Y/n | Serial seedbench | Seedbench_img Seedbench2 Seedbench2_plus | Markus |
| Mm-vet | Mmvet | VQA | MMMU | MMMU_ [dev_val/test] | Markus |
| Mathvista | Mathvista_Mini | VQA | Scienceqa_img | Scienceqa_ [val/tes] | Markus |
| Keterangan Coco | Coco_val | Keterangan | HallusionBench | HallusionBench | Y/n |
| OCRVQA * | OCRVQA_ [TestCore/Test] | VQA | Textvqa * | Textvqa_val | VQA |
| Chartqa * | Chartqa_test | VQA | Ai2d | Ai2d_ [test/test_no_mask] | Markus |
| Llavabench | Llavabench | VQA | DOCVQA + | Docvqa_ [val/tes] | VQA |
| Infovqa + | Infovqa_ [val/tes] | VQA | Ocrbench | Ocrbench | VQA |
| RealWorldqa | RealWorldqa | Markus | PAUS | PAUS | Y/n |
| Core -MM - | Core_mm (MTI) | VQA | MMT-Bench | Mmt-bench_ [val/semua] Mmt-bench_ [val/all] _mi | MCQ (MTI) |
| Mllmguard - | Mllmguard_ds | VQA | Aesbench + | AESBENCH_ [val/tes] | Markus |
| VCR-Wiki + | Vcr_ [en/zh] _ [mudah/sulit] _ [semua/500/100] | VQA | Mmlongbench-doc + | Mmlongbench_doc | VQA (MTI) |
| BERKEDIP | BERKEDIP | MCQ (MTI) | Mathvision + | Mathvision Mathvision_Mini | VQA |
| MT-VQA | Mtvqa_test | VQA | MMDU + | Mmdu | VQA (MTT, MTI) |
| Q-Bench1 | Q-bench1_ [val/tes] | Markus | A-Bench | A-bench_ [val/tes] | Markus |
| Bung + | BUNG | VQA (MTI) | Slidevqa + | Slidevqa Slidevqa_mini | VQA (MTI) |
| TaskMeAnthing ImageQA Random + | TaskMeAnthing_V1_IMAGEQA_RANDOM | Markus | Mmmb dan multibahasa mmbench + | Mmmb_ [ar/cn/en/pt/ru/tr] Mmbench_dev_ [ar/cn/en/pt/ru/tr] Mmmb Mtl_mmbench_dev PS: mmmb & mtl_mmbench_dev adalah nama all-in-one untuk 6 langs | Markus |
| A-okvqa + | A-okvqa | Markus | Muirbench + | Muirbench | Markus |
| Gmai-mmbench + | Gmai-mmbench_val | Markus | TableVQabench + | TableVQabench | VQA |
| MME-REALWORLD + | MME-REALWORLD [-CN] Nyonya-realworld-lite | Markus | Hrbench + | HRBENCH [4K/8K] | Markus |
| 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 + | AMBER | Y/n |
| CRPE + | Crpe_ [ada/relasi] | VQA | MMSearch | - | - |
| R-Bench + | R-Bench- [Dis/Ref] | Markus | Worldmedqa-V + | Worldmedqa-v | Markus |
| GQA + | Gqa_testdev_balanced | VQA | Mia-Bench + | Mia-Bench | 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 |
* Kami hanya memberikan subset dari hasil evaluasi, karena beberapa VLM tidak menghasilkan hasil yang masuk akal di bawah pengaturan zero-shot
+ Hasil evaluasi belum tersedia
- Hanya kesimpulan yang didukung dalam VLMevalkit (yang mencakup pemisahan TEST dari beberapa tolok ukur yang tidak termasuk jawaban kebenaran dasar).
VlMevalkit akan menggunakan Hakim LLM untuk mengekstrak jawaban dari output jika Anda mengatur kunci, jika tidak ia menggunakan mode pencocokan yang tepat (temukan "ya", "tidak", "a", "b", "c" ... dalam string output). Pencocokan yang tepat hanya dapat diterapkan pada tugas ya-atau-no dan tugas multi-pilihan.
Dataset pemahaman video yang didukung
| Dataset | Nama dataset (untuk run.py) | Tugas | Dataset | Nama dataset (untuk run.py) | Tugas |
|---|---|---|---|---|---|
| Mmbench-video | Mmbench-video | VQA | Video-mme | Video-mme | Markus |
| Mvbench | Mvbench/mvbench_mp4 | Markus | MLVU | MLVU | MCQ & VQA |
| Tempcompass | Tempcompass | MCQ & Y/N & CAPTION | Longvideobench | Longvideobench | Markus |
Model API yang didukung
| GPT-4V (20231106, 20240409) ? | GPT-4O ? | Gemini-1.0-Pro ? | Gemini-1.5-Pro ? | Langkah-1V ? |
|---|---|---|---|---|
| Reka- [edge / flash / core] ? | Qwen-vl- [plus / max] ? Qwen-vl- [plus / max] -0809 ? | Claude3- [haiku / sonnet / opus] ? | GLM-4V ? | Congrong ? |
| Claude3.5-sonnet (20240620, 20241022) ? | GPT-4O-Mini ? | Yi-Vision ? | HUNYUAN-VISION ? | Bluelm-V ? |
| Telemm ? |
Model Pytorch / HF yang Didukung
| 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-hantu [2/3] | OpenFlamingo-V2 | Pandagpt-13b | Qwen-vl ? Qwen-vl-chat ? |
| Visualglm-6b ? | Internlm-xcomposer- [1/2] ? | Sharegpt4v- [7b/13b] ? | Transcore-m |
| Llava (xtuner) ? | Cogvlm- [chat/llama3] ? | ShareCaptioner ? | COGVLM-GROUERALIST ? |
| Monyet ? Obrolan monyet ? | 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 ? | Kelinci-llama3 ? | XVers-V-13B |
| Paligemma-3b ? | 360VL-70B ? | Phi-3-vision ? Phi-3.5-vision ? | WEMM ? |
| GLM-4V-9B ? | Cambrian- [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 ? | VideoChhat2-hd ? | Pllava- [7b/13b/34b] ? |
| Rbdash_72b ? | xgen-mm-pi3- [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-internvl-chat- [2b/4b] -v1-5 ? | Seri internvl2 ? | ** Janus-1.3b **? | ** MOLMOE-1B/MOLMO-7B/MOLMO-72B **? |
| ** poin- [yi-1.5-9b/qwen-2.5-7b] **? | ** NVLM **? | ** Vintern **? | ** ARIA **? |
: Mendukung banyak gambar sebagai input.
?: Model dapat digunakan tanpa konfigurasi/operasi tambahan.
?: Dukung video sebagai input.
Rekomendasi Versi Transformers:
Perhatikan bahwa beberapa VLM mungkin tidak dapat berjalan di bawah versi transformator tertentu, kami merekomendasikan pengaturan berikut untuk mengevaluasi setiap VLM:
transformers==4.33.0 untuk : 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 untuk : 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 , PLLaVA Series Parrot-7B , Pllava.transformers==4.40.0 untuk : IDEFICS2 , Bunny-Llama3 , MiniCPM-Llama3-V2.5 , 360VL-70B , Phi-3-Vision , WeMM .transformers==4.44.0 untuk : Moondream2 , H2OVL series .transformers==4.45.0 untuk : 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 .Rekomendasi Versi TorchVision:
Perhatikan bahwa beberapa VLM mungkin tidak dapat berjalan di bawah versi TorchVision tertentu, kami merekomendasikan pengaturan berikut untuk mengevaluasi setiap VLM:
torchvision>=0.16 untuk : Moondream series dan AriaRekomendasi Versi Flash-Attn:
Perhatikan bahwa beberapa VLM mungkin tidak dapat berjalan di bawah versi flash-flash, kami merekomendasikan pengaturan berikut untuk mengevaluasi setiap VLM:
pip install flash-attn --no-build-isolation untuk : 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. Untuk mengembangkan tolok ukur khusus, VLM, atau hanya menyumbangkan kode lain ke VLMevalkit , silakan merujuk ke [pengembangan_guide | 开发指南].
Panggilan untuk kontribusi
Untuk mempromosikan kontribusi dari komunitas dan membagikan kredit yang sesuai (dalam pembaruan laporan berikutnya):
Berikut adalah daftar kontributor yang kami kurasi berdasarkan catatan.
Basis kode dirancang untuk:
generate_inner() , semua beban kerja lainnya (pengunduhan data, preprocessing data, inferensi prediksi, perhitungan metrik) ditangani oleh basis kode.Basis kode tidak dirancang untuk:
Jika Anda menganggap pekerjaan ini bermanfaat, silakan pertimbangkan untuk membintangi? repo ini. Terima kasih atas dukungan Anda!
Jika Anda menggunakan VLMevalKit dalam penelitian Anda atau ingin merujuk pada hasil evaluasi OpenSource yang diterbitkan, silakan gunakan entri BIBTEX berikut dan entri Bibtex yang sesuai dengan VLM / tolok ukur spesifik yang Anda gunakan.
@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 } ,
}? Kembali ke atas