Du hast Fragen? Wir haben Antworten! - Bald findet unser nächster Tag der offenen Tür statt!

Logo site

MLOps: DevOps angewandt auf Machine-Learning-Projekte

-
3
 Minuten Lesezeit
-

In einem früheren Artikel haben wir die DevOps-Philosophie vorgestellt und erläutert, wie dieser neue Ansatz durch die Zusammenführung der bisher in Silos arbeitenden Teams für Entwicklung (Dev) und Betrieb (Ops) eine schnellere Wertschöpfung für Unternehmen ermöglicht. In diesem Artikel beschäftigen wir uns mit der Anwendung dieses Ansatzes auf Machine Learning: MLOps.

Zurück zu Devops

DevOps ermöglicht eine Verkürzung der Time-to-Market sowie eine Verbesserung der Qualität von Softwareprodukten durch 3 Prinzipien:

  • Desorientierung: Entwicklungs- und Betriebsteams müssen zusammenarbeiten, um ein gemeinsames Ziel zu erreichen, und dabei alle Informationen austauschen.
  • Automatisierung: Alles, was automatisierbar ist, sollte automatisiert werden: Build, Test, Deployment. Dies dient dem doppelten Zweck, die für die Bereitstellung benötigte Zeit zu verkürzen und die Anzahl der nicht qualitativ hochwertigen Aufgaben zu verringern, da manuelle Schritte menschliche Fehler begünstigen.
  • Monitoring: Sammeln und überwachen Sie wichtige Metriken, sowohl auf der Geschäftsseite (Anzahl der angemeldeten Benutzer, Anzahl der Bestellungen usw.) als auch auf der Betriebsseite (Prozentsatz der CPU-/RAM-Auslastung der Server, Anzahl der Fehler usw.).

Nach der ausführlichen Einführung von DevOps und der deutlichen Zunahme des Einsatzes von Machine Learning und KI in Unternehmen wurden die DevOps-Konzepte auch in Datenprojekten übernommen. Auch wenn die Ziele und Prinzipien im Großen und Ganzen dieselben sind, haben einige Besonderheiten von Machine Learning die Entwicklung eines eigenen Ansatzes erforderlich gemacht: MLOps.

Was genau sind MLOps?

Laut einer Dokumentation von Google :

MLOps ist eine Kultur und Praxis des ML-Engineerings, die darauf abzielt, die Entwicklung (Dev) und den Betrieb (Ops) von ML-Systemen zu vereinen.

Um zu verstehen, was MLOps ist, werden wir uns darauf konzentrieren, die Unterschiede zum klassischen DevOps zu erfassen:

  • Experimentelle Entwicklung: Es liegt in der Natur der Sache, dass alle ML-Projekte einer nicht-linearen Entwicklung folgen: Verschiedene Preprocessings, Feature Engineerings und Algorithmen werden getestet, bis eine ausreichende Leistung erreicht ist. Den Überblick darüber zu behalten, was getestet wurde und was funktioniert hat und was nicht, kann kompliziert sein. Es ist jedoch entscheidend, um die Entwicklungszeit zu verkürzen, insbesondere bei großen Teams, um zu vermeiden, dass Ansätze, die bereits von einem anderen Datenwissenschaftler erfolglos ausprobiert wurden, erneut getestet werden.
