Files
ki-engineeering/18-qualitaet-in-produktion.md
grok-bot ea82f772ad P1 Welle B: Tippfehler und Term-Align
Tippfehler-Cluster (02–05, 09, 12, 23, 27–28) und Terminologie
(Outcomes 16↔18, Budget 16↔23, prompt_version, Coding-Agent,
fester Workflow). Handoff: Git-Remote, P0/P1A/P1B erledigt,
nächster Slice Faktencheck.
2026-08-02 23:23:17 +02:00

11 KiB
Raw Permalink Blame History

Qualität in Produktion

Offline-Gates sind grün (Kapitel 17). Zwei Wochen Live-Traffic später: mehr Tickets „Antwort hilfreich: nein“, Repair-Rate steigt, niemand hat alarmiert — HTTP war 200, p95 ok, Demo-Set immer noch grün. Die Qualität ist still gekippt.

Produktion ist eine andere Verteilung als euer Golden Set. Wer nur offline misst, steuert blind.

Kern in einem Satz: Online braucht ihr Quality Signals, kontrollierte Ausrollung (Shadow/Canary) und Drift-Bewusstsein — Silent Degradation ist der Default-Failure-Mode, nicht der Edge Case (T3, T9).

Dieses Kapitel ergänzt Offline-Eval um Betrieb der Qualität. Tiefe Tracing-Stacks → Kapitel 22; Kosten/SLO-Design → Kapitel 23; Incidents → Kapitel 25.


Bridge: Klassisches SE → AI Engineering

Klassisches SE Qualität online bei LLMs …
Error rate / Apdex / SLO plus Task Success, refuse-rate, repair-rate, feedback
Canary / progressive delivery Canary auf Qualität und Cost, nicht nur Crash-free
Shadow traffic Shadow: neuer Prompt/Model ohne User-Impact vergleichen
Drift detection (Data/ML) Input-, Retrieval-, Feedback- und Model-Provider-Drift
Synthetic monitoring Golden-Canaries periodisch gegen Prod-Stack
Feature flags Flags pro Capability, Prompt-Version, Model-Pin
Postmortems inkl. „welches Signal fehlte?“ und Gate-Lücken

Die Brücke: Reliability allein reicht nicht. Ein stabiler Endpoint kann zuverlässig Unsinn liefern.


Silent Degradation

Silent Degradation: das System bleibt verfügbar, die semantische Qualität sinkt — ohne roten Error-Spike.

Typische Auslöser

Auslöser Beispiel
Model-/Provider-Update stilles Behavior-Change hinter derselben API-Alias
Prompt/Policy-Änderung Format ok, Grounding schlechter
Index/Corpus-Drift veraltete oder neue Docs, Chunk-Regression
Traffic-Mix-Shift neue Sprache, neuer Channel, Abuse
Tool/API-Downstream leere Felder → Modell füllt mit Halluzination
Budget/Timeout enger mehr Abbrüche als success_degraded ohne Alarm

Warum klassische SRE-Metriken versagen

5xx und Latenz fangen Provider-Ausfälle. Sie fangen nicht: höfliche, falsche Antworten; fehlende Citations; Tool-Wahl-Verschlechterung; „immer sicherer Refuse“ nach Policy-Tuning.

Implikation: Quality Proxies und Outcome-Taxonomy (Kapitel 16) gehören in dieselben Dashboards wie Errors.


Online Metrics und Signale

Must-have Proxies (start small)

Signal Was es grob misst Vorsicht
Explicit feedback Thumbs, Ratings, „report“ Bias, geringe Rate
Task success (instrumentiert) Downstream-Event: Ticket gelöst, Form accepted Definition pflegen
Outcome rates success / success_degraded / refuse / needs_human / error_validation_exhausted … Taxonomy stabil halten (Kap. 16)
Repair / fallback rate Contract- und Model-Stress kann auch strengere Validatoren bedeuten
Citation / grounding fail RAG-Qualität nur wenn gemessen
Human-review reject rate HITL-Queue Gold-Signal bei Gelb/Rot
Judge sample (online) Rubrik auf Sample Kalibrierung, Cost, Privacy

