MMBench circularized 原始预测行。
Project 02 / Evaluation System
多模态大模型视觉能力评测与错误归因系统
这一页重点展示实际代码怎么把 VLMEvalKit 从“跑 benchmark”扩展成“可复现评测工程”:入口脚本负责模型/数据集/判题器配置,推理脚本负责批量和断点续跑,数据集类负责 MCQ prompt 与 evaluate,分析产物再进入错误归因、图表和面试报告。
结果快照
按 g_index 聚合后的评分题目。
Qwen2.5-VL-3B local exact matching。
推理失败率与判题失败率均为 0。
工程总览
CLI / Configparse_args、apply_supported_vlm_cli_overrides 统一命令行、模型参数和运行目录。
Model & Dataset Factorybuild_model_from_config、build_dataset_from_config 接入本地模型、API 模型与数据集。
Batch Inferenceinfer_data_job 调度推理,支持 rank 合并、失败重试和断点续跑。
MCQ EvaluateImageMCQDataset 负责 prompt、选项解析、exact matching 与 acc.csv 产出。
Analysis Report把 xlsx/csv/log/status 转为类别强弱项、错误归因图和报告材料。
run_zh_annotated.py评测总调度包含 build_model_from_config、build_dataset_from_config、get_judge_kwargs、run_local_mode、run_api_mode。inference_zh_annotated.py推理作业层infer_data_api / infer_data / infer_data_job 管理批量推理、API 并发、断点续跑和输出合并。image_mcq_zh_annotated.pyMCQ 数据集层ImageMCQDataset 及其派生类覆盖 MMBench、MMMU、CVBench、HRBench 等多类视觉问答数据。qwen25_vl_artifacts/*报告产物层沉淀预测表、acc.csv、错误案例、类别分析、图表、Word/PDF 报告和运行日志。代码安排
parse_args()统一参数入口解析 model、dataset、mode、judge、work_dir、reuse_aux、并发等运行参数。build_model_from_config()模型工厂支持本地模型配置,也保留 base_url/API 模式,便于不同部署形态复用。log_run_benchmark_report()运行总结从 run_dir 读取 status、acc、日志,生成可读运行报告。run_zh_annotated.py
parse_args
build_model_from_config
build_dataset_from_config
get_judge_kwargs
run_local_mode / run_api_mode
log_run_benchmark_report
infer_data_api()API 并发推理按 index_set 管理 API 调用、并发数和失败重试。infer_data()本地批量推理加载数据集样本,构造 message,保存 prediction xlsx/pkl/log。infer_data_job()任务封装负责单个 model-dataset 作业的输出路径、状态文件、断点续跑和结果整理。*.xlsx预测表保留每题 prompt、prediction、answer 和元信息。*_acc.csv评分表按 grouped row 记录最终准确率。status.json运行状态记录完成、失败和复用信息。| 代码层 | 职责 | 招聘方能看到的能力 |
|---|---|---|
| ImageBaseDataset | 图像落盘、样本读取、通用 message 组织。 | 理解评测框架的基础抽象。 |
| ImageMCQDataset | 多选题 prompt、选项、答案解析、evaluate。 | 能处理模型输出与标准答案之间的噪声。 |
| CustomMCQDataset | 自建 SelfImage/InterviewSmoke 等数据集接入。 | 能把自己的数据放进标准评测链路。 |
| multiple_choice.py | exact matching、选项抽取、循环评测聚合。 | 知道判题规则对结果可信度的影响。 |
- SelfImage 平衡实验把原始 A=10 的答案分布重排为 A=2/B=3/C=3/D=2,排除模型只猜 A 的风险。
- MMBench 全量实验4876 raw rows 聚合到 1292 grouped rows,得到 76.32% overall。
- 错误归因把弱项聚合到 Spatial/Localization、Physical/Logic、OCR/Text 等能力簇。
mmbench_analysis_summary.md
mmbench_category_breakdown.csv
mmbench_error_examples_top30.csv
qwen25vl3b_local_MMBench_DEV_EN_V11.xlsx
SelfImage_MCQ_Balanced_local.tsv
balanced_summary.json
figures_manifest.json
mmbench_interview_report.docx
这些文件让项目不只是“跑过一次模型”,而是可以回看输入、输出、评分、错误案例、图表和文档,形成完整的评测审计链。
强弱项与归因
| 强项类别 | 准确率 | 命中 |
|---|---|---|
| identity_reasoning | 98.04% | 50 / 51 |
| image_topic | 96.67% | 58 / 60 |
| image_scene | 95.83% | 92 / 96 |
| celebrity_recognition | 93.94% | 93 / 99 |
| social_relation | 93.55% | 58 / 62 |
| 弱项类别 | 准确率 | 命中 |
|---|---|---|
| spatial_relationship | 40.00% | 20 / 50 |
| image_quality | 48.81% | 41 / 84 |
| physical_property_reasoning | 49.06% | 26 / 53 |
| object_localization | 52.86% | 37 / 70 |
| future_prediction | 54.00% | 27 / 50 |
Physical / Logic
153 题,68 错,acc 55.56%。
Spatial / Localization
120 题,63 错,acc 47.50%。
OCR / Text
134 题,37 错,acc 72.39%。
工程图与结果图
SelfImage_MCQ_Balanced
去偏置验证结果
结论:消除答案位置全 A 偏置后,模型仍在 10 个自建单选样本上全部命中,说明结果不是由选项位置投机得到。
Answer Balance
答案位置分布
原始答案
A 10B 0C 0D 0
去偏置后
A 2B 3C 3D 2
模型预测
A 2B 3C 3D 2
结论:预测分布与去偏置后的标准答案一致,可作为小样本链路验收结果。