If the exam questions were in the study guide, a high score tells you something different. That does not automatically mean the student cheated. It means the test needs more context.
A leak can be accidental and still matter
Public benchmark questions often live in repositories, papers, discussion threads, and model-generated tutorials. A model trained on a large web corpus may see some of that material. Contamination means evaluation examples, or information that gives away their answers, overlap with training data in a way that can affect performance.
The word gets used as an accusation. Overlap is not the same as proof of intentional memorization, and finding a similar string does not establish how, when, or whether the model learned it. But the measurement question remains: if a model can retrieve a familiar solution, is this test measuring generalization to new cases or recall of known examples?
Both kinds of capability can be useful. What fails is presenting a score as evidence of the former when the test may partly reward the latter.
Why detecting contamination is difficult
Exact-match searches catch verbatim strings. They miss paraphrases, code that solves the same problem through another route, and materials that were present in pretraining under a transformed form. Conversely, a common phrase or programming idiom can match without meaningful leakage. There is no magic scan that labels every overlap and proves what the model saw.
Evaluators can compare performance on likely exposed examples and newly written examples, vary wording, or construct private test sets after a model checkpoint is fixed. Each method has limits. A new example can still be easy because it follows a known template. A private set can be small or unrepresentative. A prompt change can alter difficulty for reasons unrelated to familiarity.
The right report describes the audit and the residual uncertainty instead of saying 'we checked for contamination' as if that closed the case.
| Check | Can tell you | Cannot tell you alone |
|---|---|---|
| Exact text search | Whether known strings appear in accessible corpora | Whether the model trained on them |
| Freshly written tasks | How the system handles unseen instances | Whether they represent real deployment |
| Private evaluation set | Performance on withheld items | Whether the test stays private or is broad enough |
| Prompt perturbation | Sensitivity to superficial wording | Whether memorization caused the change |
What a credible benchmark report should say
A good evaluation reports the data's origin, cutoff, task construction, and any known overlap checks. It says whether examples are public, whether a model vendor had access to them, and when the test was created relative to the model. It distinguishes data contamination from other kinds of benchmark gaming, such as overfitting prompts through repeated public trials.
For a system used in production, benchmark creators should supplement public results with held-out tasks and ongoing evaluation. Rotate examples carefully. Keep some cases private. Run regression tests when the model changes. Make it possible to see what classes of tasks fail rather than presenting one grand score.
A vendor that will not disclose training data may not be able to rule out overlap definitively. That is a real limit to state. It does not mean every result is worthless. It means claims must be calibrated to the evidence they have.
- Separate evidence of overlap from claims about intent.
- Say what contamination checks were actually run.
- Use tests written after the model version is fixed when possible.
- Keep a private, representative evaluation set for your own workload.
- Treat a familiar benchmark as one source of evidence, not the final answer.
Designing a more useful fresh test
Start with the behaviour you need rather than a fashionable benchmark. For a coding assistant, collect recent internal bugs after stripping private data, record the intended fix, and define tests that catch the bug without over-specifying the implementation. For a writing helper, score the answer against a checklist created by a person who knows the job.
Freeze a model identifier, system prompt, tools, and retry rules. Run a baseline and a candidate on the same examples. Keep a held-out subset for the final comparison. When a failure appears, add a regression example, but preserve the original test set too so continuous improvement does not turn into a moving goalpost.
You may not know whether a model has ever seen a comparable task. You can know whether it solves your carefully sampled tasks under conditions you can reproduce. That is usually a much better purchasing decision.
FOLLOW THE EVIDENCE
Sources & further reading
Process note: AI tools assisted with research and drafting. Sources are linked so you can inspect the evidence. Unless an essay says otherwise, it does not claim hands-on testing or independent reproduction.



