Back to course overview
Module 2Evaluation 11 min

Test datasets

The golden set as a living asset: composition, sourcing from production, preventing rot, and treating eval data as versioned code.

Your eval is only as good as its dataset. In LLMOps the golden set stops being a static file you wrote once and becomes a living asset that grows from production, guards against rot, and is versioned like code — because the reliability gap moves, and a frozen eval set slowly stops describing reality.

Composition: coverage over volume

  • Routine cases — the bread-and-butter inputs. Your regression canaries; if these break, everyone notices.
  • Boundary cases — the judgment calls you argued about. Where quality is actually decided.
  • Adversarial cases — injection, abuse, malformed input. Security regressions hide here (you built these instincts in Agentic AI and Securing AI).
  • Failure archive — every real production failure, immortalized as a case. This is the section that makes the set live: your bugs can't recur silently once they're in the eval.
  • 50–200 cases is plenty for a single feature. Coverage of the archetypes beats raw count — a balanced 60 outperforms a lopsided 500.

Sourcing from production (the flywheel)

The best eval cases are the ones that actually broke. The loop: production logs (Module 3) surface a failure → you add it to the golden set with its correct output → the eval now guards against it forever → you fix it → the fix is verified and protected. Every incident is a permanent regression test. Teams that run this flywheel find their eval set converging on exactly the hard cases their users produce; teams that hand-write cases forever keep getting surprised.

Fighting rot

  • Stale expected-outputs. When the feature's correct behavior legitimately changes (a new policy, a new format), the gold answers must change too — or the eval fails correct outputs. Tie the set to a version and review it when behavior changes on purpose.
  • Distribution drift. If production traffic shifts (a new product line, a new user segment) and the set doesn't, your green scorecard describes a system nobody's using anymore. The production-sourcing flywheel is the fix — the set should smell like last month's traffic.
  • Overfitting. Tuning until exactly your cases pass memorizes the set. Holdouts and continuous refresh from production keep it honest.
Eval data is code — treat it that way

Version it (golden/v3.jsonl), review changes to it in PRs (a changed gold answer is a behavior decision worth a second pair of eyes), and never edit it to make a failing run pass — that's deleting the test because the code is broken. The golden set's integrity is the integrity of every number you report.