inference-model-eval
Purpose
Run quality and accuracy evaluations against a live inference
endpoint to validate that a model deployment is fit for promotion.
Three benchmark families:
- GPQA - graduate-level Q&A; runs inside the model pod via
lm-eval-harness.
- MMLU-Pro - broad multi-task understanding. Runs inside the model
pod via lm-eval-harness.
- ExternalEval - externally operated. The workflow records contact and
endpoint details, and the operator coordinates with the ExternalEval
operator out-of-band.
The eval workflow itself (task selection, in-pod lm-eval-harness
invocation, monitoring, results download, ExternalEval handoff) is
summarized under "Workflow" below. This skill's main job is the
project-specific glue for the evidence bundle and the perf-baseline tie-in.
When to use
- Before promoting a new model to staging or prod - validate quality
alongside the perf check
(
inference-perf-bench).
- After vLLM version bumps, quantization changes (NVFP4 vs FP8 vs
BF16), KV-cache-dtype changes - ensure no quality regression.
- Regression check against published baselines (HuggingFace model
card, paper numbers).
- Pairing perf-vs-quality A/B for proposed config changes.
Do not use this skill for:
- Inference performance measurement - that is
inference-perf-bench.
- Terminal-Bench 2.0 / SWE-Bench Verified at scale - those are larger
evaluation-harness runs driven by a dedicated eval pipeline. This
skill covers the in-pod lm-eval-harness path only.
Example prompts
- "Run GPQA + MMLU-Pro on the kimi-k25 dev pods."
- "Run model-eval on the new minimax-m2.7 deployment, batch size 64."
- "Quality regression check on glm-5-fp8 after the vllm 0.20 bump."
/run-model-eval --model kimi-k25 --tasks gpqa,mmlu_pro
/inference-model-eval --pods c2-kimi-k25-fp4-* --tasks gpqa
Prerequisites
kubectl context for a dev cluster.
- Namespace containing the target pods.
- HF_TOKEN if the model card / dataset requires it.
PROFILE_AND_OPTIMIZE_REPO_ROOT for the result bundle.
Interaction style
Iterative. The workflow pauses naturally at task selection, where the
operator chooses which evals to run.
Workflow
Phase A: scaffold an evidence bundle
/evidence-bundle-init --family inference-model-eval \
--intent "model-eval on <model> tasks=<gpqa,mmlu_pro,external-eval>"
Phase B: run the evals
Select the tasks (GPQA / MMLU-Pro), invoke lm-eval-harness inside the
target model pod against the served endpoint, monitor the run, and
download the results into the evidence bundle. For ExternalEval, hand off
to the ExternalEval operator out-of-band and record the returned scores.
Phase C: tie evals to a perf-baseline registry entry
When a model passes both inference-perf-bench and
inference-model-eval, register the perf baseline with a notes
field that names the eval scores:
/inference-perf-baseline-bridge record \
--model <model> \
--source experiments/artifacts/inference-perf-bench/<run-id>/ \
--notes "GPQA=<score>; MMLU-Pro=<score>; ExternalEval=<score>"
This lets a future
inference-perf-baseline-bridge
diff confirm that a perf regression isn't masked by a quality gain
(or vice versa).
Safety
- Read-only on the cluster. lm-eval-harness runs inside the
existing model pod. The workflow does not create or delete pods.
- No customer-data leakage. GPQA / MMLU-Pro datasets are public.
Any in-pod intermediate artifacts should be cleared before the
bundle is shared externally.
- ExternalEval is operator-mediated. The skill only displays
contact info. Do not auto-DM the ExternalEval operator from any agent surface.
Full-context reporting (no bare numbers)
Per the canon "Every performance number carries its full context (no bare numbers)"
(docs/METHODOLOGY.md "Full-context reporting"): every number this
skill emits MUST carry its full measurement-context descriptor, and every comparison MUST be
matched on it. A bare tok/s / TPOT / BW / %SoL / speedup is a defect - it cannot set a
default, ship a config, or appear in a report.
- Identity: model (+HF path), hardware (exact ceiling token
GB300/B200), quant, kv-cache dtype.
- Parallelism: TP, DP (replicas), PP, EP, parallel_strategy.
- Serving cfg: max-num-seqs, max-num-batched-tokens, gpu-memory-utilization, max-model-len, cudagraph_mode/enforce_eager, async_scheduling, prefix-caching.
- Workload: dataset, ISL/OSL (or mean in/out tokens), concurrency, num-prompts.
- Regime: warm vs cold. Latency vs throughput tier.
- Stack: image/vllm commit, bench backend, serving engine.
- Grounding:
%SoL (+ ceiling key from configs/sol-ceilings.yaml - never inline a peak), sol_rigor (L1-L4), trials n (mean±std), same-node, baseline named.
- Per-number exact shape (no smoothing): when reporting more than one number, keep EACH with its own exact shape (ISL/OSL, concurrency, dataset, regime) - never normalize a set to one uniform descriptor that hides per-point variation (e.g.
c=1 @ ISL1024/OSL256 + c=64 @ ISL4096/OSL512, NOT one shared "random").
Quality-eval scores (lm-eval-harness MMLU/GSM8K/etc.) are not directly
roofline-bound, so this skill does NOT add a %SoL column to its
output. Per docs/METHODOLOGY.md "Speed-of-light framing", the
methodology applies to measurement-producing perf skills - eval
accuracy is orthogonal. When eval pairs with perf
(inference-perf-bench) for a
quant-quality-vs-throughput comparison, the perf side carries %SoL
and the eval side carries accuracy %.
Next lever / BREAKTHROUGH (Grind Mandate)
If this skill emits a measured result, its output MUST end by naming the next perf lever,
its expected unlock (direction + rough magnitude), and the gate that proves/refutes it,
per docs/METHODOLOGY.md "Always be grinding". A
measured win is the new floor, not the finish -- so do everything we can to find the next
BREAKTHROUGH: the highest-EV unlock toward Speed-of-Light (a new champion / kernel / router /
quant / parallelism / spec-decode win, or an unblocked stack), not just the next micro-lever.
Rank the candidate breakthrough levers by value x cost (the GRIND FRONTIER, perftunereport value_view), pursue the top, bank the rest with evidence. Record WHY a refuted lever loses,
update the standing frontier in the active bundle's HANDOFF.md. Never conclude
"exhausted/optimal/done" without an explicit next-lever frontier (an empty frontier AND a
documented SoL wall only). Delete this section ONLY if the skill produces no measurements.
Source-of-truth references
1---2name: inference-model-eval3description: Drive lm-eval-harness quality evals (GPQA, MMLU-Pro) inside model pods plus optional ExternalEval (externally operated). Use to validate model quality before promoting to staging or prod, after vLLM / quantization / KV-cache changes, or to compare against published HuggingFace / paper baselines. Pair with inference-perf-bench (the perf-side counterpart) for full pre-promotion validation. Triggers on "lm-eval-harness", "GPQA", "MMLU-Pro", "ExternalEval", "model quality eval", "/run-model-eval", "run evals", "run gpqa", "run mmlu", "run external-eval", "run evals on the model", or any combination of "eval / quality / accuracy" with "inference / model / vllm".4license: MIT5---67# inference-model-eval89## Purpose1011Run quality and accuracy evaluations against a live inference12endpoint to validate that a model deployment is fit for promotion.13Three benchmark families:1415- **GPQA** - graduate-level Q&A; runs inside the model pod via16 [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness).17- **MMLU-Pro** - broad multi-task understanding. Runs inside the model18 pod via lm-eval-harness.19- **ExternalEval** - externally operated. The workflow records contact and20 endpoint details, and the operator coordinates with the ExternalEval21 operator out-of-band.2223The eval workflow itself (task selection, in-pod lm-eval-harness24invocation, monitoring, results download, ExternalEval handoff) is25summarized under "Workflow" below. This skill's main job is the26project-specific glue for the evidence bundle and the perf-baseline tie-in.2728## When to use2930- Before promoting a new model to staging or prod - validate quality31 alongside the perf check32 ([`inference-perf-bench`](../inference-perf-bench/SKILL.md)).33- After vLLM version bumps, quantization changes (NVFP4 vs FP8 vs34 BF16), KV-cache-dtype changes - ensure no quality regression.35- Regression check against published baselines (HuggingFace model36 card, paper numbers).37- Pairing perf-vs-quality A/B for proposed config changes.3839Do **not** use this skill for:4041- Inference performance measurement - that is42 [`inference-perf-bench`](../inference-perf-bench/SKILL.md).43- Terminal-Bench 2.0 / SWE-Bench Verified at scale - those are larger44 evaluation-harness runs driven by a dedicated eval pipeline. This45 skill covers the in-pod lm-eval-harness path only.4647## Example prompts4849- "Run GPQA + MMLU-Pro on the kimi-k25 dev pods."50- "Run model-eval on the new minimax-m2.7 deployment, batch size 64."51- "Quality regression check on glm-5-fp8 after the vllm 0.20 bump."52- `/run-model-eval --model kimi-k25 --tasks gpqa,mmlu_pro`53- `/inference-model-eval --pods c2-kimi-k25-fp4-* --tasks gpqa`5455## Prerequisites56571. **`kubectl` context for a dev cluster**.582. **Namespace** containing the target pods.593. **HF_TOKEN** if the model card / dataset requires it.604. **`PROFILE_AND_OPTIMIZE_REPO_ROOT`** for the result bundle.6162## Interaction style6364Iterative. The workflow pauses naturally at task selection, where the65operator chooses which evals to run.6667## Workflow6869### Phase A: scaffold an evidence bundle7071```text72/evidence-bundle-init --family inference-model-eval \73 --intent "model-eval on <model> tasks=<gpqa,mmlu_pro,external-eval>"74```7576### Phase B: run the evals7778Select the tasks (GPQA / MMLU-Pro), invoke lm-eval-harness inside the79target model pod against the served endpoint, monitor the run, and80download the results into the evidence bundle. For ExternalEval, hand off81to the ExternalEval operator out-of-band and record the returned scores.8283### Phase C: tie evals to a perf-baseline registry entry8485When a model passes both `inference-perf-bench` and86`inference-model-eval`, register the perf baseline with a `notes`87field that names the eval scores:8889```text90/inference-perf-baseline-bridge record \91 --model <model> \92 --source experiments/artifacts/inference-perf-bench/<run-id>/ \93 --notes "GPQA=<score>; MMLU-Pro=<score>; ExternalEval=<score>"94```9596This lets a future97[`inference-perf-baseline-bridge`](../inference-perf-baseline-bridge/SKILL.md)98diff confirm that a perf regression isn't masked by a quality gain99(or vice versa).100101## Safety102103- **Read-only on the cluster.** lm-eval-harness runs inside the104 existing model pod. The workflow does not create or delete pods.105- **No customer-data leakage.** GPQA / MMLU-Pro datasets are public.106 Any in-pod intermediate artifacts should be cleared before the107 bundle is shared externally.108- **ExternalEval is operator-mediated.** The skill only displays109 contact info. Do not auto-DM the ExternalEval operator from any agent surface.110111## Full-context reporting (no bare numbers)112113Per the canon "Every performance number carries its full context (no bare numbers)"114(`docs/METHODOLOGY.md` "Full-context reporting"): every number this115skill emits MUST carry its full measurement-context descriptor, and every comparison MUST be116matched on it. A bare `tok/s` / TPOT / BW / %SoL / speedup is a defect - it cannot set a117default, ship a config, or appear in a report.118- **Identity:** model (+HF path), hardware (exact ceiling token `GB300`/`B200`), quant, kv-cache dtype.119- **Parallelism:** TP, DP (replicas), PP, EP, parallel_strategy.120- **Serving cfg:** max-num-seqs, max-num-batched-tokens, gpu-memory-utilization, max-model-len, cudagraph_mode/enforce_eager, async_scheduling, prefix-caching.121- **Workload:** dataset, ISL/OSL (or mean in/out tokens), concurrency, num-prompts.122- **Regime:** warm vs cold. Latency vs throughput tier.123- **Stack:** image/vllm commit, bench backend, serving engine.124- **Grounding:** `%SoL` (+ ceiling key from `configs/sol-ceilings.yaml` - never inline a peak), sol_rigor (L1-L4), trials n (mean±std), same-node, baseline named.125- **Per-number exact shape (no smoothing):** when reporting more than one number, keep EACH with its own exact shape (ISL/OSL, concurrency, dataset, regime) - never normalize a set to one uniform descriptor that hides per-point variation (e.g. `c=1 @ ISL1024/OSL256` + `c=64 @ ISL4096/OSL512`, NOT one shared "random").126127Quality-eval scores (lm-eval-harness MMLU/GSM8K/etc.) are not directly128roofline-bound, so this skill does NOT add a `%SoL` column to its129output. Per `docs/METHODOLOGY.md` "Speed-of-light framing", the130methodology applies to *measurement-producing perf skills* - eval131accuracy is orthogonal. When eval pairs with perf132([`inference-perf-bench`](../inference-perf-bench/SKILL.md)) for a133quant-quality-vs-throughput comparison, the perf side carries `%SoL`134and the eval side carries accuracy %.135136## Next lever / BREAKTHROUGH (Grind Mandate)137138If this skill emits a measured result, its output MUST end by naming the **next perf lever**,139its **expected unlock** (direction + rough magnitude), and the **gate** that proves/refutes it,140per `docs/METHODOLOGY.md` "Always be grinding". A141measured win is the new floor, not the finish -- so **do everything we can to find the next142BREAKTHROUGH**: the highest-EV unlock toward Speed-of-Light (a new champion / kernel / router /143quant / parallelism / spec-decode win, or an unblocked stack), not just the next micro-lever.144Rank the candidate breakthrough levers by value x cost (the GRIND FRONTIER, `perftunereport145value_view`), pursue the top, bank the rest with evidence. Record WHY a refuted lever loses,146update the standing frontier in the active bundle's `HANDOFF.md`. Never conclude147"exhausted/optimal/done" without an explicit next-lever frontier (an empty frontier AND a148documented SoL wall only). Delete this section ONLY if the skill produces no measurements.149150## Source-of-truth references151152- Pair: [`inference-perf-bench`](../inference-perf-bench/SKILL.md) - the153 perf counterpart for full pre-promotion validation.154- [`inference-perf-baseline-bridge`](../inference-perf-baseline-bridge/SKILL.md)155 - ties eval scores to a perf-baseline registry entry (Phase C).156- `docs/METHODOLOGY.md` - full-context reporting + verdict rigor.