Weak signals (nützlich, nicht allein)

  • regenrieren / umformulieren lassen
  • Session-Abbruch nach AI-Antwort
  • Copy-paste der Antwort in andere Systeme (proxy für Nutzen — vorsichtig)
  • Support-Kontakte mit Tag ai-quality

Was „gut“ ist, steht in der Spec

Online-Metriken ohne Zielkorridor aus der Feature-Spec erzeugen Dashboard-Theater. Definiert: erlaubte refuse-rate, max repair-rate, min task-success — feature-spezifisch, nicht branchenweit erfunden.


Shadow, Canary, Rollback

Shadow

Neuer Prompt/Model/Index verarbeitet Kopien des Traffics (oder Sample); User sieht nur Control.

Pro Contra
Vergleich auf realer Verteilung doppelte Cost; PII/Compliance klären
kein User-Impact Side Effects dürfen nicht doppelt feuern
gut vor riskanten Switches Tool-Writes: shadow read-only oder dry-run

Shadow braucht denselben redaction- und retention-Rahmen wie Prod-Logs (Kapitel 20).

Canary

Kleiner Live-Anteil auf Treatment (z. B. 1–5–25–100 %).

Stop-the-line Kriterien (Beispiele — Schwellen feature-spezifisch):

  • Task-success oder Human-reject verschlechtert sich über Δ
  • Safety-Violation > 0 in kritischer Klasse
  • Cost/Latency außerhalb Envelope
  • repair_rate / fallback_rate explodiert

Rollback

Rollback ist First-Class: Prompt-Version, Model-Pin, Index-Version, Policy-Flag einzeln oder als Bundle zurück. Wenn Rollback 2 Stunden dauert, ist euer Versionierungskonzept kaputt (T9).

Offline green → Shadow compare → Canary with quality gates → Promote / Rollback

Drift: was sich verschiebt

Drift-Art Symptom Hebel
Input / Traffic neue Sprachen, längere Tickets, neue Intents Slices, Routing, Prompt-Scope
Retrieval / Data schlechtere Treffer, veraltete Policies Index-Pipeline, freshness, eval slice
Model / Provider Format, Tool-Wahl, Stil ändert sich pin, canary, contract tests
Feedback User erwarten plötzlich mehr Spec und UX ehrlich halten
Policy strengere Guardrails → mehr Refuse Produktentscheid, nicht nur „Qualität runter“

Detection (pragmatisch)

  1. Golden Canaries: fester Mini-Set periodisch gegen Prod (synthetic).
  2. Slice-Dashboards: Qualität und Outcomes nach Channel/Locale/Intent.
  3. Distribution checks: Input-Länge, language, retrieval hit-rate, tool error mix.
  4. Baseline windows: vergleiche diese Woche vs. last green canary, nicht nur vs. „gefühlt“.

Kein Anspruch auf Research-Grade Drift-Detektoren — sichtbare Deltas und Owner, die reagieren.


Feedback-Loops schließen

Prod traffic → signals → triage → Golden Set / Prompt / Policy / Model
                 ↓
            Alert / Review queue
Loop Rhythmus
Alert auf Quality-Drop near-real-time / hourly je nach Volume
Sample-Review (Mensch) täglich/wöchentlich je Risiko
Golden-Set-Erweiterung aus Prod sprintlich, mit Label-Review
Model/Prompt-Experiment Canary-Prozess, nicht Hotfix im Prod-Prompt

Wichtig: Feedback ist biased (Unzufriedene klicken eher). Kombiniert explizite Signale mit instrumentiertem Task Success und synthetischen Canaries.


Patterns und Trade-offs

Pattern: Outcome taxonomy everywhere

Jeder Request endet in einem bekannten Outcome — UX, Metrics, Alerting teilen dasselbe Vokabular (Kapitel 16).

Trade-off: Disziplin im Code; Silent Müll wird sichtbar.

Pattern: Quality burn rate

„Wie schnell verbrauchen wir Vertrauen?“ — z. B. negative feedback pro 1000 sessions, human rejects pro Tag. Frühwarnung vor dem Ticketsturm.

Trade-off: Metrik muss zur UX passen; sonst Gaming.

Pattern: Paired control in canary

Nicht nur Treatment-Metrics: immer Delta zu Control im selben Zeitfenster (A/B oder time-sliced).

