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.