Schritte bei der Entwicklung eines Machine-Learning-Modells
  • Conceptual Drift: Anders als bei einem herkömmlichen Softwareprodukt kann sich die Leistung eines ML-Systems im Laufe der Zeit ändern (und meistens sogar abnehmen), ohne dass Änderungen am Code oder an der Infrastruktur vorgenommen wurden. Dies ist auf das Phänomen des Concept Drift zurückzuführen, bei dem sich die Beziehungen zwischen der vorherzusagenden Variable und den erklärenden Variablen auf unvorhergesehene Weise verändern werden. Es ist daher unerlässlich, die Leistung von ML-Modellen in der Produktion zu verfolgen und möglicherweise eine Strategie des automatischen Neulernens zu implementieren, um das Modell „neu zu kalibrieren“, wenn seine Leistung abnimmt. Ein Beispiel hierfür ist Google Flu Trends, ein Projekt von Google, das die Anzahl der Grippefälle anhand der Suchanfragen in der Suchmaschine schätzen sollte.
  • Team: In den meisten Organisationen sind die bereichsübergreifenden oder in verschiedene Geschäftsabteilungen integrierten Datenteams noch relativ jung und es fehlt ihnen an qualifizierten Ressourcen, um die Einführung und Aufrechterhaltung des Betriebs komplexer ML-Systeme zu bewältigen. In der Regel bestehen diese Teams hauptsächlich aus Data Scientists, die sich auf die Entwicklung von Machine-Learning-Modellen konzentrieren, aber nicht über die nötigen Fähigkeiten verfügen, um die Bereitstellung und Wartung kompletter Anwendungen zu verwalten. Außerdem arbeiten die Datenteams noch zu oft in Silos und kommunizieren nicht mit den verschiedenen technischen Teams, mit denen sie interagieren müssten, um ihre Modelle in Produktion zu bringen.

Diese Besonderheiten und Komplexitäten, die Datenprojekten innewohnen, erklären zum Teil, warum, obwohl immer mehr Unternehmen massiv in Machine Learning und KI investieren, nur sehr wenige Modelle tatsächlich und mit viel Erfolg in der Produktion eingesetzt werden. Laut einer von Algorithmia im Jahr 2020 durchgeführten Studie haben 55 % der Unternehmen, die sich mit KI beschäftigen, noch nie einen Übergang in die Produktion vollzogen.

MLOps soll diese Schwierigkeiten überwinden, um den Einsatz und den Betrieb von ML-Systemen zu ermöglichen, indem es ähnliche Prinzipien wie DevOps anwendet:

  • Monitoring: Das Monitoring gewinnt in der MLOps-Philosophie weiter an Bedeutung, sowohl im Run (insbesondere durch das Sammeln von Leistungsmetriken der Modelle, um konzeptionelle Abweichungen zu erkennen) als auch in der Entwicklungsphase (um die verschiedenen Experimente und ihre Ergebnisse zu verfolgen).
  • Kultur: Datenteams müssen auch mit anderen technischen Teams zusammenarbeiten (Betriebsabläufe, aber auch Teams, die Softwareprodukte entwickeln, mit denen die ML-Modelle integriert werden müssen).
  • Automatisierung: Zusätzlich zu den klassischen Schritten (build, test, deploy) befürwortet das MLOps die Automatisierung von Aufgaben, die für die Wartung von ML-Systemen typisch sind, wie z. B. das Neuanlernen von Modellen. Nachdem die Modelle trainiert wurden, sollten sie auch automatisch eingesetzt werden.

Um Datenteams bei der Einführung eines MLOps-Ansatzes zu unterstützen, wurden immer mehr Tools entwickelt. Dazu gehören MLflow, Metaflow, Kubeflow.

Um den MLOps-Wandel erfolgreich zu meistern, müssen die Silos zwischen den Betriebsabteilungen und den Datenteams aufgebrochen werden, und es muss sichergestellt werden, dass die Datenteams über die notwendigen Ressourcen verfügen (Data Engineers, Machine Learning Engineers). Machine Learning Engineers sind erfahrene Profile, die sowohl über Fachwissen im Bereich Machine Learning (statistische Modellierung, Deep Learning usw.) als auch über Kompetenzen in der Softwareentwicklung, im Data Engineering und in der Umsetzung von ML-Modellen in die Produktion verfügen.

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!
icon newsletter

DataNews

Starte Deine Karriere im Bereich Data: Erhalte regelmäßig Insiderwissen und wertvolle Karrieretipps in Deinem Posteingang.