Skip to content

Latest commit

 

History

History
158 lines (116 loc) · 15.8 KB

README_zh-CN.md

File metadata and controls

158 lines (116 loc) · 15.8 KB

LOGO

VLMEvalKit—多模态大模型评测工具
[English] | 简体中文
**VLMEvalKit** (python 包名为 **vlmeval**) 是一款专为大型视觉语言模型 (Large Vision-Language Models, LVLMs) 评测而设计的开源工具包。该工具支持在各种基准测试上对大型视觉语言模型进行**一键评估**,无需进行繁重的数据准备工作,让评估过程更加简便。在 VLMEvalKit 中,我们对所有大型视觉语言模型生成的结果进行评测,并提供基于**精确匹配**与基于 **LLM 的答案提取**两种评测结果。

🆕 更新

📊 评测结果,支持的数据集和模型

评测结果

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 Series SEEDBench_IMG, SEEDBench2_Plus 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 SEEDBench2_Plus SEEDBench2_Plus MCQ

* 我们只提供了部分模型上的测试结果,剩余模型无法在 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 的开源模型

IDEFICS-[9B/80B/v2-8B]-Instruct🎞️🚅 InstructBLIP-[7B/13B] LLaVA-[v1-7B/v1.5-7B/v1.5-13B] MiniGPT-4-[v1-7B/v1-13B/v2-7B]
mPLUG-Owl2🎞️ OpenFlamingo-v2🎞️ PandaGPT-13B Qwen-VL🎞️🚅, Qwen-VL-Chat🎞️🚅
VisualGLM-6B🚅 InternLM-XComposer-7B🚅🎞️ ShareGPT4V-[7B/13B]🚅 TransCore-M
LLaVA (XTuner)🚅 CogVLM-[Chat/Llama3]🚅 SharedCaptioner🚅 CogVLM-Grounding-Generalist🚅
Monkey🚅, Monkey-Chat🚅 EMU2-Chat🚅🎞️ Yi-VL-[6B/34B] MMAlaya🚅
InternLM-XComposer2-[1.8B/7B]🚅🎞️ MiniCPM-[V1/V2/V2.5]🚅 OmniLMM-12B InternVL-Chat-[V1-1/V1-2/V1-2-Plus/V1-5]🚅, Mini-InternVL-Chat-2B-V1-5🚅
DeepSeek-VL🎞️ LLaVA-NeXT🚅 Bunny-Llama3🚅 XVERSE-V-13B
PaliGemma-3B 🚅 360VL-70B🚅 Phi-3-Vision 🚅

🎞️ 表示支持多图片输入。

🚅 表示模型可以被直接使用,不需任何额外的配置。

其他

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-70BPhi-3-Vision.

如何测试一个 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 贡献代码,请参阅开发指南

🎯 VLMEvalKit 的目标

该代码库的设计目标是:

  1. 提供一个易于使用开源评估工具包,方便研究人员和开发人员评测现有的多模态大模型,并使评测结果易于复现
  2. 使 VLM 开发人员能够轻松地评测自己的模型。在多个支持的基准测试上评估 VLM,只需实现一个 generate_inner() 函数,所有其他工作负载(数据下载、数据预处理、预测推理、度量计算)都由代码库处理。

该代码库的设计目标不是:

复现所有第三方基准测试原始论文中报告的准确数字。有两个相关的原因:

  1. VLMEvalKit 对所有 VLMs 使用基于生成的评估(可选使用基于 LLM 的答案提取)。同时,一些基准测试可能官方使用不同的方法(例如,SEEDBench 使用基于 PPL 的评估)。对于这些基准测试,我们在相应的结果中比较两个得分。我们鼓励开发人员在代码库中支持其他评估范式。
  2. 默认情况下,我们对所有多模态模型使用相同的提示模板来评估基准测试。同时,一些多模态模型可能有他们特定的提示模板(目前可能未在代码库中涵盖)。我们鼓励 VLM 的开发人员在 VLMEvalKit 中实现自己的提示模板,如果目前未覆盖。这将有助于提高可复现性。

🖊️ 引用

如果我们的工作对您有所帮助,请考虑 star🌟 VLMEvalKit。感谢支持!

Stargazers repo roster for @open-compass/VLMEvalKit

如果您在研究中使用了 VLMEvalKit,或希望参考已发布的开源评估结果,请使用以下 BibTeX 条目以及与您使用的特定 VLM / 基准测试相对应的 BibTex 条目。

@misc{2023opencompass,
    title={OpenCompass: A Universal Evaluation Platform for Foundation Models},
    author={OpenCompass Contributors},
    howpublished = {\url{https://github.com/open-compass/opencompass}},
    year={2023}
}

💻 OpenCompass 的其他项目

  • opencompass: 一个大模型评测平台,支持广泛的模型 (LLaMA, LLaMa2, ChatGLM2, ChatGPT, Claude等) 覆盖 50 多个数据集。
  • MMBench: 官方代码库 "MMBench: Is Your Multi-modal Model an All-around Player?"
  • BotChat: 评测大模型多轮对话能力。
  • LawBench: 对大语言模型的法律知识进行测试。
  • Ada-LEval: 对大语言模型的长文本建模能力进行测试。