执行摘要
该PR在MMMU(lmms-eval)、lm-eval harness和NeMo Skills(mmmu-pro)三个评估路径中添加了dump_metric调用,是评估统一计划的第二阶段。变更完全向后兼容(dump_metric静默失败),为后续回归检测基础设施提供数据基础。但review指出的标签模式不一致问题未解决,可能影响指标聚合。
功能与动机
根据PR body,这是评估统一计划的第二阶段(第一阶段是#21667的GSM8K统一)。目标是确保所有评估路径都输出dump_metric数据,为未来回归检测基础设施奠定基础。所有通过run_eval.py的评估路径已经具备dump_metric,此PR覆盖剩余的三个路径。dump_metric被设计为静默失败,不会影响现有测试功能。
实现拆解
在三个文件中添加了dump_metric调用:
| 文件 |
修改位置 |
指标名 |
标签 |
python/sglang/test/kits/mmmu_vlm_kit.py |
test_mmmu和_run_vlm_mmmu_test |
"mmmu_score" |
model, eval="mmmu", api="lmms-eval" |
python/sglang/test/kits/lm_eval_kit.py |
test_lm_eval循环 |
"{task_name}_{metric_name}" |
model, eval="lm-eval", task |
python/sglang/test/accuracy_test_runner.py |
_run_nemo_skills_eval |
"{dataset}_score" |
model, eval=dataset, api="nemo-skills" |
关键代码示例(来自mmmu_vlm_kit.py):
dump_metric(
"mmmu_score",
mmmu_accuracy,
labels={"model": self.model, "eval": "mmmu", "api": "lmms-eval"},
)
评论区精华
review中只有一个来自gemini-code-assist[bot]的评论,指出标签模式不一致:
"In mmmu_vlm_kit.py and accuracy_test_runner.py, the eval label represents the benchmark/dataset name (e.g., "mmmu" or "mmmu-pro") and the api label represents the framework/runner (e.g., "lmms-eval" or "nemo-skills"). In this file, eval is set to "lm-eval" and the benchmark is stored in a separate task label."
建议统一标签模式,但作者未回复,PR已合并,表明该问题可能被接受或将在后续处理。
风险与影响
风险:
- 标签模式不一致可能影响后续指标聚合和分析。
- review问题未完全解决,可能留下技术债务。
影响:
- 对系统:为评估系统添加统一指标输出,支持未来回归检测。
- 对用户:无直接影响,测试行为不变。
- 对团队:提供数据基础,但需要关注标签一致性以确保数据质量。
关联脉络
- 这是#21667(GSM8K统一)开始的评估统一计划的第二阶段,两者共同构建评估基础设施。
- 从近期历史PR看,仓库频繁进行测试和CI相关改进(如#22140、#22139、#22102),该PR延续了这一趋势,专注于评估指标收集的统一化。
- 标签模式不一致问题与近期多个PR关注的"consistency"标签(如#22148、#22102、#22137)主题相关,但在此PR中未完全解决。
参与讨论