Project 02 / Evaluation System

多模态大模型视觉能力评测与错误归因系统

这一页重点展示实际代码怎么把 VLMEvalKit 从“跑 benchmark”扩展成“可复现评测工程”:入口脚本负责模型/数据集/判题器配置,推理脚本负责批量和断点续跑,数据集类负责 MCQ prompt 与 evaluate,分析产物再进入错误归因、图表和面试报告。

结果快照

Raw Rows4876

MMBench circularized 原始预测行。

Grouped Rows1292

按 g_index 聚合后的评分题目。

Overall76.32%

Qwen2.5-VL-3B local exact matching。

Fail Rate0%

推理失败率与判题失败率均为 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.pyexact 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_reasoning98.04%50 / 51
image_topic96.67%58 / 60
image_scene95.83%92 / 96
celebrity_recognition93.94%93 / 99
social_relation93.55%58 / 62
弱项类别准确率命中
spatial_relationship40.00%20 / 50
image_quality48.81%41 / 84
physical_property_reasoning49.06%26 / 53
object_localization52.86%37 / 70
future_prediction54.00%27 / 50

Physical / Logic

153 题,68 错,acc 55.56%。

Spatial / Localization

120 题,63 错,acc 47.50%。

OCR / Text

134 题,37 错,acc 72.39%。

工程图与结果图