Evaluation in Production

Offline evaluation tells you whether a change is promising; production tells you whether it actually works. Once your system is serving real users, evaluation becomes continuous: online experiments, guardrail metrics, drift monitoring, and gating deploys on eval scores. This closing post moves evaluation from the lab into the running system and ties the whole series into a working loop.

Everything so far has been mostly offline: fixed datasets, controlled runs, scores you compare before shipping. But a fixed dataset is a snapshot, and reality moves. Real inputs drift, models get updated, and the only place you learn what actually happens is production. This final post covers evaluating a live system — and how offline and online evaluation combine into one continuous discipline.

Why offline isn’t enough

Offline evaluation has an unavoidable gap: your eval set is a model of reality, and models drift out of date. Users ask things you never anticipated; the input distribution shifts as your product and audience change; an underlying model you call gets silently updated by the provider. A system that scored beautifully on last quarter’s eval set can quietly degrade on this quarter’s traffic without a single line of your code changing.

Production evaluation closes this gap by measuring the real thing: actual outputs, on actual inputs, judged by actual outcomes. It’s the other half of the loop introduced in post 1 — offline to develop cheaply and safely, online to confirm against reality.

Online experiments

The core tool for validating a change in production is the controlled experiment. Instead of trusting an offline win, you ship the change to a fraction of traffic and measure:

The through-line: production is where you validate, but you validate carefully, limiting exposure until the evidence is in.

What to measure in production

Production metrics are broader than offline quality scores because you can observe consequences you can’t simulate:

Monitoring for drift

Beyond experiments, a production system needs continuous monitoring, because degradation often arrives without any deploy of yours:

Monitoring turns evaluation from a pre-ship event into an always-on sensor, so you learn about degradation from your dashboards rather than from angry users.

Gating deploys with evals

The bridge back to offline is CI gating: run your eval harness (post 4) automatically on every change to prompts, models, or system code, and block the deploy if the score drops below a threshold or regresses against baseline. This treats evals exactly like tests — a failing eval stops the release. It’s what makes fast iteration safe: you can change prompts and swap models freely because the gate catches regressions before they reach anyone. Pair it with the online tools above and you get defense in depth: CI gating stops known regressions pre-merge, canary rollouts limit unknown ones, and monitoring catches the drift that no deploy caused.

The complete loop

Assembled, the whole series describes one continuous cycle:

  1. Develop offline — define “good” (post 1), pick metrics (post 2), maybe an LLM judge (post 3), against a real dataset in a harness (post 4), aware of what benchmarks do and don’t tell you (post 5) and how contamination and Goodhart’s law corrupt scores (post 6).
  2. Gate on the way out — CI runs the harness and blocks regressions.
  3. Validate online — canary or A/B the change on real traffic, watching quality and guardrail metrics.
  4. Monitor continuously — drift, feedback, and a live judge keep watch.
  5. Feed production back into offline — every real failure, every drifted input, every low-rated output becomes a new eval case, so your dataset keeps pace with reality and your golden set (validated by humans, post 7) stays honest.

That last arrow is what makes the loop a loop: production is not just where you deploy, it’s your richest source of eval data. The systems that stay good are the ones where this cycle spins continuously — offline speed and online truth feeding each other — rather than teams that evaluate once, ship, and hope. Evaluation isn’t a phase you finish. It’s the discipline that, run forever, keeps an AI system trustworthy as the model, the users, and the world all keep changing.

Key takeaways

Further reading

Sources & References

A standard harness for reproducible LLM evaluation