
MLOps
MLOps (Machine Learning Operations) ist ein spezialisiertes Gebiet im Bereich des Machine Learnings. Hierbei geht es darum, wie man Machine-Learning-Modelle in Anwendungen integriert, verwaltet und optimiert. Das Konzept zielt darauf ab, die Effizienz und Skalierbarkeit von ML-Modellen im Produktionsumfeld zu verbessern. Hierfür werden Praktiken aus der Softwareentwicklung, dem Data Engineering und dem Operations Management kombiniert, um eine effektive und effiziente Umsetzung von ML-Projekten zu gewährleisten.
In Abbildung 47 werden die grundlegenden Schritte des MLOps-Prozesses visualisiert. Dieser Prozess wiederholt sich über die komplette Einsatzzeit des ML-Modells.
Planen
Projektziele werden in Anforderungen übersetzt. Verständnis der Kernprobleme, die gelöst werden sollen, sowie Festlegung wichtiger Leistungsmetriken die das ML-Modell erfüllen soll.
Datenmanagement
Datensammlung
Das Sammeln von Daten erfolgt aus verschiedenen Quellen, sowohl intern (z. B. Datenbanken, Logs, interne APIs) als auch extern (z. B. öffentliche Datensätze, Web-Scraping, APIs von Drittanbietern). Dabei ist es wichtig, alle relevanten Quellen zu identifizieren und sicherzustellen, dass die gesammelten Daten die erforderliche Qualität und Relevanz haben.
Datenvorverarbeitung
Die Datenvorverarbeitung ist ein wesentlicher Schritt im maschinellen Lernen, um Rohdaten in eine Form zu bringen, die für ML-Modelle verarbeitet werden können. Dieser Prozess umfasst Schritte wie die Bereinigung, das Auffüllen fehlender Werte oder die Exploration der Daten.
Datenvalidierung
Implementierung von Qualitätskontrollen, um sicherzustellen, dass die Daten korrekt und zuverlässig sind. Dies umfasst Überprüfung auf Konsistenz, Genauigkeit und Vollständigkeit, um die Anforderungen der Analyse oder des Modells zu erfüllen.
Im Datenmanagement des MLOps Prozesses gibt es verschiedene Ansätze, um die oben genannten Schritte, bzw. einzelne Schritte, zu realisieren. Hier werden zwei Ansätze vorgestellt:
Data Versioning bezieht sich auf die Verwaltung von verschiedenen Versionen von Datensätzen, um Reproduzierbarkeit und Nachvollziehbarkeit von Ergebnissen sicherzustellen.
Metadaten-Verfolgung: Speicherung von Informationen wie Zeitstempel, Quelle und Änderungen an den Daten. Dies hilft, den Ursprung und die Historie der Daten nachzuvollziehen und Änderungen zu überwachen.
Rückverfolgbarkeit: Möglichkeit, frühere Versionen der Daten zu finden und zu verstehen, wie sich die Daten im Laufe der Zeit verändert haben. Dies ist wichtig, um die Reproduzierbarkeit von Ergebnissen sicherzustellen und die Auswirkungen von Datenänderungen zu überprüfen.
Feature Storing umfasst die Speicherung und Verwaltung von Features, die aus Rohdaten extrahiert werden, um Konsistenz und Wiederverwendbarkeit sicherzustellen.
Konsistenz: Sicherstellung, dass dieselben Features sowohl in Trainings- als auch in Produktionsumgebungen verwendet werden. Dies gewährleistet eine konsistente Modellleistung und zuverlässige Ergebnisse.
Wiederverwendbarkeit: Möglichkeit, Features für verschiedene Modelle und Experimente wiederzuverwenden, um den Aufwand für die Feature-Entwicklung zu minimieren und die Effizienz zu steigern.
ML-Modellentwicklung
Modellerstellung
Die Modellerstellung ist ein zentraler Schritt der ML-Entwicklung, bei dem basierend auf Anforderungen und Zielen ein Modell entworfen wird. Dieser Schritt umfasst die Auswahl des Algorithmus, die Definition der Modellarchitektur und das Feature-Engineering.
Algorithmenauswahl: Je nach Problemstellung (Klassifikation, Regression, Clustering) wird ein geeigneter Algorithmus gewählt, von linearen Modellen bis zu neuronalen Netzen.
Modellarchitektur: Für komplexe Modelle wie neuronale Netze wird die Architektur spezifiziert, was bspw. Schichtart und -anzahl beinhaltet.
Ziel ist es, ein Modell zu entwickeln, das effizient mit den vorhandenen Daten arbeitet und zuverlässige Vorhersagen ermöglicht.
Modelltraining
Das Trainieren von ML-Modellen erfolgt durch Anpassung der Modellparameter an die vorbereiteten Daten, um Muster zu erkennen und Vorhersagen zu treffen. Ziel ist es, die Fehler zwischen den Vorhersagen und den tatsächlichen Werten zu minimieren.
Modellevaluierung
Modelle werden anhand von Leistungsmetriken wie Genauigkeit, F1-Score oder ROC-AUC bewertet, um zu bestimmen, wie gut sie auf den Testdaten funktionieren. Dies hilft, die beste Modellversion auszuwählen und sicherzustellen, dass sie für die Produktion geeignet ist.
Die beiden Punkte 8 und 9 kommen insbesondere bei TinyML zum Einsatz und sind optional.
Modelloptimierung
Die Modelloptimierung zielt darauf ab, die Effizienz eines ML-Modells zu verbessern, insbesondere für den Einsatz auf ressourcenbeschränkten Geräten wie in TinyML. Dies umfasst Techniken wie:
Quantisierung: Reduzierung der Genauigkeit der Modellparameter (z. B. von 32-Bit auf 8-Bit), um die Modellgröße zu verringern und die Ausführung zu beschleunigen.
Pruning: Entfernen von unwichtigen Modellparametern, um die Komplexität zu reduzieren, ohne die Genauigkeit wesentlich zu beeinträchtigen.
Ziel ist es, das Modell effizienter zu machen, ohne die Leistungsfähigkeit signifikant zu beeinträchtigen.
Modellkonvertierung
Die Modellkonvertierung umfasst die Umwandlung eines trainierten Modells in ein Format, das auf der gewünschten Zielplattform ausgeführt werden kann. Dies ist entscheidend für die Bereitstellung in verschiedenen Umgebungen, wie mobilen oder eingebetteten Systemen.
ONNX: Ermöglicht die Konvertierung zwischen verschiedenen ML-Frameworks.
TensorFlow Lite: Optimiert TensorFlow-Modelle für den Einsatz auf mobilen Geräten.
Core ML: Konvertiert Modelle zur Nutzung auf iOS-Geräten.
Ziel ist es, das Modell kompatibel und effizient für die jeweilige Plattform zu machen.
Im Rahmen der ML-Modellentwicklung im MLOps-Prozess gibt es mehrere Möglichkeiten, die genannten Schritte zu implementieren. Zwei dieser Ansätze werden im Folgenden erläutert:
Model Versioning umfasst die Verwaltung und Nachverfolgung von verschiedenen Versionen von Machine-Learning-Modellen.
Vergleichbarkeit: Möglichkeit, verschiedene Modellversionen zu vergleichen, um festzustellen, welche Version die beste Leistung erzielt. Dies schließt Unterschiede in Modellarchitektur, Hyperparametern und Trainingsdaten ein.
Reproduzierbarkeit: Sicherstellung, dass ein Modell jederzeit erneut trainiert und reproduziert werden kann. Dies ist entscheidend, um konsistente Ergebnisse zu gewährleisten und Änderungen nachzuvollziehen.
Experiment Tracking beinhaltet die Verfolgung von Experimenten, einschließlich Hyperparametern und Ergebnissen, um Reproduzierbarkeit und Vergleichbarkeit sicherzustellen.
Hyperparameter-Verfolgung: Aufzeichnung der verwendeten Hyperparameter und deren Einfluss auf die Modellleistung. Dies ermöglicht die Identifizierung der besten Parameter-Kombinationen.
Ergebnisdokumentation: Dokumentation der Ergebnisse und Erkenntnisse aus den Experimenten, um einen klaren Überblick über durchgeführte Versuche und deren Resultate zu behalten.
Softwareentwicklung
Softwareentwicklung
Integration von ML-Modellen in vollständige Softwarelösungen, einschließlich der Entwicklung von Anwendungen oder Systemen, die die Modelle nutzen, um spezifische Aufgaben zu erfüllen oder Entscheidungen zu treffen.
Bauen
Der Code wird in eine bereitstellbare Form transformiert, z. B. durch Kompilierung, Erstellung von Docker-Containern oder Vorbereitung von Paketen für die Verteilung. Dieser Schritt ist oft Teil des CI-Prozesses (Continuous Integration).
Testen
Durchführung umfassender Tests der Software, um sicherzustellen, dass alle Funktionen korrekt arbeiten. Dies umfasst Unit-Tests, Integrationstests und Systemtests.
In der Softwareentwicklung des MLOps Prozesses gibt es verschiedene Ansätze, um die oben genannten Schritte, bzw. einzelne Schritte, zu realisieren. Hier werden zwei Ansätze vorgestellt:
Continuous Integration/Continuous Deployment (CI/CD) automatisiert die Integration und Bereitstellung von Modellen, um eine effiziente und zuverlässige Implementierung in Produktionsumgebungen zu gewährleisten.
Kontinuierliche Bereitstellung: Automatische Bereitstellung neuer Modellversionen in der Produktionsumgebung ohne manuelle Eingriffe. Dies ermöglicht schnelle und fehlerfreie Aktualisierungen.
Rollback-Mechanismen: Möglichkeit, bei Problemen mit neuen Modellversionen schnell auf frühere Versionen zurückzugreifen, um den Betrieb nicht zu beeinträchtigen.
Automated Testing umfasst das automatisierte Durchführen von Tests für Modelle und Pipelines, um sicherzustellen, dass Änderungen keine unerwarteten Probleme verursachen.
Unit-Tests: Tests einzelner Komponenten und Funktionen des Modells, um sicherzustellen, dass sie wie erwartet arbeiten.
Integrationstests: Tests der Integration verschiedener Komponenten und deren Zusammenarbeit, um sicherzustellen, dass das gesamte System korrekt funktioniert.
End-to-End-Tests: Tests des gesamten Workflows von der Datenerfassung bis zur Modellausgabe, um zu überprüfen, dass der gesamte Prozess reibungslos abläuft.
Betrieb
In der Betriebsphase des Machine-Learning-Lebenszyklus wird sichergestellt, dass ML-Modelle und Anwendungen nach der Bereitstellung in der Produktionsumgebung zuverlässig und effizient funktionieren. Diese Phase umfasst:
Freigabe
Die Software und Modelle werden nach Abschluss der Tests für die Produktion freigegeben. Dazu gehört die Dokumentation von Änderungen, Versionskontrolle und eine abschließende Qualitätsprüfung.
Bereitstellung
Die Modelle und Anwendungen werden mithilfe automatisierter Pipelines in die Produktionsumgebung ausgerollt, um eine nahtlose Integration und minimale Ausfallzeiten zu gewährleisten.
Ausführung
Die Anwendungen und Modelle werden im Produktionsbetrieb überwacht, wobei die Leistung, Auslastung und mögliche Fehler kontinuierlich überprüft werden.
Überwachung
Kontinuierliches Monitoring der Modelle, um Leistungsmetriken zu verfolgen und bei Bedarf Alarme auszulösen.
In Rahmen des Betriebs im MLOps Prozess gibt es verschiedene Ansätze, um die oben genannten Schritte zu realisieren. Hier wird ein Ansatz vorgestellt:
Continuous Monitoring umfasst die Überwachung von Modellen in der Produktionsumgebung, um ihre Leistung zu verfolgen und sicherzustellen, dass sie ordnungsgemäß funktionieren.
Leistungsmetriken: Überwachung von Metriken wie Genauigkeit, Präzision und Recall, um die Modellleistung kontinuierlich zu bewerten.
Drift-Erkennung: Identifikation von Änderungen in den Datenverteilungen, die die Modellleistung beeinträchtigen könnten. Dies hilft, potenzielle Probleme frühzeitig zu erkennen.
Alarmierungssysteme: Einrichtung von Benachrichtigungen und Alarmen, um bei Leistungseinbußen oder Anomalien sofortige Maßnahmen ergreifen zu können.
Mehr erfahren: ML4Devs/MLOps: Machine Learning Life Cycle, mlops-guide/MLOps Guide
Last updated