Wie können wir Ihnen weiterhelfen?
Marija Mijic
HR & Office Allrounder
T +43 660 383 95 46
office@craftworks.at
craftworks GmbH
Schottenfeldgasse 20/6a
1070 Wien
Von Jupyter Notebooks zum Einsatz von Machine Learning: MLOps im Gebiet der Data Science
Das Potenzial von Machine Learning nutzen: von Jupyter Notebooks hin zu leistungsfähigen MLOps.
Know-How
Lesedauer: 10 min
Flavia Cristian
Es spielt keine Rolle, ob es Ihr erstes oder bereits Ihr fünfzehntes Data-Science-Projekt ist. Nehmen wir an, Sie arbeiten an einem Machine-Learning-Projekt zur Preisvorhersage und möchten die Vorhersageleistung anhand der Messgröße R-Quadrat bewerten. Wie üblich starten Sie Ihr Experiment in einem Jupyter Notebook und verwenden dabei beliebte Python-Bibliotheken wie Pandas und Scikit-learn, die für ihre hohe Funktionalität bekannt sind. Mit einem R-Quadrat-Wert von 0,9 könnten Sie ein zufriedenstellendes Ergebnis erzielen. Doch nachdem das Modell fertiggestellt ist und Sie es in einem Docker-Container bereitstellen möchten, um es in der Praxis zu testen, geschieht das, was bei vielen Projekten passiert: Das Modell schafft es nie in die Produktion und wird daher nicht zur Preisvorhersage genutzt.
Dieses Szenario mag zwar etwas düster erscheinen, ist aber in der KI-Branche leider keine Seltenheit. Da das Feld der Data Science noch in den Kinderschuhen steckt, scheitern viele Projekte daran, die experimentelle Phase zu überwinden. Nachdem ein Modell entwickelt und einige Vorhersagen getroffen wurden, beginnt der schwierigste Teil: die Bereitstellung in der Produktion und die kontinuierliche Nutzung des Modells.
Zu den Herausforderungen, die wir häufig beobachten, gehören das Fehlen von:
zentraler Überwachung: fehlender Überblick über die Ergebnisse, einschließlich Ausreißern in den Input-Daten
Dokumentation und Nachvollziehbarkeit: kein standardisiertes Format
Anfrage-/Antwort-Speichern: Datenverlust und fehlende Möglichkeit, frühere Daten zu vergleichen, um Erkenntnisse zu gewinnen
standardisierter Sicherheit und Zugriffskontrolle
Versionierung: kein programmatischer Ansatz für die Integration von Entwicklungsphasen
Skalierbarkeit und Verfügbarkeit der Infrastruktur: Systemkompatibilität und Wiederverwendbarkeit von Komponenten
Um diese Herausforderungen zu überwinden, gibt es MLOps (Machine Learning Operations). Wie DevOps haben auch MLOps das Ziel, die Lücke zwischen der Modellentwicklung und der Produktionsanwendung zu schließen. Die Erstellung eines Machine-Learning-Modells in einem Jupyter-Notebook ist zwar gut zum Lernen und Experimentieren geeignet, bringt aber keinen wirklichen geschäftlichen Nutzen mit sich - zumindest nicht, bis Ihr Modell in ein Machine-Learning-System integriert ist und kontinuierlich in der Produktion eingesetzt werden kann. Letzteres ist es, was Machine Learning wirklich wertvoll macht. Ohne Einsatz in der Produktion werden Sie nie in der Lage sein, das Modell in Ihrem Unternehmen zu nutzen oder datengestützte Entscheidungen zu treffen.
Inzwischen sind wir uns einig, dass MLOps der Schlüssel zum Übergang Ihrer Modelle zu Machine-Learning-Systemen sind, weshalb jedes Machine-Learning-System nach DevOps-Prinzipien - oder in unserem Fall MLOps - betrieben werden sollte. Dabei handelt es sich um kontinuierliche Integration (continuous integration - CI) und kontinuierliche Bereitstellung (continuous delivery - CD) und, da wir immer noch von einem Data-Science-Projekt sprechen, um kontinuierliches Training (continuous training - CT).
CI erfordert, dass Sie den Code und die Komponenten testen und validieren. Beim Machine Learning wird CI an Daten durchgeführt. Außerdem benötigen Sie Skripte zur Datenvalidierung, um Probleme mit den Eingabedaten zu lösen, die auftreten können. CD spielt eine entscheidende Rolle bei der Beschleunigung von Entwicklungsphasen. Um Data Scientists bei der Bewältigung von CI/CD-Aufgaben zu unterstützen, gibt es viele MLOps-Tools. Leider sind Sie bei den meisten von ihnen entweder an ein System gebunden, weil sie ein anbieterspezifisches Format erfordern, oder Sie müssen viel Zeit für deren Einrichtung aufwenden.
Bei einigen fehlen sogar wichtige Funktionen wie Umschulung oder Dashboards zur Visualisierung der Leistung Ihres Modells.
navio ist eine MLOps-Plattform, die Sie während des Modellentwicklungsprozesses bis hin zum Produktionsbetrieb Ihres Modells unterstützt. Mit navio können Sie während der Modellentwicklung weiterhin mit Ihren bevorzugten Python-Frameworks arbeiten, da es die Interoperabilität der Modelle durch die Nutzung von MLflow unterstützt. Da navio ein herstellerunabhängiges Produkt ist, schränkt es Sie in keinster Weise ein. Sie können Ihr Modell unabhängig von dem von Ihnen verwendeten Deep-Learning-Framework erstellen, sei es Scikit-learn, TensorFlow, Apache MXNet, PyTorch, XGBoost, oder andere.
Der Einsatz von navio ist einfach und erspart Ihnen den Aufwand und die Komplexität der Einrichtung einer robusten, zuverlässigen und skalierbaren Infrastruktur, wodurch Sie sich auf das Wesentliche konzentrieren können - die Lösung echter Probleme mit innovativen Machine-Learning-Modellen. navio generiert automatisch gesicherte REST-Endpunkte, so dass Ihr Modell in jede Anwendung, Maschine oder jedes Gerät integriert werden kann. Dabei fungiert navio als zentrales Modellspeicher- und Modellmanagementsystem vor Ort oder in der Cloud. Laden Sie ein beliebiges benutzerdefiniertes Python-kompatibles Modell in navio hoch und verwenden Sie die übersichtliche Benutzeroberfläche, um Ihre Modelle einfach zu verwalten, bereitzustellen und zu integrieren, ohne eine einzige Zeile programmieren zu müssen. Dabei können Sie auch die Entwickler-API verwenden, um dasselbe Ergebnis zu erzielen und es zu automatisieren.
Es ist nicht notwendig, selbst Komponenten für die Zugriffsverwaltung zu entwickeln, wodurch Sie sich auf die eigentlichen Data-Science-Aufgaben konzentrieren können. Bei MLOps geht es darum, den Prozess der Modellerstellung in eine gemeinsame Pipeline für Machine Learning umzuwandeln. Das gesamte Data-Science-Projekt muss daher nicht von einem einzelnen Data Scientist entwickelt werden, sondern ein ganzes Team kann an Teilen des Projekts arbeiten, wie z.B. an der Daten-Exploration, der Modellerstellung oder dem Testen, wodurch die Fertigstellung beschleunigt wird. Mit navio können Sie die integrierten Zugriffskontrollfunktionen nutzen, um mehrere Verwendungen zu verwalten und den Zugriff auf Ihre bereitgestellten Modelle mit den integrierten Sicherheitsfunktionen zu sichern.
Darüber hinaus können Sie die Vorteile der zentralen Monitoring-Benutzeroberfläche nutzen. Machine Learning ist von Natur aus experimentell, weshalb es nicht immer eine Garantie dafür gibt, dass Ihre Modelle genaue und zuverlässige Ergebnisse liefern werden. Hinzu kommt laut Shankar & Garcia (2022), ‚dass in Produktions-Pipelines häufig Daten fehlen, unvollständig oder beschädigt sind, wodurch die Modellleistung stark abnimmtʻ. Kurz gesagt, Fehler oder Änderungen in den Input-Daten treten häufig auf, und wenn sie nicht korrekt überwacht werden, kann dies die Leistung des Modells erheblich verringern. Eine Benutzeroberfläche wie jene von navio könnte Ihnen die nötige Gewissheit verschaffen. Ferner profitiert Ihr Projekt von der Möglichkeit der Modellübersicht für Geschäftsanwender, wenn Sie Ihre Modelle in Produktion geben: Die Benutzeroberfläche ermöglicht es Ihnen, SHAP, Standarderklärungen für Ihre Modelle sowie komplexe benutzerdefinierte Erklärungen zu präsentieren, die Sie erstellt haben, um den Geschäftswert und die datengestützte Entscheidungsfindung für Ihre Stakeholder zu fördern.
Um sicherzustellen, dass Ihre Modelle die aktuellen Bedingungen genau widerspiegeln, müssen Sie Ihre Modelle ständig neu trainieren. Um Ihre Arbeit zu erleichtern, können Sie Ihre Modelle in navio einfach neu trainieren, sobald weitere Daten zur Verfügung stehen.
Wie (Shankar, & Garcia, 2022) bereits erwähnt, gibt es eine Liste von Strategien, die ML-Ingenieure während der Überwachung und Fehlersuche anwenden können, um die Modellleistung nach der Implementierung aufrecht zu erhalten. Einige davon sind:
Erstellung einer neuen Version: häufiges neues Trainieren auf Live-Daten und entsprechende Kennzeichnung
Beibehaltung der alten Version: Minimierung der Ausfallzeit durch Rückgriff auf ein Ersatzmodell
Es ist sehr schnell und einfach, die aktuell eingesetzten Modelle durch ein vorhandenes Ersatzmodell zu ersetzen. Durch die Verwaltung all Ihrer neu trainierten Modelle in einem Anwendungsfall können Sie sie leicht austauschen, um die Ergebnisse zu vergleichen. Sie können Ihr Modell durch eine neu trainierte Version ersetzen, ohne die Endpunkte neu generieren oder den Zugriff neu konfigurieren zu müssen, was letztendlich die Zusammenarbeit zwischen verschiedenen Abteilungen beschleunigt und einen effizienten Arbeitsablauf gewährleistet.
Zusammenfassend lässt sich also sagen, dass für eine nachhaltige, professionelle Machine Learning-Umgebung folgende Voraussetzungen nötig sind:
Entwickeln Sie mit der Produktionsumgebung im Hinterkopf - legen Sie Ihren Code in einem Repository ab und stellen Sie ihn auf navio bereit. Erstellen Sie Verbindungen, um kooperativ bessere Systeme zu entwickeln.
Kontinuierliches Training - Integration neuer Input-Daten in Ihr Projekt auf navio. Führen Sie kontinuierlich Tests durch, um Standards für Ihre Produktionsmodelle zu setzen.
Kontinuierliche Integration - Laden Sie kontinuierlich neue Modelle in navio hoch, wo Sie sie mit früheren Versionen vergleichen können. Vorzugsweise programmatisch als Teil der ML-Pipeline, um Zeit zu sparen und die Effizienz durch Verkürzung des Entwicklungsprozesses zu steigern.
Kontinuierliche Bereitstellung - Kontinuierliche Verbesserung eines bereitgestellten Modells durch Zuweisung neuer Versionen zu bestehenden, ohne dass eine Änderung der Oberfläche oder Infrastruktur erforderlich ist. Dadurch wird sichergestellt, dass Sie immer mit den neuesten und besten Modellen für jeden Anwendungsfall arbeiten, die sich im Laufe der Zeit ständig verbessern. Automatisieren Sie dies, um Zeit zu sparen und ein kontinuierlich verbessertes System aufzubauen.
Letztlich geht es darum, technische Schwierigkeiten zu minimieren, um die Zeitspanne zwischen der Idee eines Modells und seiner Umsetzung in die Produktion zu verkürzen. Der eigentliche geschäftliche Wert von Machine Learning liegt in der Fähigkeit, mit möglichst geringem Risiko und Informationsverlust auf den Markt zu kommen. Somit liegt die Entscheidung über die besten Instrumente zur Erreichung Ihrer Ziele in Ihren Händen.
Shankar, S., & Garcia, R. (2022, 16. September). [2209.09125] Operationalizing Machine Learning: An Interview Study. arXiv. Abgerufen am 14. Oktober 2022, von https://arxiv.org/abs/2209.09125