Contact
← Work

bench-lint

A static linter for multiple-choice benchmark files. Ten checks flag duplicates, leaky options and broken fields, and every check is scored against expert relabels of MMLU.

Year
2026
Kind
Evaluation · Python
Status
Shipped
bench-lint, image 1

Evaluation pipelines lint their code and rarely lint their data. bench-lint reads a benchmark file and reports duplicates, answer-key skew, options that leak the key, near-identical options, broken encodings and few-shot template drift. Each flag carries its evidence in words. It needs only the file: no model predictions, no network, only the standard library.

I scored every check against the MMLU-Redux 2.0 expert relabels, 5,668 items. Most checks are at chance. Across all checks, 714 items were flagged and 34 of them were faulted by the experts, a lift of 0.80 over the base rate. One pair stands out: near-identical options against items with more than one correct answer, lift 10.57, but its Holm-adjusted p is 0.052.

The honest limit is wrong keys. 94 of the 106 wrong answer keys go unflagged, because a wrong key in a well-formed item looks like a correct one without domain knowledge. The rules were also tuned on the same labels they are scored on, so the table is in-sample. It is a hygiene step before expert relabelling, not a replacement for it.

bench-lint, image 2
Next projectLLM Clinical Failure Gallery →