InternVL MMMU评测教程:多模态多任务理解的权威基准
【免费下载链接】InternVL[CVPR 2024 Oral] InternVL Family: A Pioneering Open-Source Alternative to GPT-4o. 接近GPT-4o表现的开源多模态对话模型项目地址: https://gitcode.com/GitHub_Trending/in/InternVL
📌 本文带你完整跑通InternVL(CVPR 2024 Oral,开源多模态对话模型家族)的MMMU 评测流程——这个被称为"多模态模型智商测试"的权威基准,只需 3 条命令即可得到你模型在多模态多任务理解能力上的真实得分。
一、为什么 MMMU 是多模态评测的"权威基准"?
MMMU(Massive Multi-discipline Multimodal Understanding)是目前检验多模态大模型(MLLM)综合智力最常被引用的基准之一。它难就难在三点:
- 🎓学科覆盖面广:涵盖 6 大领域、30 个学科——从数学、物理、化学到艺术史、临床医药、音乐
- 🧩题型混合:同时包含选择题(最多 13 个选项)和开放式问答
- 🧠需要深度推理:不是简单看图认物,而是要求真正的跨学科理解能力
在 InternVL 仓库中,MMMU 是衡量模型能力最核心的指标。例如 InternVL2.5-78B 正是靠70%+ 的 MMMU 成绩成为首个比肩 GPT-4o 的开源多模态模型。
仓库内所有评测代码集中在 internvl_chat/eval/ 目录,MMMU 评测器位于 internvl_chat/eval/mmmu/。
二、评测前必备:快速搭建评测环境
一键克隆 InternVL 仓库:
git clone https://gitcode.com/GitHub_Trending/in/InternVL cd InternVL/internvl_chat安装依赖:
pip install -r ../requirements/internvl_chat.txt💡 准备模型检查点(如
OpenGVLab/InternVL2-8B),记下本地路径,下文记为${CHECKPOINT}。
三、数据准备:MMMU 数据集自动下载
好消息是无需手动下载数据集。评测脚本会自动从 HuggingFace 拉取MMMU/MMMU数据集,并缓存到data/MMMU目录。唯一要做的是提前创建文件夹:
mkdir -p data/MMMU数据集按学科分片加载、合并逻辑在 data_utils.py 中定义——6 大领域(Art and Design、Business、Science 等)到 30 个学科的映射一目了然。
四、一键运行 MMMU 评测:完整命令详解
在internvl_chat目录下执行,推荐使用仓库封装好的 evaluate.sh:
GPUS=8 sh evaluate.sh ${CHECKPOINT} mmmu-val --dynamic或者直接使用 torchrun(8 卡环境):
torchrun --nproc_per_node=8 eval/mmmu/evaluate_mmmu.py --checkpoint ${CHECKPOINT} --dynamic4.1 三个最关键参数
| 参数 | 说明 |
|---|---|
--checkpoint | 模型检查点路径,必填 |
--dynamic | ⚠️动态分辨率开关。测试 InternVL 1.5 及更新版本时必须开启 |
--auto | 单卡装不下大模型时,自动拆分到 8 张 GPU |
⚠️最容易踩的坑:InternVL 1.5 / 2.0 / 2.5 系列务必加
--dynamic,否则成绩会明显偏低!
4.2 更多可调参数
完整参数定义见 evaluate_mmmu.py:
--datasets:支持MMMU_validation(默认)、MMMU_test、MMMU_dev,可用mmmu-val/mmmu-test/mmmu-dev快捷切换--max-num:动态分辨率最大切片数(默认 6),显存不足时调小--load-in-8bit/--load-in-4bit:量化加载,降低显存占用--out-dir:结果输出目录(默认results/)
五、看懂 MMMU 评测结果
评测完成后,validation分会集自动打分:脚本会调用 main_eval_only.py 并加载仓库内置的标准答案 answer_dict_val.json。
结果分两层输出:
- 学科级准确率:30 个学科各自正确率
- 领域级 / 总分:如
Overall-Science、Overall-Business和Overall(instruction-level 平均,计算逻辑见 eval_utils.py)
同时会在results/生成带时间戳的.json/.jsonl文件,逐题保存模型预测与标准答案,方便人工复盘。
📊 分数对照小贴士
test分集无标准答案,需提交官方平台获取分数- 本仓库代码的分数会比技术报告所用评测框架低约 2~3 分(见 eval/mmmu/README.md),横向对比时请使用同一评测管道
- 选择题答案解析采用"取最后一个候选字母"策略,开放式答案会做数值归一化(见 parse_open_response)
六、进阶玩法:MMMU-Pro 与思维链评测
如果你还想压测模型的深层推理,仓库同样内置了两个升级版本:
6.1 MMMU-Pro:抗"蒙题"的强化版
通过增加选项数量(最多 10 选 1)减少随机猜对的概率,单卡即可运行(依赖 lmdeploy):
GPUS=1 sh evaluate.sh ${CHECKPOINT} mmmu-pro-std10 --tp 1详细参数见 eval/mmmu_pro/README.md。
6.2 CoT 思维链模式
在evaluate.sh中还存在mmmu-dev-cot/mmmu-val-cot分支,启用后模型会先输出推理过程再给答案,适合评估模型的数学与科学推理能力。
七、常见问题 FAQ
| 问题 | 解决方案 |
|---|---|
| 显存不足 | 加--load-in-8bit,或调小--max-num |
| 模型太大单卡放不下 | 加--auto自动切分到 8 卡 |
| 分数比官方报告低 2~3 分 | 正常现象,属评测管道差异,不影响横向对比 |
| 首次运行很慢 | 首次需下载并缓存 MMMU 数据集到data/MMMU,之后可复用缓存 |
| 想快速冒烟测试 | 用mmmu-dev小分集验证流程,再跑mmmu-val正式打分 |
🎯总结:InternVL 的 MMMU 评测流程做到了"数据自动下载 → 一条命令启动 → 结果自动打分"的全自动化。无论你是复现技术报告、还是评估自己微调的多模态模型,这套位于 internvl_chat/eval/mmmu/ 的评测管线都能让你在半小时内拿到一份权威的多模态多任务理解成绩单。
【免费下载链接】InternVL[CVPR 2024 Oral] InternVL Family: A Pioneering Open-Source Alternative to GPT-4o. 接近GPT-4o表现的开源多模态对话模型项目地址: https://gitcode.com/GitHub_Trending/in/InternVL
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考