VLMEvalKit—多模态大模型评测工具
[English] | 简体中文
**VLMEvalKit** (python 包名为 **vlmeval**) 是一款专为大型视觉语言模型 (Large Vision-Language Models, LVLMs) 评测而设计的开源工具包。该工具支持在各种基准测试上对大型视觉语言模型进行**一键评估**,无需进行繁重的数据准备工作,让评估过程更加简便。在 VLMEvalKit 中,我们对所有大型视觉语言模型生成的结果进行评测,并提供基于**精确匹配**与基于 **LLM 的答案提取**两种评测结果。
- [2024-05-23] 用户 binwang777 在 VLMEvalKit 中支持了 360VL
- [2024-05-21] 支持了 MiniCPM-Llama3-V2.5, MiniCPM-V 系列最新的模型,拥有较大的性能提升。🔥🔥🔥
- [2024-05-15] 支持了 PaliGemma-3B, 一个谷歌开源的 3B 多模态模型。 🔥🔥🔥
- [2024-05-14] 支持了 GPT-4o 🔥🔥🔥
- [2024-05-07] 支持了 XVERSE-V-13B, 感谢 YJY123 🔥🔥🔥
- [2024-05-06] 成立了 VLMEvalKit 用户群组的 Discord 频道: https://discord.gg/evDT4GZmxN,将在这里分享关于 VLMEvalKit 的更新并进行讨论
- [2024-05-06] 支持了两个基于 Llama3 的 VLM 🔥🔥🔥: Bunny-llama3-8B (SigLIP, 输入图像大小 384) 和 llava-llama-3-8b (CLIP-L, 输入图像大小 336), 用户可在我们支持的数十个测试基准上测试这两个模型
- [2024-04-28] 支持了 MMBench V1.1,在这个新版本中,我们提升了评测题目的质量与视觉的不可或缺性。如需获取测试集上的性能,请提交推理结果至 官方评测服务 🔥🔥🔥
- [2024-04-28] 支持 POPE, 这是一个目标幻觉问题检测的数据集 🔥🔥🔥
- [2024-04-25] 支持了 Reka, 这个 API 模型在 Vision-Arena 排名第一 🔥🔥🔥
OpenVLM Leaderboard: 下载全部细粒度测试结果。
- 默认情况下,我们在 OpenVLM Leaderboard 提供全部测试结果
数据集 | 数据集名称 (用于 run.py) | 任务类型 | 数据集 | 数据集名称 (用于 run.py) | 任务类型 |
---|---|---|---|---|---|
MMBench Series: MMBench, MMBench-CN, CCBench |
MMBench_DEV_[EN/CN] MMBench_TEST_[EN/CN] MMBench_DEV_[EN/CN]V11 MMBench_TEST[EN/CN]_V11 CCBench |
Multi-choice Question (MCQ) |
MMStar | MMStar | MCQ |
MME | MME | Yes or No (Y/N) | SEEDBench_IMG | SEEDBench_IMG | MCQ |
MM-Vet | MMVet | VQA | MMMU | MMMU_DEV_VAL/MMMU_TEST | MCQ |
MathVista | MathVista_MINI | VQA | ScienceQA_IMG | ScienceQA_[VAL/TEST] | MCQ |
COCO Caption | COCO_VAL | Caption | HallusionBench | HallusionBench | Y/N |
OCRVQA* | OCRVQA_[TESTCORE/TEST] | VQA | TextVQA* | TextVQA_VAL | VQA |
ChartQA* | ChartQA_TEST | VQA | AI2D | AI2D_TEST | MCQ |
LLaVABench | LLaVABench | VQA | DocVQA+ | DocVQA_[VAL/TEST] | VQA |
InfoVQA+ | InfoVQA_[VAL/TEST] | VQA | OCRBench | OCRBench | VQA |
RealWorldQA | RealWorldQA | MCQ | POPE+ | POPE | Y/N |
Core-MM- | CORE_MM | VQA |
* 我们只提供了部分模型上的测试结果,剩余模型无法在 zero-shot 设定下测试出合理的精度
+ 我们尚未提供这个评测集的测试结果
- VLMEvalKit 仅支持这个评测集的推理,无法输出最终精度
如果您设置了 API KEY,VLMEvalKit 将使用一个 LLM 从输出中提取答案进行匹配判断,否则它将使用精确匹配模式 (直接在输出字符串中查找“yes”,“no”,“A”,“B”,“C”等)。精确匹配只能应用于是或否任务和多选择任务
API 模型
GPT-4V (20231106, 20240409)🎞️🚅 | GeminiProVision🎞️🚅 | QwenVLPlus🎞️🚅 | QwenVLMax🎞️🚅 | Step-1V🎞️🚅 |
---|---|---|---|---|
Reka🚅 |
基于 PyTorch / HF 的开源模型
🎞️ 表示支持多图片输入。
🚅 表示模型可以被直接使用,不需任何额外的配置。
Transformers 的版本推荐:
请注意,某些 VLM 可能无法在某些特定的 transformers 版本下运行,我们建议使用以下设置来评估对应的VLM:
- 请用
transformers==4.33.0
来运行:Qwen series
,Monkey series
,InternLM-XComposer Series
,mPLUG-Owl2
,OpenFlamingo v2
,IDEFICS series
,VisualGLM
,MMAlaya
,SharedCaptioner
,MiniGPT-4 series
,InstructBLIP series
,PandaGPT
,VXVERSE
. - 请用
transformers==4.37.0
来运行:LLaVA series
,ShareGPT4V series
,TransCore-M
,LLaVA (XTuner)
,CogVLM Series
,EMU2 Series
,Yi-VL Series
,MiniCPM-V (v1, v2)
,OmniLMM-12B
,DeepSeek-VL series
,InternVL series
. - 请用
transformers==4.40.0
来运行:IDEFICS2
,Bunny-Llama3
,MiniCPM-Llama3-V2.5
,LLaVA-Next series
,360VL
.
如何测试一个 VLM 是否可以正常运行:
from vlmeval.config import supported_VLM
model = supported_VLM['idefics_9b_instruct']()
# 前向单张图片
ret = model.generate(['assets/apple.jpg', 'What is in this image?'])
print(ret) # 这张图片上有一个带叶子的红苹果
# 前向多张图片
ret = model.generate(['assets/apple.jpg', 'assets/apple.jpg', 'How many apples are there in the provided images? '])
print(ret) # 提供的图片中有两个苹果
请参阅快速开始获取入门指南。
要开发自定义评测数据集,支持其他 VLMs,或为 VLMEvalKit 贡献代码,请参阅开发指南。
该代码库的设计目标是:
- 提供一个易于使用的开源评估工具包,方便研究人员和开发人员评测现有的多模态大模型,并使评测结果易于复现。
- 使 VLM 开发人员能够轻松地评测自己的模型。在多个支持的基准测试上评估 VLM,只需实现一个
generate_inner()
函数,所有其他工作负载(数据下载、数据预处理、预测推理、度量计算)都由代码库处理。
该代码库的设计目标不是:
复现所有第三方基准测试原始论文中报告的准确数字。有两个相关的原因:
- VLMEvalKit 对所有 VLMs 使用基于生成的评估(可选使用基于 LLM 的答案提取)。同时,一些基准测试可能官方使用不同的方法(例如,SEEDBench 使用基于 PPL 的评估)。对于这些基准测试,我们在相应的结果中比较两个得分。我们鼓励开发人员在代码库中支持其他评估范式。
- 默认情况下,我们对所有多模态模型使用相同的提示模板来评估基准测试。同时,一些多模态模型可能有他们特定的提示模板(目前可能未在代码库中涵盖)。我们鼓励 VLM 的开发人员在 VLMEvalKit 中实现自己的提示模板,如果目前未覆盖。这将有助于提高可复现性。
如果我们的工作对您有所帮助,请考虑 star🌟 VLMEvalKit。感谢支持!
如果您在研究中使用了 VLMEvalKit,或希望参考已发布的开源评估结果,请使用以下 BibTeX 条目以及与您使用的特定 VLM / 基准测试相对应的 BibTex 条目。
@misc{2023opencompass,
title={OpenCompass: A Universal Evaluation Platform for Foundation Models},
author={OpenCompass Contributors},
howpublished = {\url{https:/open-compass/opencompass}},
year={2023}
}
- opencompass: 一个大模型评测平台,支持广泛的模型 (LLaMA, LLaMa2, ChatGLM2, ChatGPT, Claude等) 覆盖 50 多个数据集。
- MMBench: 官方代码库 "MMBench: Is Your Multi-modal Model an All-around Player?"
- BotChat: 评测大模型多轮对话能力。
- LawBench: 对大语言模型的法律知识进行测试。
- Ada-LEval: 对大语言模型的长文本建模能力进行测试。