© Ket4up/Shutterstock.com, © S&S Media/Bianca Röder
CI/CD und Operations für Machine Learning

MLOps: You rock it, you roll it!


Data Science, Machine Learning (ML) und Artificial Intelligence haben in den letzten Jahren einen wahren Hype ausgelöst und viel Aufmerksamkeit in der Industrie bekommen. Man versucht mit Machine-Learning-Methoden entweder die Produktivität der Nutzer oder die Interaktivität der Applikation zu steigern. Zahlreiche Data-Science-Teams verbringen ihre Zeit damit, Machine Learning Models zu trainieren. Allerdings beobachten wir zwei Arten von Problemen, die in der Praxis entstehen.

Entweder schafft es die Mehrheit der ML Models nicht, in ein Softwareprodukt eingebunden zu werden, oder das Model Deployment nimmt zu viel Zeit in Anspruch. Wir haben eine Reihe von Gründen identifiziert, die diese Problematik erklären:

  1. ML Model Deployment ist ein komplexer Prozess. Generell handelt es sich um das Management der drei Pipelines Data Engineering, Model Engineering und Software Engineering [1].

  2. Es gibt keine standardisierten Prozesse, um ein ML Model in die Produktionsumgebung zu bringen. Machine Learning Model Operation Management (MLOps) ist immer noch in der Anfangsphase [2].

  3. Den richtigen Infrastrukturstack zu definieren, um Machine Learning Deployments zu automatisieren, erfordert momentan einen Trial-and-Error-Prozess. Darüber hinaus sind viele Tools und Systeme für Machine Learning Serving in einer aktiven Entwicklungsphase [3].

In diesem Artikel erklären wir, wie Continuous Delivery für Machine Learning Models funktioniert. Vor allem aber, wie man Data Engineering, Model Engineering und Software Engineering Pipelines in einer CI/CD Pipeline unterbringt. Darüber hinaus möchten wir zeigen, wie man den manuellen Prozess des Deployments von ML Models mit DevOps-Praktiken automatisiert.

MLOps-Lebenszyklus

Grundsätzlich erfolgt die Implementierung von Machine Learning in Softwaresystemen in drei Phasen (Abb. 1).

kammer_visengeriyeva_mlops_1.tif_fmt1.jpgAbb. 1: Ein Überblick über die drei Hauptphasen der ML-Implementierung in Softwareprojekten [1]

Design (Problemdefinition): Selbst die beste ML-Lösung wird scheitern, wenn sie nicht der Lösung von Benutzungs- oder Businessproblemen dient. Daher versuchen wir in dieser ersten Phase herauszufinden, wer die User unserer Software sind. Welche Probleme haben sie? Welche von diesen Problemen sind am besten mit ML lösbar? Und vor allem, können wir eine nichtdeterministische Lösung durch ML hinnehmen? Nehmen wir als Beispiel eine Software zur Abrechnung von beruflichen Reisekosten. Diese Software könnte einige Metadatenfelder, beispielsweise die Kategorie eines Belegs, automatisch erkennen und somit den Prozess der Reisekostenabrechnung erleichtern.

Diese Phase ist entscheidend für den Erfolg eines ML-Projekts. Es kann aber dauern, bis das richtige Problem gefunden wurde.

Model Development (Data Science Research): Nachdem wir die Workflows in der Softwarenutzung analysiert und für ML geeignete Use Cases (Tasks) identifiziert haben, können wir diese Use Cases in ML-Projekte umwandeln. Man startet dann die sogenannte Data Science Research. In dieser zweiten Phase durchläuft man iterativ eine Reihe von Prozessen:

  • Die Abbildung des Userproblems auf die ML-Algorithmen. Man analysiert und identifiziert, welcher ML-Algorithmus für die Lösung des Problems am besten geeignet ist. In unserem Beispiel haben wir uns für unsupervised ML entschieden, weil die Kategorieerkennung eine Klassifikationsaufgabe ist.

  • Data Engineering, bei dem man erst analysiert, ob die notwendigen Daten vorhanden sind bzw. welchen Aufwand wir betreiben müssen, um die Daten zu beschaffen und sie mit Labels (zum Trainieren von Algorithmen) zu versehen. Zusätzlich kann Data Engineering weitere Schritte wie Data Integration, Preparation, Cleaning und Validation beinhalten.

  • Model Engineering, bei dem man unterschiedliche Klassifikationsalgorithmen auf den Daten trainiert und dadurch verschiedene ML Models produziert. Durch die Evaluation der Performance wird entschieden, welches ML Model für unser Problem am besten geeignet ist.

Operationalisierung von Machine Learning

Das Training der ML Models kann viel Zeit in Anspruch nehmen und herausfordernd sein, aber die eigentliche Herausforderung ist die Integration eines ML-Systems in die Produktionsumgebung, d. h. in das Softwareprodukt, das mit Usern interagiert. Ein ML-System besteht aus drei Hauptelementen: Trainingsdaten, ML Model und Code zum Modelltraining. Wir nutzen die DevOps-Prinzipien für ML-Systeme (MLOps) um die ML-Entwicklung (Development) und den ML-Betrieb (Operations) zu kombinieren (Abb. 2). Als Erweiterung von DevOps widmet sich MLOps der Automatisierung und Überwachung (in allen Schritten) der Integration von ML-Systemen in Softwareprojekten.

kammer_visengeriyeva_mlops_2.tif_fmt1.jpgAbb. 2: Zwei MLOps-Phasen: Model Development und Machine Learning Operations [4]

Jupyter Notebooks – der heilige Gral?

Wir überspringen die Designphase und gehen davon aus, dass wir bereits die richtige Problemstellung gefunden haben. Nun beginnt die zweite Phase: Data Science Research. Normalerweise nutzen wir für die Experimentierphase Rapid-Application-Development-(RAD-)Tools. Der Hauptfokus von RAD-Tools liegt auf dem Erstellen von ML-Prototypen und funktionalen Anforderungen. Sehr populär sind z. B. Jupyter Notebooks oder Cloud-basierte Umgebungen wie Colab von Google. Es gibt eine Reihe von Vorteilen und Nachteilen bei der Nutzung von RAD-Tools. Zu den Vorteilen zählen folgende Aspekte:

  • RAD-Tools werden vor allem für die Analyse und Visualisierung von Datensätzen sowie für die explorative Programmierung und Modellierung verwendet.

  • RAD-Tools sind für die Ausführung von Experimenten und Skripts mit verschiedenen ML Models optimiert.

Zu den Nachteilen der RAD-Tools zählen folgende Eigenschaften:

  • Nichtfunktionale Requirements können nicht berücksichtigt werden, wie z. B. die Performance des Systems in Produktion.

  • Die Softwarearchitektur des Systems kann nicht berücksichtigt werden.

  • RAD-Tools sind eher auf manuelle Ausführung von Code ausgerichtet.

Anfangs soll der Data-Science-Prozess manuelle Schritte – wie die Vorbereitung von Daten oder ML Model Prototyping – enthalten. Auf diese manuelle Weise verstehen wir jeden Schritt der Data-Science-Research-Phase besser. Allerdings ist dieser manuell...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang