Was bedeutet MLOps?
Für MLOps gibt es ganz unterschiedliche Definitionen: Ist es eine Initiative, eine Plattform oder ein Jobtitel? Viele Auffassungen davon sind entweder sehr vage (z.B. “Philosophie”) oder viel zu spezifisch (z.B. nur auf ein bestimmtes Toolset bezogen).
Unsere Definition von MLOPs lautet folgendermaßen:
MLOps ist eine Sammlung bewährter Verfahren zur Handhabung von Code, Daten und Modellen für Machine Learning Teams.
Das bedeutet, MLOps hilft deinem Team in diesen Punkten:
- Code verwalten: MLOps unterstützt gängige Best Practices in der Softwareentwicklung und ermöglicht kontinuierliche Entwicklung und Implementierung deiner Modelle.
- Best Practice: Setzt neue Ideen schnell in Experimente um und bringe neue Modelle zuverlässig in Produktion - mit Hilfe von klaren Richtlinien und Prozessen.
- Daten verwalten: Frameworks und Workflows helfen bei der Verarbeitung, Speicherung und Tracking deiner Datensätze - auch über verschiedene Datenversionen hinweg.
- Effiziente Kollaborationen: Teams können gemeinsam auf Code, Daten, Modelle und Experimente zugreifen. Jedes Teammitglied kann die Ergebnisse der anderen einsehen und darauf aufbauen.
- Modelle verwalten: MLOps hilft dir dabei, Modelle zu trainieren, Versuchsergebnisse zu tracken und robuste APIs einzusetzen.
MLOps ist ein weites Feld, daher geben wir nun zunächst einen allgemeinen Überblick über Einsatzgebiete und Funktionen. Anschließend gehen wir auf diejenigen Themen ein, die am Anfang besonders wichtig sind, um MLOps richtig einzusetzen.
Die MLOps-Landschaft
Der Einstieg in das Thema sowie die Auswahl der geeignetsten Tools kann zu Beginn schnell überfordern. Um den Start zu erleichtern, haben wir eine Übersicht der nützlichsten Machine Learning Tools inklusive kurzen Erläuterungen erstellt:
Diese MLOps-Tools decken ganz unterschiedliche Bereiche ab, von der Datenverarbeitung, Visualisierung und Aufgabenautomatisierung bis hin zu Modell Training und Deployment. Wir haben uns hier bewusst auf Open Source-Optionen konzentriert.
Aber lohnt es sich bei der Vielzahl an kommerziellen Plattformen vielleicht doch, auch kostenpflichtige Tools und Plattformen zu nutzen?
MLOps: Selbst entwickeln vs. Kaufen
Zahlreiche kommerzielle Plattformen werben damit, MLOps einfacher zu gestalten. Oft entscheiden sich Teams für diese Variante, weil sie sich nicht zutrauen, eigene Tools zu entwickeln oder Open Source zu verwenden.
Aber proprietäre Tools halten oft nicht das, was sie versprechen. Stattdessen verursachen sie unnötige Kosten und schränken dein Team eher ein, als dass sie von großem Nutzen sind.
Die versprochenen Shortcuts sind oft nicht umsetzbar; und dein Team benötigt am Ende trotzdem noch MLOps-Fachwissen, um diese Plattformen richtig einzusetzen.
Aus diesem Grund sind wir starke Verfechter von Open Source Tools für MLOps. Sie bieten mehr Flexibilität, geringere Kosten, mehr Lernpotenzial und einfacheres Onboarding für jeden der in Zukunft damit arbeiten soll.
Fähigen Entwicklerteams empfehlen wir daher, eine eigene Lösung aus vorhandenen Open Source-Komponenten zu entwickeln.
Aber wie fängt man mit der Entwicklung einer eigenen Lösung überhaupt an, ohne monatelang alle verfügbaren Optionen zu vergleichen? Da es bisher keinen Open Source Blueprint für MLOps gab, haben wir selbst einen erstellt, an dem du dich orientieren kannst.
Spar dir die monatelange Recherche- und Entwicklungsphase - die wir selbst hinter uns haben. Innerhalb weniger Stunden kannst du mit einer guten Vorlage dein eigenes Open Source MLOps-Framework aufsetzen.
Eine einsatzbereite Open Source MLOps-Architektur
Wenn du die Leistung und Flexibilität einer eigenen Lösung möchtest, aber gleichzeitig nicht auf die Einfachheit und den Komfort einer verwalteten proprietären Lösung verzichten willst, dann wirf einmal einen Blick auf unsere OpenMLOps Architektur. Diese Architektur enthält eine Reihe von Terraform-Skripten, um das gleiche MLOps-Setup auf Kuberneteseinzurichten, das wir selbst intern verwenden. Das Ganze lässt sich in weniger als einem Tag einrichten.
Das sind die Vorteile von OpenMLOps:
- Kostenlos, flexibel und Open Source: Wir haben OpenMLOps ausschließlich mit Open Source Tools entwickelt. Das bedeutet, dass es sich problemlos anpassen lässt, sobald sich deine Anforderungen ändern: Ersetze dafür einfach einzelne Komponenten durch andere Tools oder deine eigenen Lösungen.
- Unkomplizierter Start: Viele MLOps-Tools haben recht steile Lernkurven. Unsere Schritt-für-Schritt Anleitungen helfen dir dabei, die Tools kennenzulernen.
- Skalierbar: Open MLOps läuft auf Kubernetes und lässt sich daher je nach Bedarf skalieren. Bei großen Workloads kannst du problemlos mehr Rechenleistung hinzufügen. Du kannst es aber genauso auf kleineren Clustern laufen lassen.
Open MLOps umfasst folgende Komponenten:
- JupyterHub, eine geteilte Notebook-Umgebung für die Kollaboration im Team.
- MLFlow um Experimente und Modelle zu tracken.
- Prefect um Task-Workflows zu verwalten.
- Seldon um Modelle in APIs umzuwandeln.
Du kannst diese Komponenten entweder zu deinem vorhandenen Kubernetes-Cluster hinzufügen, oder du erstellst mit unserem Setup-Skript (AWS EKS) einen neuen Cluster.
MLOps Ressourcen
Wir haben über das Thema MLOps bereits einige Beiträge veröffentlicht. Selbst wenn du mit fertigen Lösungen arbeitest, wirst du einiges an internem Fachwissen zum Thema MLOps benötigen. Um dir den Einstieg zu erleichtern findest du hier eine Reihe nützlicher Ressourcen:
Erste Schritte
Wenn du dich ganz am Anfang befindest und die Grundlagen zum Thema ML-Ops verstehen möchtest, empfehlen wir diese Artikel:
- Machine Learning - die 4 wichtigsten Ansätze: die verschiedenen Einsatzmöglichkeiten von Machine Learning.
- MLOps für Forschungsteams: Warum MLOps nicht nur für die Industrie, sondern auch für Forschungsteams wichtig ist.
- Machine Learning Architektur: Die grundlegenden Bestandteile von Machine Learning Lösungen.
- Open Source Software für MLOps: Warum Open Source in der Regel die bessere Wahl als kostenpflichtige Lösungen sind.
- Software Entwicklung vs. ML Engineering: Warum die Entwicklung von Machine Learning Lösungen zusätzliche Anforderungen mit sich bringt, die selbst erfahrene Softwareentwickler herausfordern.
- MLOps gegen Model Decay: Warum auch gut funktionierende Modelle laufend überwacht werden müssen.
- Wozu dient ein Model Registry?: Warum Modelle getrackt werden sollten.
- Model Serving mit Seldon: Wie du deine Modelle in einer Produktionsumgebung verwendest.
Die richtigen Tools für die eigene MLOps Plattform
Sobald du dich dazu entschieden hast, MLOps anzuwenden, benötigst du eine Reihe spezieller Tools und Plattformen. In Anbetracht der Vielzahl von Optionen ist dies vermutlich der schwierigste Teil. Wir haben daher unsere Favoriten miteinander verglichen und die jeweiligen Vor- und Nachteile gegenübergestellt. (Und unsere Favoriten sind alle in OpenMLOps mit dabei).
- Wie du einen passenden Feature Store auswählst: Wofür du einen Feature Store brauchst und wie du den richtigen findest.
- Was wir an Prefect schätzen: Warum sich Prefect als Workflow Tool eignet.
- Kubeflow: Bereit für Produktion?: Unsere Schwierigkeiten mit Kubeflow, bevor wir zu Prefect umgestiegen sind.
- MLOps Plattformen: Dataiku vs Alteryx vs SageMaker vs Databricks
- Dashboarding Lösungen: Streamlit vs Dash vs Shiny vs Voila
- Task Orchestration Plattformen: Airflow vs Luigi vs Prefect vs MLflow vs Kubeflow
- Data Wrangling Tools: Pandas vs Dask vs Vaex vs Modin vs Ray
MLOps einrichten
Sobald du dich für deine Tools entschieden hast, musst du sie einrichten und konfigurieren. Wenn du dich an dem Setup orientieren möchtest, das wir bei Data Revenue selbst verwenden, wirf gerne einen Blick in unsere Schritt für Schritt Anleitungen. Darin erklären wir, wie du JupyterHub, Prefect, Seldon, Dask und MLFlow einfach einrichtest:
- Setting up Open MLOps: An Open Source Production Architecture for Machine Learning
- Using JupyterHub, Prefect, and MLFlow on Open MLOps
- Deploy Your Model as an API with MLFlow, Prefect, and Seldon
Benötigst du Unterstützung?
Wenn du Unterstützung bei deinem MLOps Setup benötigst, melde dich gerne bei uns.