Benchmarks as Measurement Contracts
A benchmark score is not a property of model weights alone. It is the result of running one model revision through one harness, on one version of a test set, with one scorer and aggregation rule. Change any of those inputs and the number may change. A useful report therefore begins with the claim the evaluation is meant to support, then preserves enough evidence for someone else to reconstruct that claim.
This chapter develops that measurement contract. It explains how to choose test cases, keep them separate from development, pin the execution harness, audit the answer key, and retain per-case records. The next chapter, Chapter 48, asks how much uncertainty remains after those choices have been made.
Begin with the decision, not the dataset
Suppose a team asks, “Is the new model better?” No benchmark can answer that question until better is made specific. Better at answering whose questions, under what conditions, at what cost, and for which decision? A multiple-choice exam can measure performance on its questions. It cannot, without further evidence, establish general intelligence, production usefulness, or safety. Raji et al. call out this gap between a benchmark's narrow task and the broad construct it is often made to represent (Raji et al. 2021).
Write the intended claim before choosing the test:
For English-language support requests from the last quarter, using the production prompt and retrieval stack, model B resolves more cases than model A without regressing policy compliance or exceeding the latency budget.
That sentence identifies a population, a system boundary, a comparison, and guardrails. It also reveals that no single public benchmark can settle the decision. Public suites remain useful for external comparison and regression testing, but product claims need samples that resemble the product. The evidence-centered benchmark design framework makes this order explicit: define the capability and intended use, justify the content, document how the model is adapted or prompted, assemble enough representative items, and explain how item-level evidence becomes a test-level conclusion (Liu et al. 2024).
The common benchmark families are implementations of different measurement choices, not interchangeable measures of one capability:
| Test form | What it can observe | Important limitation |
|---|---|---|
| Closed-answer questions, such as MMLU (Hendrycks et al. 2020) | Correctness on a fixed academic sample | The sample may be unrepresentative, exposed, or mislabeled |
| Executable tasks, such as HumanEval or SWE-bench (Chen and others 2021; Jimenez et al. 2024) | Whether generated code passes a specified test environment | Tests and environment only approximate software quality |
| Synthetic probes, such as configurable long-context tasks | A controlled mechanism under chosen conditions | Synthetic regularity may not transfer to natural inputs |
| Human preference comparisons | Which output selected raters prefer | Preference depends on raters, rubric, presentation, and context |
| Interactive environments | Whether an agent reaches a defined state | Success also depends on tools, environment state, and repeated-run reliability |
Breadth helps only when the suite's composition matches the claim. The “benchmark lottery” describes how conclusions and rankings can change with the chosen tasks, datasets, and metrics (Dehghani et al. 2021). Adding unrelated tests can make a dashboard larger while making its meaning less clear.
The decision also chooses the metric
Naming the decision settles more than which dataset to run. It settles what to score, and the two decisions a benchmark usually serves want opposite properties. A release gate wants the quantity the product is judged on, which is usually accuracy on parsed final answers. A development decision, such as which data mixture or which of two training runs to keep, is made on small models and partly trained checkpoints, where accuracy is a coarse instrument: a multiple-choice score can sit near chance while the model is in fact improving, and it moves between adjacent checkpoints of the same run for no reason connected to model quality.
Heineman et al. turn that observation into two measurable properties of a benchmark paired with a metric. Signal is how well the pair separates stronger models from weaker ones. Noise is how much it moves between training steps within a single run. Write for the score of model across a set of models, for the standard deviation of , and for the standard deviation of the score over the final checkpoints of one run. Signal is , noise is , and their ratio
is what decides whether an observed gap carries information. That ratio is the shape of the comparison rather than the paper's own estimator. Across 30 benchmarks and 375 open-weight models from 60M to 32B parameters, they report that pairs with a higher ratio support more reliable comparisons at small scale and produce better scaling-law fits. Three interventions follow from the measurement: prefer a metric with a better ratio, which for many benchmarks means per-token loss over the answer string rather than accuracy on it; drop subtasks that contribute noise to an aggregate; and average adjacent checkpoints to reduce directly (Heineman et al. 2025).
Loss is a development instrument and not a release metric, so this does not collapse the two decisions into one. A checkpoint that assigns higher probability to the reference answer can still emit it in a form the parser rejects, and no product claim rests on per-token loss. The two metrics answer different questions on the same items, and a report that gives only one of them has answered the other question by omission. Chapter 48 supplies the interval machinery for saying when a gap on either metric is large enough to act on.
Specify the evaluation object
An evaluation should be a versioned artifact, not a command remembered from a terminal. At minimum, its specification pins the data, model, harness, and scorer:
EvaluationSpec:
benchmark_id, benchmark_revision, item_manifest_hash
model_id, model_revision, tokenizer_revision
prompt_template_revision, system_policy_revision
few_shot_policy, tool_environment_revision
decoding_parameters, seeds, repetitions
scorer_revision, normalization, exclusion_policy
contamination_audit_revision, run_environment
EvaluationCase:
case_id, source, license, created_at, language, domain
input_hash, reference_hash, rubric_revision
slice_labels, dependencies, leakage_status
EvaluationRecord:
spec_hash, case_id, attempt, raw_output_hash
parsed_output, score, scorer_trace
latency, token_cost, tool_cost
The separation matters. EvaluationSpec says how the run behaves.
EvaluationCase documents what an item represents. EvaluationRecord preserves
what happened. An aggregate score can be recomputed from those records; it
cannot recreate them after they have been discarded. Dataset documentation has
the same purpose at a broader scale: it makes motivation, composition,
collection, recommended uses, and limitations inspectable rather than implicit
(Gebru et al. 2021).
Let be the score on case , let be its predeclared weight, and let be the number of cases. The reported weighted mean is
Here, identifies one evaluation case, may be binary correctness or a numeric rubric score, controls how much that case contributes, and is the estimated mean for the population implied by those weights. Equal weights do not mean “no assumption”; they assume every sampled case should contribute equally.
For a comparison on the same cases, retain , the case-level difference between systems B and A, and aggregate the values. This paired record shows whether B fixed A's failures or traded them for different ones. If a stochastic code or agent task is attempted repeatedly, average or model repetitions within the task before treating tasks as independent units. Twenty attempts on one repository are not twenty independent repositories. Chapter 48 develops the appropriate intervals and tests.
Figure 47.1 shows the dependency chain. A score is the final projection of several versioned decisions, not the first-class evidence.
Held out from what?
A held-out set is data deliberately kept out of every training stage; it is a pipeline contract, not a property a file can prove by itself. In a closed training pipeline, the contract can cover pre-training, supervised tuning, preference data, synthetic-data generation, prompt selection, and checkpoint selection. For an external model trained on undisclosed web data, an evaluator usually cannot establish that a public test was never seen. The status to record is “exposure unknown,” not “clean.”
Several different failures are often compressed into the word contamination:
- Training leakage: an input, answer, or close duplicate enters pre-training or later training data.
- Indirect leakage: synthetic examples inherit benchmark content from a teacher or retrieval source.
- Development leakage: prompts, parsers, checkpoints, or policies are repeatedly chosen against evaluation results.
- Reporting leakage: items are filtered or reinterpreted after outputs are visible, without the exclusions appearing in the report.
The third failure is ordinary adaptive overfitting. A test set stops acting like fresh evidence when developers query it, change the system, and query it again. The reusable-holdout literature formalized this problem for adaptive data analysis: repeated access needs controlled disclosure or fresh data if validity is to survive (Dwork et al. 2015). A private final set, accessible only to a release service, can preserve one last independent check. It is not permanently trustworthy; access history and prior decisions determine how much independence remains.
Audits provide evidence about exposure, not proof of absence. Exact hashes and n-gram matching find exact or near duplicates when the training corpus is available. Canaries reveal ingestion when a model reproduces a unique planted string. membership inference, tests that ask whether a specific example was in the training data, can probe weights without access to the corpus. Min-K% Prob, for example, uses unusually high probabilities on a text's least likely tokens as a membership signal (Shi et al. 2024). Its ICLR study evaluates a detection method under particular data and model conditions; a negative result does not certify that an item was unseen.
Record the audit's scope in the status itself: known_overlap,
suspected_overlap, no_overlap_found_under_audit_X, or not_auditable.
Calling a case clean after one detector returns a negative result discards the
most important qualification.
There is no universally safest publication policy. Each choice protects one property by giving up another:
| Design | Strength | Cost or risk |
|---|---|---|
| Public, static set | Reproducible and independently runnable | Easy to study, tune against, and ingest into later corpora |
| Private, static set | Limits direct access | Harder to audit; repeated submissions still adapt to it |
| Rotating or newly sourced set | Reduces exposure to older training data | Scores across revisions are less directly comparable |
| Generated or live environment | Can sample many fresh states | Generator, judge, and environment introduce new biases |
LiveBench is one example of rotating questions with automatic grading (White et al. 2025). Its design reduces some exposure risks; it does not make the questions representative, the scorer correct, or comparisons across changing revisions automatic. “Fresh” and “valid” answer different questions.
Audit the instrument
Even a genuinely unseen test can be wrong. Items may have incorrect keys, ambiguous wording, stale facts, broken dependencies, or a parser that rejects a valid answer. MMLU-Redux manually re-annotated 5,700 MMLU questions and estimated that 6.49% contained errors, with large variation among subjects (Gema et al. 2025). That result is a warning against treating the answer key as ground truth by definition.
Before using a suite as a release gate, audit a sample of cases and every case that changes the decision. Check:
- whether the prompt has one defensible interpretation;
- whether the reference answer and rationale agree;
- whether alternative valid forms survive normalization and parsing;
- whether duplicates or shared sources make cases dependent;
- whether dates, tools, packages, websites, and repositories are still valid;
- whether language, domain, difficulty, and user slices cover the intended population;
- whether licenses and access terms allow the proposed use; and
- whether exclusions were declared before results were examined.
Keep an adjudication log. Correcting an item creates a new benchmark revision; silently changing the key under the old name destroys comparability. Also run simple baselines: random choice where applicable, a trivial lexical heuristic, the previous production system, and an oracle or qualified human estimate when one is meaningful. A sophisticated model losing to a trivial heuristic often reveals a shortcut in the test rather than a subtle model failure.
The harness is part of the measured system
The same weights can produce different scores under different prompt templates, few-shot examples, chat templates, decoding settings, tool versions, and answer parsers. Standardized frameworks such as Holistic Evaluation of Language Models make these choices explicit and evaluate more than accuracy, improving comparison and auditability (Liang et al. 2023). Standardization does not remove the harness; it fixes one so that participants are measured under the same declared conditions.
That creates two legitimate but different experiments:
- A controlled model comparison fixes the harness as far as possible and asks how model revisions differ under the same interface.
- A best-system comparison permits model-specific prompting or tools and asks how complete deployed systems differ under a shared budget and task contract.
Do not label the second as a comparison of weights. Conversely, forcing every model through a prompt format poorly matched to its training may answer a clean but operationally unhelpful question. State which experiment is being run.
The scorer needs the same discipline. Preserve raw output before parsing, record
the parser and scorer revision, and distinguish invalid, unknown, timeout,
and scorer_error from an ordinary wrong answer. A model-based judge adds its
own model revision, prompt, order effects, and stochasticity; Chapter 50
develops that case. A test runner adds container images, dependencies, clocks,
network state, and flaky tests. “Automatically graded” does not mean
“interpretation-free.”
Should every model receive exactly the same harness, or should each receive the best harness its developer can build? A fixed harness improves attribution and reproducibility. A model-specific harness may better estimate the best system a user could deploy. Neither number is intrinsically superior because they answer different questions. The mistake is publishing either one without its harness and then making the other claim.
Benchmarks decay
A fixed benchmark loses decision value through several independent processes:
- Exposure: cases or answers enter training and development loops.
- Adaptive reuse: repeated result-driven changes overfit the test even without direct training leakage.
- Saturation: scores cluster near the ceiling, leaving too little variation to separate systems.
- Population drift: the users, tasks, languages, or threats relevant to the decision change.
- Scorer drift: a formerly valid answer key, package, website, policy, or judge no longer represents the desired behavior.
Figure 47.2 illustrates saturation. The curves are schematic: the point is not that every benchmark follows the same timeline, but that a bounded test loses resolution when most systems succeed on almost every item.
Do not respond by adding harder questions blindly. Difficulty is useful only if the new cases still represent the construct and decision. Maintain a benchmark like a production dependency: record revisions, monitor item statistics and coverage, retire broken cases, add newly relevant slices, and preserve a stable anchor set when longitudinal comparison matters.
Run, retain, and report
A defensible benchmark run can be implemented as a short procedure:
- State the construct, population, intended use, primary metric, and guardrails.
- Freeze the model, harness, scorer, item manifest, weights, exclusions, seeds,
and repetition policy in an
EvaluationSpec. - Audit provenance, rights, answer quality, dependencies, and exposure risk.
- Run baselines and candidate systems under the declared comparison design.
- Store raw outputs, parsed outputs, scorer traces, costs, and failures for every attempt.
- Aggregate at the correct sampling unit; report paired changes, slices, and uncertainty.
- Stress the instrument with format changes, option-order permutations, paraphrases, and environmental reruns where those should preserve meaning.
- Apply only predeclared release rules, and log every exception or post-hoc analysis.
Four invariants make the procedure auditable: no evaluation case enters a training or tuning path; no item disappears silently; raw output remains immutable; and every reported number resolves to a spec hash and case-level records. These rules do not guarantee a valid benchmark. They make errors visible and repairable.
A report should therefore lead with the qualified claim, not the largest score. Name the benchmark revision, model and system boundary, harness, sample and weights, scorer, known leakage and item defects, uncertainty, relevant slices, and the decision the evidence supports. A leaderboard row omits most of this context. It can point to a result record; it should not replace one.
Held-out integrity is decided below the evaluation layer. The data pipeline must exclude protected cases and their near duplicates from training mixtures, while the model registry, prompt registry, orchestration layer, and serving traces must retain the revisions used in each run. Evaluation can define the contract and audit the evidence, but it cannot reconstruct provenance that lower layers did not preserve. If those layers lose lineage, a precise score can still be uninterpretable.
With the measurement object defined, the next question is how stable its aggregate is. Chapter 48 turns the saved case-level records into intervals, paired comparisons, and release decisions without mistaking precision for validity.
Further reading
- Raji et al., “AI and the Everything in the Whole Wide World Benchmark,” 2021. datasets-benchmarks-proceedings.neurips.ccRaji et al. examine how narrow benchmark tasks are made to stand in for broad claims about general AI progress, and argue that those claims often exceed the construct evidence the tests provide.
- Dehghani et al., “The Benchmark Lottery,” 2021. arXiv:2107.07002Across several machine-learning domains, the authors show that task, dataset, and metric choices can materially change comparative conclusions and rankings.
- Gebru et al., “Datasheets for Datasets,” 2021. doi.orgDatasheets for Datasets proposes standardized dataset documentation covering motivation, composition, collection, preprocessing, uses, distribution, and maintenance.
- Dwork et al., “The Reusable Holdout: Preserving Validity in Adaptive Data Analysis,” 2015. pubmed.ncbi.nlm.nih.govThe paper formalizes why ordinary holdout guarantees fail under adaptive reuse and develops a controlled mechanism for answering repeated queries while limiting overfitting.
- Liu et al., “ECBD: Evidence-Centered Benchmark Design for NLP,” 2024. aclanthology.orgECBD organizes benchmark design around capability, content, adaptation, assembly, and evidence, requiring each module to be described, justified, and supported with validity evidence.
- Hendrycks et al., “Measuring Massive Multitask Language Understanding” (MMLU), 2020. arXiv:2009.03300MMLU introduces a 57-subject multiple-choice benchmark spanning STEM, humanities, and social sciences to measure text models' breadth of world knowledge in zero-shot and few-shot settings.
- Liang et al., “Holistic Evaluation of Language Models” (HELM), 2023. openreview.netDefines a transparent, multi-scenario and multi-metric framework for evaluating language models beyond a single aggregate score.
- Chen et al., “Evaluating Large Language Models Trained on Code” (HumanEval), 2021. arXiv:2107.03374This paper introduces Codex, a GPT model fine-tuned on GitHub code, and releases HumanEval, a 164-problem benchmark measuring functional correctness via pass@k unit-test evaluation.
- Gema et al., “Are We Done with MMLU?” (MMLU-Redux), 2025. aclanthology.orgA manual re-annotation of 5,700 MMLU questions estimates that 6.49% carry ground-truth errors, with some subject subsets far worse, and releases the corrected MMLU-Redux subset.
- Jimenez et al., “SWE-bench: Can Language Models Resolve Real-World GitHub Issues?,” 2024. proceedings.iclr.ccSWE-bench is a benchmark of 2,294 real GitHub issue-resolution tasks across 12 Python repositories, where models must edit codebases to pass tests, and top models like Claude 2 solve only 1.96%.
- White et al., “LiveBench: A Challenging, Contamination-Limited LLM Benchmark” (LiveBench), 2025. proceedings.iclr.ccLiveBench updates questions monthly from recent sources and uses objective automatic grading to reduce both contamination and subjective judge bias.
- Shi et al., “Detecting Pretraining Data from Large Language Models,” 2024. proceedings.iclr.ccThe paper formalizes black-box pretraining-data detection and evaluates Min-K
- Heineman et al., “Signal and Noise: A Framework for Reducing Uncertainty in Language Model Evaluation” (30 benchmarks, 375 models; signal-to-noise as a benchmark property), 2025. arXiv:2508.13144Signal is a benchmark's ability to separate stronger models from weaker ones and noise is its sensitivity to random variation between training steps; across 30 benchmarks and 375 open-weight models the ratio predicts which small-scale comparisons and scaling-law fits can be trusted.
Comments
Log in to comment