How do you detect quality drift in a production LLM system without ground-truth labels?
In a deployed LLM system, ground-truth labels are not available in real time. What proxy signals and techniques can you use to detect quality drift, and what are the limitations of each?
Split drift into three sources: input drift (distance tests on the query stream), model drift (a frozen canary re-judged on a pinned judge), and judge drift. Live proxies catch the rest, but they lag and conflate causes.
Imagine running a kitchen where you never get to taste the food after it leaves. You cannot grade every plate, so you watch for clues. Are customers sending plates back more often (feedback)? Are they asking the waiter to fix things (follow-ups)? Then once a week you cook ten fixed recipes yourself and grade them against your own notes, so you can compare this week to last week fairly (the canary set). You also watch who walks in: if a tour bus of new customers arrives ordering dishes you rarely make, that is a different kind of change than your cooking getting worse. Separating who changed from what changed from who is grading is the whole game.
Detailed answer & concept explanation~8 min readEverything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example.
Everything important, quickly.
6 min: why labels are missing, the three drift sources (input via PSI/KL, model via frozen canary, judge via version pinning), live proxy signals and their limits, and the triangulation pattern that ties them together.
Real products, models, and research that use this idea.
- Arize and Fiddler ship embedding-drift monitors that compute PSI and KL on production query distributions against a baseline window.
- LangSmith and Langfuse run scheduled canary eval sets through a pinned LLM judge and chart score over time for regression alerts.
- RAGAS faithfulness on a frozen canary set is a common rolling check to catch retrieval or model drift in deployed RAG features.
- Evidently AI provides out of the box PSI and population-distance reports for monitoring feature and embedding drift in production.
- Teams pin judge versions to a specific Claude Opus 4.7 or GPT-5.5 snapshot so a silent vendor model rotation does not corrupt the canary baseline.
What an interviewer would ask next. Try answering before peeking at the approach.
QWhy prefer PSI over KL divergence for input drift on a deployed query stream?
QHow do you separate a real model regression on the canary from judge variance?
Don't say thisRed flags and common mistakes that signal junior thinking. Click to expand.
Red flags and common mistakes that signal junior thinking. Click to expand.
Conflating input drift, model drift, and judge drift into one dashboard line. A score drop can mean users changed, the model changed, or the judge version changed, and the fix differs for each.
The night-before-the-interview bullets. Scan these on the way to the call.
Primary sources. Skim if you want the original framing.
Same topic, related formats. Practice these next.