How Do You Monitor LLMs in Production for Drift and Hallucinations in 2027?
You monitor an LLM in production by recording every prompt and response as a trace, scoring a sample of live traffic with automated evaluators, watching input and output distributions for change, and putting humans and user feedback behind the automation. Then you alert when a score or distribution crosses a threshold you set from your own baseline.
In practice that is five habits: log full traces with the model version and prompt version attached; run groundedness (faithfulness) checks, LLM-as-judge scoring and reference tests on a sample; track drift in the questions users ask and the answers the model gives; collect thumbs and human review on the cases the automation is unsure about; and page someone when a metric moves.
No source used here publishes a universal alert threshold or a typical hallucination rate for production traffic, so none is given. The one hallucination figure on this page names its source, model and test, and it does not predict your app. Set thresholds from your own baseline.
What drift means for an LLM
Classic model monitoring watches for a model going stale as the world changes. LLM apps have more moving parts, and any of them can shift behavior without a code change.
- Input drift. Users start asking different things, in different lengths and languages, or a new product launch changes the mix of questions. The model is unchanged but it now faces data it was never checked on.
- Prompt and context drift. Someone edits a system prompt, a retrieval index is re-built, or documents in your knowledge base are added or go stale. The answers change because the context changed.
- Model version drift. The provider updates the model behind an endpoint. In a widely cited study, Chen, Zaharia and Zou compared the March and June 2023 versions of GPT-3.5 and GPT-4 and found that the behavior of the same LLM service can change substantially in a relatively short time. GPT-4's accuracy at identifying prime numbers fell from 84% in March to 51% in June, which they partly tie to weaker instruction following. That is one test on one task, not a rate for every model, but it is why they conclude LLM services need continuous monitoring.
- Output drift. Answers get longer, more hedged, more likely to refuse, or less grounded, even though no single response looks broken.
You can remove part of the model-version risk by pinning. Anthropic's models overview states that every Claude model ID is a pinned snapshot and publishes a retirement commitment per model. Check what your own provider promises about aliases and retirement, and record the exact model ID on every trace so a behavior change can be matched to a version change.
Log everything first: traces and logs
You cannot evaluate what you did not record. Langfuse's observability docs describe tracing as structured logs of every request that capture the exact prompt sent, the model's response, token usage and latency, including tool and retrieval steps. Store alongside each trace: the model ID, prompt template version, retrieved document IDs, any user or session identifier your privacy policy allows, and the final user feedback if any.
Prompts and answers often contain personal data. Decide what is stored, who can read it, and how long it is kept before you turn full-content logging on.
Detect hallucinations: groundedness, self-consistency and citations
No single detector catches every hallucination. The survey by Huang and colleagues lays out a taxonomy of hallucination, its causes, detection methods and mitigations, including the limits of retrieval-augmented generation. In production, three families of checks are common.
- Groundedness against retrieved context (RAG apps). The Ragas paper proposes reference-free evaluation of RAG pipelines that does not need ground-truth human annotations. Its faithfulness metric lists the claims in a response, checks each against the retrieved context and divides supported claims by total claims, giving a score from 0 to 1. In the docs example, a response with two claims where one is unsupported scores 0.5.
- Self-consistency across samples. SelfCheckGPT is a zero-resource, black-box method: it samples several answers and checks whether they agree, on the idea that facts the model knows stay consistent while hallucinated facts diverge. The authors tested it on GPT-3 passages about people from the WikiBio dataset. It costs extra model calls, so it suits sampled or high-risk traffic.
- Citation checks. If your app cites sources, check that each cited passage actually supports the claim. The ALCE benchmark defines automatic metrics for fluency, correctness and citation quality, and reports that even the strongest models tested on the ELI5 dataset lack complete citation support 50% of the time. Treat a citation as a claim to verify, not as proof.
For a sense of scale, Vectara's public hallucination leaderboard scores how often models introduce unsupported content when summarizing documents, using its HHEM-2.3 evaluation model on a non-public dataset of over 7,700 articles. As last updated on October 16, 2026, it lists openai/gpt-5.4-nano-2026-03-17 at a 3.1% hallucination rate. That is a summarization test on one vendor's dataset and judge, so it says little about your prompts, your documents or your users. Measure your own.
Run automated evals on live traffic
Evaluation has two modes. LangSmith's evaluation docs separate offline evaluations on curated datasets with reference outputs from online evaluations on real production traces without reference outputs. Langfuse says the same split: evaluation happens both online on live traces and offline before you ship a change.
That gives you a practical stack for production, where there is usually no answer key:
- Code checks. Deterministic rules such as non-empty output, valid JSON, a banned-phrase list or a required disclaimer. LangSmith describes code evaluators as deterministic, rule-based functions. They are cheap enough to run on every trace.
- LLM-as-judge. A second model scores helpfulness, tone, groundedness or policy compliance against criteria in a prompt. Langfuse lists scoring live production traces this way, and also lists checking that the judge agrees with human labels.
- Reference tests. Replay a fixed set of questions with known good answers against the live model on a schedule, so a silent model change shows up as a score change. This is the offline mode run continuously.
- Pairwise comparison. LangSmith describes pairwise evaluators that compare outputs from two application versions, useful when comparing is easier than scoring.
Watch input and output distributions
Drift detection compares a recent window of traffic with a reference window. For text you track features rather than raw words: prompt length, response length, refusal rate, language mix, topic or embedding clusters, retrieval hit counts, and the evaluator scores above. Evidently's docs describe comparing distributions between two datasets, for example to detect text length drift, and its overview says the library offers 20+ tests and distance metrics to detect distribution drift.
A drift alert is a prompt to look, not a verdict. Traffic shifts for good reasons such as a marketing campaign. The question to answer is whether quality scores moved with the inputs.
Tooling: what each option documents
The tools overlap. Pick on where your data can live, how you instrument, and which evaluators you need. For a ranked comparison of vendors, see our list of the best AI model monitoring tools.
- OpenTelemetry GenAI conventions. The GenAI semantic conventions repository describes itself as semantic conventions for generative AI, including spans, metrics and events for GenAI clients. Using a shared vocabulary lets you send the same traces to different backends. The repository page itself shows no explicit stability status, so check it before you depend on specific attribute names.
- Langfuse. Langfuse documents tracing, online and offline evaluation, LLM-as-a-judge on live traces, user feedback, manual annotation queues and custom scores, and says it is open source and can be self-hosted.
- Arize Phoenix. Phoenix accepts traces over OpenTelemetry (OTLP), is powered by OpenInference instrumentation, and scores traces and spans with LLM-based evaluators, code-based checks or human labels. Its docs list Ragas, DeepEval and Cleanlab integrations but do not name a hallucination evaluator.
- LangSmith. LangSmith documents human, code, LLM-as-judge and pairwise evaluators, run offline on datasets or online on production traces.
- Evidently. Evidently is an open-source Python library to evaluate, test and monitor AI systems with 100+ built-in metrics and checks, covering data drift and text and LLM evaluations including custom LLM judges.
- WhyLabs. The company has ended operations, according to its site, which says the complete platform has been open sourced. The whylogs and LangKit projects remain as open source, so treat WhyLabs as a self-hosted option rather than a vendor to buy from.
Metrics to track
Keep the dashboard short enough that someone reads it. Group metrics so each answers one question:
- Quality. Groundedness or faithfulness score, judge scores, share of answers with a supported citation, reference-test pass rate.
- Behavior. Refusal rate, response length, format-error rate, tool-call failure rate, retrieval-empty rate.
- Drift. Distribution distance for input and output features against your reference window, split by model version and prompt version.
- User signal. Thumbs up and down, regenerations, escalations to a human, complaints.
- Operations. Latency, token usage, error rate and cost per request, which the trace records already. For latency causes, see what causes high LLM inference latency.
Humans and feedback loops
Automated scores are a filter; people are the ground truth. Route low-scoring, high-risk and randomly sampled traces to a review queue (Langfuse documents annotation queues for rating traces manually, and LangSmith describes human evaluation as manual review of outputs and traces). Feed what reviewers find back into your reference test set, so each incident becomes a permanent regression test.
Collect end-user feedback in the product, and treat silence carefully: most users never click a thumb. Use feedback to find problems, not as an unbiased quality rate.
Alerting and incident response
Alert on change from your own baseline, not on a number copied from a blog post. Common patterns are a rolling average of a quality score dropping below a floor, a spike in refusals or format errors, a drift distance beyond a bound agreed with the team, and a jump in negative feedback. Keep the page-someone alerts few and send the rest to a daily review.
- Detect. Alert fires with a link to the affected traces.
- Triage. Compare model ID, prompt version, retrieval index version and input mix against the last good window to find what changed.
- Mitigate. Roll back the prompt or index, switch to a pinned earlier model if the provider still offers it, add a guardrail, or route the affected topic to a human.
- Learn. Add the failing cases to the reference tests and adjust the evaluator or threshold that missed it.
If the serving layer runs on Kubernetes, put model and prompt versions in your deployment records so rollbacks are traceable. See the role of Kubernetes in AI infrastructure for that side.
Limits: judges and detectors also err
An LLM judge is a model with its own failure modes. Zheng and colleagues found that strong judges like GPT-4 reach over 80% agreement with human preferences, the same level humans reach with each other, but they also document position bias, verbosity bias, self-enhancement bias and limited reasoning ability. Agreement on their benchmark does not guarantee agreement on your task.
- Calibrate the judge. Compare it with human labels on a sample from your own traffic and re-check when you change the judge model.
- Use a different model family for judging when you can, since the paper reports self-enhancement bias, where a judge favors its own outputs.
- Do not trust a single score. A response can be faithful to a bad retrieved passage, or cite a real source that does not say what is claimed.
- Expect blind spots. Self-consistency checks can miss errors a model repeats confidently, and groundedness checks only cover claims the context speaks to.
- Judge versions drift too. Pin the judge model and prompt, and keep a fixed human-labeled set to detect when the judge itself changes.
Questions people ask
What is the minimum monitoring setup for an LLM app?
Log every prompt and response as a trace with the model ID and prompt version, add a few cheap code checks on every trace, score a sample with an LLM judge or a groundedness check, and collect user feedback. Then alert on changes against your own baseline.
How do I detect hallucinations in a RAG app?
Check groundedness: break the answer into claims and test each against the retrieved context, as the Ragas faithfulness metric does, and verify that cited passages support the claims. No detector is complete, so add human review of a sample.
How do I know if the model provider changed behavior on me?
Run a fixed reference set on a schedule and record the model ID on every trace. Chen, Zaharia and Zou showed that the same service can change substantially over a few months, so a score change on a fixed set is a useful early signal.
What hallucination rate should I expect or alert on?
No source used here gives a universal rate or threshold. Vectara's leaderboard reports 3.1% for openai/gpt-5.4-nano-2026-03-17 on its non-public document-summarization test with HHEM-2.3, as last updated on October 16, 2026, which does not transfer to other tasks. Measure a baseline on your own traffic and alert on movement from it.
Can I trust an LLM to judge another LLM?
Partly. Strong judges reached over 80% agreement with human preferences in the MT-Bench study, but judges show position, verbosity and self-enhancement bias. Calibrate against human labels on your own data and keep humans in the loop.
Is WhyLabs still an option?
Its site says the company is discontinuing operations and that the platform has been open sourced. The open source whylogs and LangKit projects continue, so it is a self-hosted choice, not a vendor relationship.
Sources
- How is ChatGPT's behavior changing over time? (Chen, Zaharia, Zou) · Model version drift between March and June 2023
- SelfCheckGPT (arXiv 2303.08896) · Sampling-based hallucination detection
- Ragas paper (arXiv 2309.15217) · Reference-free RAG evaluation
- Ragas docs: Faithfulness · How the faithfulness score is computed
- Enabling LLMs to Generate Text with Citations (ALCE) · Citation quality benchmark and finding
- A Survey on Hallucination in LLMs (Huang et al.) · Taxonomy, detection and mitigation
- Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena · Judge agreement and biases
- Vectara hallucination leaderboard · Summarization hallucination rates, HHEM-2.3
- OpenTelemetry GenAI semantic conventions · Spans, metrics and events for GenAI clients
- Langfuse docs: Observability overview · What tracing captures
- Langfuse docs: Evaluation overview · Online and offline evaluation methods
- Arize Phoenix docs · OTLP tracing and evaluators
- LangSmith docs: Evaluation concepts · Offline vs online evaluation, evaluator types
- Evidently docs: Overview · Metrics and drift tests
- Evidently docs: Descriptors · LLM-judge descriptors and text length drift
- WhyLabs · Shutdown and open-sourcing notice
- Anthropic models overview · Pinned snapshots and retirement commitments
Facts were read from the linked pages on October 20, 2026. Studies are the authors' own, on the models and tests named; tools and vendor status change. No threshold here is a standard: baseline your own traffic first.
Top photo: Carl Lender / CC BY 2.0 via Wikimedia Commons