Add dump_metric to MMMU, lm-eval, and NeMo Skills eval paths (#22147)

This commit is contained in:
Liangsheng Yin
2026-04-05 03:23:52 -07:00
committed by GitHub
parent cd2d45e220
commit aeff9fb7c1
3 changed files with 31 additions and 0 deletions
@@ -8,6 +8,7 @@ from sglang.test.test_utils import (
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
DEFAULT_URL_FOR_TEST,
ModelLaunchSettings,
dump_metric,
popen_launch_server,
write_github_step_summary,
)
@@ -421,6 +422,12 @@ def _run_nemo_skills_eval(
if score is None:
return False, "Could not parse accuracy from ns eval output", None
dump_metric(
f"{dataset}_score",
score,
labels={"model": model.model_path, "eval": dataset, "api": "nemo-skills"},
)
return True, None, {"score": score}
except subprocess.TimeoutExpired:
+11
View File
@@ -12,6 +12,8 @@ import numpy as np
import requests
import yaml
from sglang.test.test_utils import dump_metric
@contextmanager
def scoped_env_vars(new_env: dict[str, str] | None):
@@ -69,6 +71,15 @@ class LMEvalMixin:
f"ground_truth={ground_truth:.3f} | "
f"measured={measured_value:.3f} | rtol={rtol}"
)
dump_metric(
f"{task['name']}_{metric['name']}",
measured_value,
labels={
"model": eval_config.get("model_name", ""),
"eval": "lm-eval",
"task": task["name"],
},
)
success = success and np.isclose(
ground_truth, measured_value, rtol=rtol
)
+13
View File
@@ -13,6 +13,7 @@ from sglang.test.test_utils import (
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
DEFAULT_URL_FOR_TEST,
CustomTestCase,
dump_metric,
popen_launch_server,
)
@@ -216,6 +217,12 @@ class MMMUMixin:
mmmu_accuracy = result["results"]["mmmu_val"]["mmmu_acc,none"]
print(f"Model {self.model} achieved accuracy: {mmmu_accuracy:.4f}")
dump_metric(
"mmmu_score",
mmmu_accuracy,
labels={"model": self.model, "eval": "mmmu", "api": "lmms-eval"},
)
# Assert performance meets expected threshold
self.assertGreaterEqual(
mmmu_accuracy,
@@ -403,6 +410,12 @@ class MMMUMultiModelTestBase(CustomTestCase):
f"Model {model.model} achieved accuracy{test_name}: {mmmu_accuracy:.4f}"
)
dump_metric(
"mmmu_score",
mmmu_accuracy,
labels={"model": model.model, "eval": "mmmu", "api": "lmms-eval"},
)
# Capture server output if requested
if capture_output and process:
server_output = self._read_output_from_files()