Trade-off: Traffic-Splitting-Komplexität; belastbarere Entscheidungen.

Pattern: Read-only shadow for tools

Shadow darf Tools lesen/simulieren, Writes nur im Control-Pfad.

Trade-off: Shadow unvollständig bei Write-lastigen Flows; dafür sicher.

Decision Frame: Alert jetzt oder abwarten?

Signal Tendenz
Safety / leakage / tool abuse sofort incident
Task success −Δ über Schwelle canary halt / rollback
repair_rate ↑ nach Model-Change untersuchen, oft rollback
einzelner viraler Bad Case sample + repro; nicht immer global rollback
nur Thumbs bei n<30 warten oder mehr Sample, nicht blinde Panik

Trade-off: viele Online-Judges vs. wenige harte Proxies

Viele Judges Wenige Proxies
teuer, privacy-sensibel günstig, stabil
semantisch reich grob, aber actionable
Drift des Judges weniger Magie

Start: Outcomes + task events + gezieltes Human-Sample. Judge online erst mit Kalibrierung und Budget.


Anti-Patterns

Anti-Pattern Symptom Besser
Offline-only confidence Prod unmonitored Online proxies + canaries
HTTP-green = quality-green 200 mit Unsinn Outcome + task metrics
Big-bang model swap Alias auf neu, beten Shadow → Canary → pin
Canary only on errors Qualität kippt unbemerkt Quality stop rules
Dashboard without owner niemand reagiert named On-Call + Runbook
Feedback as only truth Bias, low n multi-signal
Hotfix prompt in prod keine Version, kein Gate Version + Mini-eval
Ignore degraded outcomes alles „success“ Taxonomy ehrlich
Shadow with side effects Doppelbuchungen dry-run / read-only
Alert fatigue alle Schwellen rot wenige, spez-gekoppelte Alerts

Production Notes

Cost. Shadow verdoppelt Model-Kosten auf dem Sample; Online-Judge und langes Logging fressen Budget. Sample-Raten und Retention bewusst setzen (T7). Quality-Incidents sind auch Cost-Incidents (Support, Rollback, Trust).

Latency. Canary und Metrics-Pipelines dürfen p95 der User-Path nicht spoilieren: async feedback, async judge. Synthetic canaries getrennt schedulen.

Observability. Quality Signals in denselben Traces: outcome, versions, retrieval hit, tool errors, feedback id (observability-minimum.md). Ohne Versionsfelder sind Drift-Postmortems Spekulation (Kapitel 22).

Security. User-Feedback und gespeicherte Outputs können Angriffe und PII enthalten. Redaction, Zugriff, keine automatische Übernahme von User-Text in Prompts ohne Review (Kapitel 19, Kapitel 20).

Lifecycle. Jede Promotion endet mit beobachteter Online-Stabilität, nicht mit grünem Offline-Run allein (T9). Owner für Quality-Dashboard und Canary-Gates (T10). Runbook: was bei Quality-Drop zuerst passiert (templates/incident-runbook-ai.md).


Key Takeaways

  • Silent Degradation ist der Normalfall ohne Quality Signals.
  • Online: Outcomes, Task Success, Feedback, Repair/Fallback — neben Errors und Latency.
  • Shadow → Canary → Promote/Rollback gilt für Model, Prompt, Index, Policy.
  • Drift kommt von Traffic, Daten, Modell und Policy — Slices und Canaries machen ihn sichtbar.
  • Feedback-Loops füttern Golden Sets; Offline und Online sind ein System (T3).
  • Wenige spez-gekoppelte Alerts schlagen Dashboard-Friedhöfe.

Praktische nächste Schritte

  1. Definiert 3–5 Online-Proxies für eure Top-Capability inkl. Alarm-Schwellen aus der Spec.
  2. Stellt Outcome-Taxonomy in Prod-Logs sicher und dashboarded Raten.
  3. Richtet einen Golden-Canary (synthetic) gegen den Prod-Stack ein.
  4. Schreibt Canary-Stop-Regeln vor dem nächsten Model-Wechsel.
  5. Plant den Feedback→Golden-Set-Prozess (wer labelt, wie oft).
  6. Security-Fläche der laufenden Systeme: Security und Safety.