MLOps
Was zwischen einem funktionierenden Notebook und einem verlässlichen Betrieb liegt: Versionierung, Überwachung, Drift, Rollback und Nachweisführung.
Die Idee
Ein Modell zu trainieren ist ein Experiment. Ein Modell zu betreiben ist eine Zusage: dass es morgen noch dasselbe tut, dass jemand zuständig ist und dass man belegen kann, was es wann getan hat.
Die vier Fragen
| Frage | Antwort im Betrieb |
|---|---|
| Welches Modell läuft gerade? | Modellregister mit Version und Prüfsumme |
| Woraus wurde es gebaut? | Daten-, Code- und Konfigurationsstand |
| Wie gut ist es heute? | Laufende Messung gegen einen festen Satz |
| Was tun wir, wenn es schlechter wird? | Auslöser, Rollback, Zuständigkeit |
Drift erkennen
| Art | Was sich ändert | Wie messbar |
|---|---|---|
| Datendrift | Die Eingaben | Verteilungsvergleich je Merkmal |
| Konzeptdrift | Der Zusammenhang | Nur mit verzögerten Etiketten |
| Etikettendrift | Die Klassenverteilung | Anteile über die Zeit |
| Vorhersagedrift | Die Ausgaben | Verteilung der Modellausgaben |
Die vierte Zeile ist die einzige, die sofort verfügbar ist, und deshalb der praktische Einstieg: Eine Verschiebung der Ausgabeverteilung ist ein Frühwarnsignal, lange bevor Etiketten vorliegen.
import numpy as np
def psi(erwartet, beobachtet, bins=10):
"""Population Stability Index. Ueber 0,2 gilt als deutliche Verschiebung."""
grenzen = np.percentile(erwartet, np.linspace(0, 100, bins + 1))
grenzen[0], grenzen[-1] = -np.inf, np.inf
e = np.histogram(erwartet, bins=grenzen)[0] / len(erwartet)
b = np.histogram(beobachtet, bins=grenzen)[0] / len(beobachtet)
e, b = np.clip(e, 1e-6, None), np.clip(b, 1e-6, None)
return float(((b - e) * np.log(b / e)).sum())- PSI unter 0,1: unauffällig. 0,1 bis 0,2: beobachten. Über 0,2: prüfen.
- Nicht nur Merkmale überwachen, sondern auch den Anteil fehlender Werte je Spalte.
- Einen Schattenbetrieb fahren, bevor ein neues Modell scharf geschaltet wird.
Was ein Lauf reproduzierbar macht
- Daten: Momentaufnahme mit Prüfsumme, nicht nur ein Pfad. Ein Verzeichnis ändert sich.
- Code: Commit-Kennung, nicht Branch-Name.
- Umgebung: Abbildkennung des Containers, nicht die Liste der Pakete.
- Konfiguration: Vollständig, einschließlich Startwerten.
- Ergebnis: Modellprüfsumme und Metriken auf einem festen Bewertungssatz.
Diese fünf Angaben sind gleichzeitig das, was die technische Dokumentation nach Anhang IV AI Act für Hochrisikosysteme verlangt. Wer sie ohnehin führt, hat den größten Teil dieser Pflicht erfüllt, siehe Audit vorbereiten.
Der Rollback
Ein Rollback ist erst dann eine Option, wenn drei Bedingungen erfüllt sind:
- 01
Die vorige Version ist verfügbar
Nicht nur die Gewichte, sondern die vollständige Bedienumgebung.
- 02
Die Schnittstelle ist verträglich
Ein Rollback scheitert regelmäßig daran, dass sich das Ausgabeformat geändert hat und nachgelagerte Systeme das neue erwarten.
- 03
Er wurde geprobt
Mit gemessener Dauer. Ein ungeprobter Rollback dauert im Ernstfall erfahrungsgemäß dreimal so lange wie geschätzt.
Die Kennzahlen, die im Betrieb wirklich gelesen werden
| Kennzahl | Warum |
|---|---|
| Anteil abgelehnter oder eskalierter Fälle | Frühwarnsignal, sofort verfügbar |
| Zeit bis zum ersten Token, 95. Perzentil | Nutzerempfinden, nicht der Mittelwert |
| Anteil der Antworten mit Beleg | Bei RAG die entscheidende Größe |
| Korrekturquote durch Menschen | Der ehrlichste Gütewert, den es gibt |
| Kosten je erledigtem Vorgang | Die einzige Zahl, die der Fachbereich vergleicht |
Die vierte Zeile ist die wertvollste und wird am seltensten erhoben: Wenn ein Mensch das Ergebnis ohnehin prüft, ist seine Korrektur ein kostenloses Etikett. Wer diese Korrekturen systematisch sammelt, hat nach einem halben Jahr einen Datensatz, den kein Anbieter liefern kann.