top of page
  • AutorenbildFlavia Cristian

MLOps auf dem Gebiet der Data Science

Von der Anwendung von Jupyter Notebooks bis hin zur Einführung von Machine Learning-Modellen in der Produktion.

Es geht um Ihr erstes Data-Science-Projekt. Oder Ihr bereits fünfzehntes. Angenommen, es handelt sich um ein Machine-Learning-Projekt für Preisvorhersagen, und Sie möchten die Vorhersageleistung mit der Messgröße R-Quadrat messen. Wie üblich beginnen Sie Ihr Experiment in einem Jupyter Notebook.

Dabei können Sie verschiedene populäre Python-Bibliotheken wie Pandas oder Scikit-learn verwenden, die für ihre Funktionalität bekannt sind. Ihr Endergebnis kann durchaus zufriedenstellend sein, wenn Sie beispielsweise einen R-Quadrat-Wert von 0,9 erreicht haben. Zudem sind Sie schließlich fertig und möchten Ihr Machine-Learning-Modell in einem Docker-Container bereitstellen, um es in Aktion zu sehen. Wie bei vielen Projekten schafft es das Modell jedoch nie in die Produktion und wird somit von niemandem zur Preisvorhersage genutzt.

Dieses Szenario mag ein wenig düster klingen, aber leider ist dies in der KI-Branche üblich. Das Feld der Data Science ist noch im Entstehen begriffen, weshalb es oft nicht gelingt, die experimentelle Phase zu überwinden. Nachdem Sie ein Modell entwickelt und einige Vorhersagen getroffen haben, beginnt der schwierige Teil - der Einsatz in der Produktion und die kontinuierliche Verwendung.

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 Produktionseinsatz werden Sie nie in der Lage sein, es in Ihrem Unternehmen zu nutzen oder datengestützte Entscheidungen zu treffen.

Die Funktionsweise von MLOps

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 Entwicklungswiederholungen. 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.


Einsatz & Infrastruktur

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.

Zugriffskontrolle

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.

Überwachung und Evaluation

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.

Kontinuierliches Training (continuous training - CT)

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:

  1. Erstellung einer neuen Version: häufiges neues Trainieren auf Live-Daten und entsprechende Kennzeichnung

  2. 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.

Professionalisierung Ihrer ML-Umgebung - eine Zusammenfassung

Zusammenfassend lässt sich also sagen, dass für eine nachhaltige, professionelle Machine Learning-Umgebung folgende Voraussetzungen nötig sind:

A. 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.

B. 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.

C. 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.

D. 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.

Quellenangaben:

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


Ähnliche Beiträge

Alle ansehen

Comentarios


bottom of page