Machine Learning Lifecycle: Hintergründe, Herausforderungen & Potenziale
Die Entwicklung von Machine-Learning-Modellen ist ein wichtiger Bestandteil beim Aufbau von datengetriebenen Prozessen und Anwendungen. Die dafür benötigte kollaborative Entwicklung sowie der produktive Einsatz von Machine-Learning-Modellen stellen große Herausforderungen dar. Wohingegen Data Scientists vor einigen Jahren ML-Modelle in ihren eigenen Umgebungen entwickelt haben und es wenige etablierte Deployment-Optionen für Modelle gab, werden heutzutage Modelle in großen Teams kollaborativ entwickelt und stellen nach ihrem Deployment in vielen Fällen relevante Komponenten in kritischen Geschäftsprozessen dar. Umso wichtiger ist es also, dass bei der Entwicklung und beim Deployment von ML-Modellen standardisierte und gegenüber Fehlern robuste Arbeitsweisen und Tools eingesetzt werden. Ein Konzept, um die Entwicklung und den Einsatz von Modellen abzubilden und zu organisieren, ist der Machine Learning Lifecycle. Dieser stellt die Phasen dar, die ein ML-Modell während seiner Entwicklung und Nutzung durchläuft. Das Konzept des Machine-Learning-Lifecycles ermöglicht es, die Phasen separat zu betrachten und für jede Phase mögliche Herausforderungen sowie notwendige Arbeitsschritte zu identifizieren.
Ein Überblick
Es gibt zwar kein allgemeingültiges Standardmodell, das die Phasen des Machine Learning Lifecycles abbildet, jedoch beinhaltet der Lebenszyklus eines Modells in den meisten Fällen die folgenden vier Phasen: Development, Staging, Production, Retired. In der Development-Phase wird das Modell entwickelt, nachdem alle notwendigen vorbereitenden Schritte durchgeführt wurden. Denn bevor das eigentliche Modell entwickelt werden kann, müssen in der Regel zunächst die Daten für den spezifischen Use Case identifiziert und aufbereitet werden. In dieser Phase ist es entscheidend, dass man die Daten im Business-Kontext des Use Cases interpretiert, relevante Daten auswählt und zusammenführt. Welche Daten relevant sind und wie diese aufbereitet werden, kann sich während der Development-Phase ständig ändern – abhängig von den verwendeten ML-Modellen oder neuen Erkenntnissen aus dem produktiven Betrieb bereits entwickelter Modelle.
Die tatsächliche Entwicklung der Modelle bzw. die Suche nach einem optimalen Modell passiert im Rahmen eines Experiments, das oftmals einen konkreten Analyse-Use-Case abbildet. Ähnlich wie bei einem naturwissenschaftlichen Experiment ist es das Ziel, in verschiedenen Durchläufen zu untersuchen, inwiefern eine Veränderung eines bestimmten Inputs den Output verändert. Bei einem ML-Experiment werden verschiedene Modellansätze bzw. -klassen (bspw. Random Forest, Neuronale Netze, Support Vector Machines, usw.) und deren jeweilige Konfiguration in Form von Hyperparameterkombinationen erprobt, um das beste Modell zu finden – dies stellt den Input dar, der meist durch eine Menge an Parametern (z.B. Anzahl der Splits in einem Decision Tree oder Anzahl der Hidden Layer eins neuronalen Netzes) beschrieben wird. Der Output wiederum wird aus einer Menge an Metriken gebildet, die vorrangig die Güte der jeweiligen Modellparametrisierung bzw. der trainierten Modelle widerspiegeln. Dies können zum Beispiel die Accuracy eines Klassifizierungsmodells oder der Root Mean Squared Error eines Regressionsmodells sein. Eine spezifische Parameterkombination wird innerhalb eines Durchlaufs (engl.: run) untersucht. Neben den modellspezifischen Parametern, kann auch die Datenaufbereitung parametrisiert (bspw. Die Anzahl der Komponenten für eine Dimensionsreduzierung mittels Hauptkomponentenanalyse) und in einem Experiment untersucht werden.
Weist ein bestimmtes Modell – beschrieben durch eine spezifische Parameterkombination – eine ausreichende Güte auf, wird es für den produktiven Betrieb bereitgestellt. Da das Modell aber nicht zwangsläufig direkt produktiv eingesetzt wird, da es ggf. erst nach einem Review der Ergebnisse freigegeben werden kann oder die Modelle nur in bestimmten Zyklen aktualisiert werden, befindet sich das Modell zunächst in der Staging-Phase.
Wurde das Modell überprüft wird es bei Erfüllung der notwendigen Anforderungen (ausreichend hohe Güte, keine Fehler bei der Anwendung, etc.) produktiv eingesetzt und befindet sich somit in der Production-Phase. In dieser Phase wird das Modell nicht nur für die restlichen Systemkomponenten zur Verfügung gestellt und in Geschäftsprozesse integriert, sondern generiert auch wichtiges Live-Feedback durch die Vorhersage von und dem anschließenden Vergleich mit den realen Live-Daten. Diese Erkenntnisse können dann wieder in die Entwicklung einfließen und in den fortlaufenden Experimentdurchläufen berücksichtigt werden, um beispielsweise bestimmte Modellklassen auszuschließen oder bewusst häufiger auszutesten. Somit können die Modelle stetig in einem Zyklus aus Development-Staging-Production verbessert werden. Produktiv eingesetzte Modelle, die durch ein besseres Modell ersetzt werden, werden deaktiviert und befinden sich anschließend in der Retired-Phase. Diese Modelle werden zwar tendenziell nicht mehr eingesetzt, aber aus Gründen der Nachvollziehbarkeit und Reproduzierbarkeit in dieser Phase archiviert.
Herausforderungen im ML-Lifecycle
Der Machine-Learning-Lifecycle bildet die verschiedenen Phasen ab, die ein Modell im Laufe seiner Entwicklung und seines produktiven Betriebs durchläuft. Anhand des Lebenszyklus kann man Herausforderungen identifizieren, die sich in den jeweiligen Phasen stellen, um zielgerichtete Lösungen für diese Herausforderungen zu konzipieren. In der Development-Phase ist oftmals die kollaborative Entwicklung von Modellen und Aufbereitung von Daten durch verschiedene Data Scientists eine große Herausforderung, wenn keine standardisierten Abläufe oder Tools verwendet werden, um die Arbeit der einzelnen Entwickler zu organisieren und zusammenzuführen. In den darauffolgenden Phasen ist es wichtig, dass es eine einfache und nachvollziehbare Struktur gibt, um Modelle zu deployen und verschiedene Modelle bzw. Modellversionen zu organisieren. Wird ein ML-Modell als wichtiger Baustein in Geschäftsprozessen eingesetzt, muss gewährleistet werden, dass das ML-Modell ständig verfügbar und robust ist.
Im nächsten Artikel zum Thema ML-Lifecycle stellen wir mit mlflow ein open source Tool vor, das viele dieser Herausforderungen thematisiert und Funktionen bereitstellt, um die Entwicklung und das Deployment von ML-Modellen entlang des Lebenszyklus zu erleichtern.
Sie möchten Machine-Learning-Modelle in Ihrem Unternehmen entwickeln, um datengetriebene Prozesse und Anwendungen aufzubauen? Als Ansprechpartner rund um das Thema Data Science, Machine Learning & Co. stehen wir Ihnen sehr gerne zur Verfügung. Sprechen Sie uns an.
Case Study:
Aufbau einer Analyseumgebung für die REWE International AG
Für unseren Kunden haben Sicherheit, Zuverlässigkeit und Wartbarkeit mit einem hohen Innovationstempo und Agilität in Form einer Infrastruktur hergestellt. Oft ein Widerspruch - nicht für eoda! Erfahren Sie mehr!
Blog Post:
Machine-Learning-Projekte mit mlflow - Teil 1
Eines der Tools, das verschiedenen Phasen des ML-Lifecycles adressiert und Werkzeuge für die Entwicklung und das Deployment kollaborativer nachhaltiger ML-Modelle bietet, ist mlflow. In unserem Blog Post gehen wir darauf ein!
Lösung:
YUNA - Die zentrale Data Science Plattform
YUNA bietet die passenden Werkzeuge für den produktiven Einsatz von Datenanalysen. Sie deckt alle relevanten integrativen, Daten verarbeitenden und kollaborativen Funktionen zur Abbildung verschiedener Einsatzszenarien ab.
Branchenübergreifend:
Use Cases von KI und Data Science
Jede Branche hat verschiedene Anforderungen - wir helfen dabei diese zu erfüllen und eine mehrwertstiftende Basis für neue, digitale Services zu entwickeln. Mit über 10 Jahren Erfahrung nutzen wir unser Know-How um Ihnen zu helfen!