Deployment & Monitoring Flashcards
Was sind Ensemble Deployments?
Mehrere Modelle müssen bereitgestellt werden.
Nenne 4 verschiedene Model Deployment Varianten
Nenne zwei verschiedene Deployment Strategien
- Model Service (RestAPI)
- Model Embedding (Encode Model and Ship it with Software)
Beschreibe Best-Practice für Model-Service Deployment
Future-Proof
- Sehe Erweiterungen voraus
- Entscheide weise zwischen strikten, domain-spezifischen und flexiblen Datentypen
- Nutze API Versionierung für bestimmte Modelle (A/B, Shadow, …)
- Biete versch. Modelle für versch. Regionen an
Sei robust und skalierbar
- Redundante Server und Load-Balancer vs Infrastruktur Kosten
- Error Handling und Logging (Vermeide zu viel Telemetry Data)
Warum sind einfache Webservice nicht immer geeignet als ML API?
Weil sie nicht performant genug sind.
Nutze Directed-Acyclic-Graph Ensemble Models, welche den Nachteil von hoher Komplexität und schwieriger Ausführung haben.
Gehe auf die potenziellen Frameworks für Model-Serving ein. Welche sind einfach zu entwickeln, welche sind produktions-ready? Was sind Vor- und Nachteile
Was ist das Ziel von Embedding Models im Kontext von Model Serving?
Nenne 5 Vorteile
Approach: Verwendung bibliotheksspezifischer Funktionen, um das Modell in ein optimiertes Modell umzuwandeln, das Accuracy gegen Size und Inference Time eintauscht
Vorteile:
- Latenzzeit (kein Hin- und Rückweg zum Server)
- Datenschutz (Daten bleiben auf dem Gerät)
- Konnektivität (keine Internetverbindung zur Verarbeitung einer Abfrage erforderlich)
- Minimale Ressourcen (Binär- und Speichermodellgröße optimiert für ressourcenbeschränkte Systeme)
- Energieverbrauch (Effizienz geht vor Genauigkeit; keine Kommunikation erforderlich)
Beschreibe kurz und knapp die Vorgehensweise und das Ziel von ONNX, Tensorflow Lite bzw. SKompiler
Ziel: performant embedding models
Nutzen SymPy Expressions (SKompiler) bzw. ein Open-Standard Format, welches zum Laden und für Inference eines Models sorgt.
Was sind Probleme beim Pruning innerhalb TF Lite bzw. Pytorch Mobile?
Minority Klassen fallen runter
Nenne 5 Ziele beim Monitoring
- Ermöglichung des Flywheels der kontinuierlichen Selbstverbesserung des KI-Systems
- Vermeiden oder Erkennen von System- und KI-Fehlern
- Vermeidung von Modellverschlechterungen durch Erkennung von Daten- und Modellverschiebungen
- Einhaltung von SLAs durch Überwachung nicht-funktionaler Eigenschaften des Systems (Telemetrie)
- Erlangung eines allgemeinen Gesundheitszustands des Systems
Was tun, wenn während der Inferenz die Features für die Prediction katastrophale Werte haben? Wie kann man dagegen Vorsichtsmaßnahmen treffen?
- Mehrere Modelle parallel einsetzen, um das Versagen eines einzelnen Modells zu vermeiden
- Es gibt Whitelists und Schwellenwerte, um bestimmte Probleme mit Merkmalen (z. B. fälschlicherweise blockierte IPs) zu überschreiben.
- Einfache Regeln, Richtlinien und Heuristiken, um ML-Modelle zu ignorieren
Policy-Layer (Postprocessing):
- Filterung der ML-Ausgabe auf unerwünschtes Verhalten (z. B. Filter für schlechte Wörter)
Schutz vor Überschneidungen:
- Definieren Sie sinnvolle Datenbereiche und prüfen Sie auf diese Bereiche
Welche drei Kategorien von Metriken sollten überwacht werden? Nenne jeweils Beispiele
Model metrics
- Prediction distributions
- Feature distributions
- Evaluation metrics (when ground truth is available)
System metrics
- Request throughput
- Error rate
- Request latencies
- Request body size
- Response body size
Resource metrics
- CPU utilization
- Memory utilization
- Network data transfer
- Disk I/O
Nenne Beispiele für Überprüfungen von ML Features im Monitoring. Nenne 2 Tools zur Vereinfachung
- Überprüfe Relationen (f1 < f2)
- Schemas
- Min/Max, …
- Regex
- ….
Tools:
- GreatExpectations
- Pydantic Validators
Definiere Covariate Shift (bzw. Data Drift)
P(X) ändert sich
P(Y|X) bleibt gleich
Verteilung der Anfragen ändert sich.
Verteilung der Antworten basierend auf der Anfrage bleibt gleich.
Definiere Label Shift
P(Y) ändert sich
P(X|Y) bleibt gleich
Die Verteilung der Antwortmöglichkeiten (Labels) ändet sich.
Die Verteilung der Antworten basierend auf der Anfrage bleibt gleich.
Definiere Concept Drift
P(X) bleibt gleich
P(Y|X) ändert sich
Das gelernte Mapping passt nicht mehr.
Nenne Ursache für Data Drift / Covariate Shift
- Systematisch: unterschiedliche Umgebungen, unterschiedliche Datenquellen, unterschiedliche Vorverarbeitung (z. B. synthetisierte Sprachproben vs. echte)
- Zeit: Eigenschaften, Annahmen, Präferenzen usw. haben sich seit dem Training geändert
-
Auswahl: Verzerrte und voreingenommene Trainingsdaten, die nicht der realen Datenverteilung entsprechen (z. B. gekaufte Daten aus einem anderen
Land) - Zufällig: Zufällige Effekte, die beim Training nicht berücksichtigt wurden; Rauschen in realen Daten im Vergleich zu einer sauberen Laborumgebung
Nenne ein Beispiel für Label Drift
Kaufverhalten in einem Online-Shop: Die Vorhersagen eines Modells, welches Kunden in „Kauf“ oder „Nicht-Kauf“ kategorisiert, könnten durch saisonale Trends beeinflusst werden. Beispielsweise ändern sich die Kaufpräferenzen während der Weihnachtszeit, was zu einem häufigeren “Kauf”-Label führt als in anderen Jahreszeiten.
Krankheitsdiagnosen in einem Krankenhaus: Ein Modell, das verwendet wird, um Krankheiten basierend auf Symptomen zu diagnostizieren, könnte einen Label Drift erfahren, wenn neue Krankheiten (wie COVID-19) auftreten, wodurch sich die Häufigkeit bestimmter Diagnosen verschiebt.
Nenne Beispiele für Concept Shift und wie man dies erkennt.
inflation, sudden unemployment rate, catastrophic events
Monitoring Verfall der Accuracy
Relabeling & Retraining einzige Wahl
Was sind 3 Herausforderungen bei der Flywheel Methode?
- Long Time Delay zwischen Prediction und Feedback
- Benötigt Cache und Identifier von Predictions
Außerdem:
Degeneration of Flywheel Performance -> Feedback zwingt Nutzer in gewisse Richtungen zu gehen (s. Spotify und Mainstream Music Recommendations)
Nenne 2 Gegenmaßnahmen zum Flywheel Degeneration Problem
- Beobache Feature Importance
- Empfehle ab und zu random oder mit Heuristiken
Nenne drei Tools zum Monitoren
- ElasticSearch (search- and analysis engine)
- Logstash (data processing pipeline)
- Kibana (visualization of data)