Skip to main content

Contamination, tracking and the API

A model that trained on the test set scores well and means nothing. Rather than trusting that this never happened, every evaluation report measures it, and every report can be read by a person, a dashboard or a script.

FeatureWhat it gives
contaminationexact matches and near-duplicates between the evaluation items and the rows the experiment trained on, next to the scores
trackerthe report's numbers in Weights and Biases, once per report
APIGET /api/evaluations lists every report under an output directory

Contamination is a measurement, not a filter: the Data channel is where leaks are removed before training.

Details​

Every report carries contamination: the overlap between the evaluation items (rows, benchmark documents as the harness logged them, decision questions) and the rows the experiment trained on (<experiment>/data/train.jsonl): exact (same text after case and whitespace normalization), near (at least half of an item's word 8-grams occur in the training rows; includes the exact ones), share_mean, and the first flagged item indices. It is null for base checkpoints (those weights never saw the rows) and for MTEB tasks. A comparison reports it per run. It is a measurement, not a filter: the Data channel's leak filter is where contamination is prevented.

With tracker: {enabled: true, project: ...} the report is sent to wandb once per report stage directory: every number in it as a summary metric (scores/loss, benchmarks/hellaswag/value, contamination/exact, ...) and the same numbers as a table. As for training runs, tracker is not part of the identity, and a report already sent to a project is not sent again.

GET /api/evaluations?output_dir=./output&recipe=&experiment= lists every evaluation report under an output directory (headline scores, model, contamination); GET /api/evaluations/{experiment} returns one report in full. output_dir must lie inside API_PATHS.

Source: evaluation/README.md. This page is generated; edit the source and run npm run sync.