MLflow: Eine Plattform für den Machine Learning Lifecycle

MLflow ist eine Machine Learning Plattform Komponente und begleitet den kompletten Machine Learning Prozess eines Data Science Projektes. Ziel ist die Dokumentation, Reproduzierbarkeit und das Deployment zu vereinfachen. Das Silicon Valley Startup databricks hat MLflow als Open Source Projekt hervorgerufen und entwickelt sehr aktiv an diesem Projekt.

Hintergrund

In diesem Artikel gehe ich auf die wichtigen Punkte des Projektes ein und beschreibe im Detail die 3 grundlegenden Funktionen:

  • Tracking: Dokumentation aller getesteten Model Parameter und wie diese Test- oder Validierungsergebnisse beeinflussen.
  • Projekte: Ein konsistenter, standardisierter Weg wie man Experimente und Data Science Code in anderen Projekten nutzen kann.
  • Models: Vereinfachte Art und Weise wie Modelle über mehrere Plattformen hinweg den Weg in die Produktion finden.

Wir beschäftigen uns mit dem Thema MLflow auch in unserem neusten Youtube Video. Hier erklären wir genauer, was MLflow ist, welche Funktionen es hat und gehen auf die Vorteile des ML-Trackings ein.

Doch zunächst möchte ich kurz auf die Probleme in Machine Learning Projekten eingehen, um so ein besseres Verständnis für den Nutzen von MLflow zu schaffen.

Probleme in Machine Learning Phasen

Die Komplexität bei der Entwicklung eines Machine Learning (ML) Models kann sehr hoch sein. Viele Herausforderungen sind im kompletten Prozess, von Entwicklung bis hin zur produktiven Nutzung, zu lösen. Folgende Herausforderungen ergeben sich:

  1. Eine unüberschaubare Zahl von Tools und APIs. Auf dem Markt gibt es hunderte einzelne Tools, die speziell für eine Phase des Entwicklungsprozesses gedacht sind. Dahingehend sollen unterschiedliche Algorithmen oder deren Implementierungen getestet werden, was dazu führt, dass viele unterschiedliche ML Libraries integriert werden müssen.
  2. Dokumentation der Versuche ist umständlich. Durch die vielen Parameter der ML Algorithmen ist es schwierig einzelne Ergebnisse festzuhalten.
  3. Reproduktion der Ergebnisse ist schwierig. Um die Ergebnisse zu reproduzieren müssen alle Parameter gespeichert sowie das ML Model gleichermaßen wieder ausgeführt werden. In der Praxis scheitert es oft daran – wer weiß schon nach 20 unterschiedlichen Parametern welcher wie funktioniert hat?
  4. Einsatz in Produktion ist komplex. Neben der ganzen Modellerstellung gilt es zudem, dass die Modelle wirklich in Produktion gebracht werden. Oft ist dies nicht ganz einfach, wenn z.B. ein Modell in einer App oder Website implementiert ist.

Die Herausforderungen in Big Data Analytics Projekten, wo Machine Learning zum Einsatz kommt, zeigen uns die Komplexität der Vorhaben auf. Deshalb haben sich in den letzten Jahren führende Unternehmen vor allem mit internen Machine Learning Plattformen auseinandergesetzt. In diesem Artikel habe ich das Thema ML Plattformen und Feature Store bereits beschrieben.

Als Beispiel seien hier die Projekte von Facebook, Google und Uber – FBLearner Flow, TFX und Ubers Michelangelo zu nennen. Diese Projekte setzen sich mit dem kompletten Prozess von Datenvorverarbeitung, über Modelltraining bis hin zum Model Deployment auseinander.

Databricks hat jetzt mit dem Projekt MLflow: an open source machine learning platform eine Open Source Plattform herausgebracht, die diese Probleme minimieren soll. Diese befindet sich zwar Momentan noch in der Alpha Phase, aber bewährt sich schon recht gut.

Künstliche Intelligenz optimiert Marketing und Vertrieb

In 6 Fallstudien erfahren Sie:

  • Wie Sie 29% mehr Umsatz pro Kampagne machen.
  • Wie Sie durch KI und Automatisierung mehr Zeit gewinnen.
  • Wie Sie 300% mehr Conversions zur richtigen Zeit machen.
Jetzt herunterladen

MLflow Funktionen

Moment bietet MLflow in der Alpha drei grundlegende Funktionen:

MLFlow Komponenten: tracking, projects, models
MLFlow Komponenten: tracking, projects, models

MLflow Tracking

Die Tracking Komponente ist hauptsächlich ein API für die Speicherung von Modellparametern, Code Versionen und Output Formaten von ML Modellen. Entwickler können MLflow in vielen Umgebungen nutzen (beispielsweise in einem einzelnen Skript oder in einem Notebook, wie IPython oder databricks) um die einzelnen Werte der Modelldurchläufe lokal oder auf einem Server zu speichern. So lassen sich die Ergebnisse mit anderen Entwicklern innerhalb des Teams teilen. Hierfür steht eine webbasierte Oberfläche zur Verfügung.

Folgende Abbildung zeigt die Tracking Funktion von MLflow:

MLflow Tracking UI Quelle databricks.com
MLflow Tracking UI Quelle databricks.com

Die Abbildung zeigt schön die Funktionalität von MLflow – man erhält einen super Überblick über Durchläufe, Nutzer, Versionierung, Parameter und natürlich Modellgütekennzahlen wie bspw. mean absolute error (MAE), R2 oder RMSE. Natürlich sind viele verschiedene Kennzahlen je nach Modell und Daten abrufbar.

Ich finde besonders die Trackingfunktion total interessant für meine Projekte, denn damit habe ich schon einen Teil meiner Dokumentation automatisiert und muss es nicht aufwändig per Hand machen.

MLfLow Projekte

Die Projektkomponente von MLflow definiert ein Standardformat für Data Science Code, so dass dieser in anderen Projekten wiederverwendet werden kann. Jedes Projekt ist wie ein Ordner mit Code oder ein Git-Repository aufgebaut, das Informationen über alle Abhängigkeiten enthält. Zum Beispiel kann in einem Projekt eine conda.yaml für die Python Conda Umgebung definiert werden.

Wenn die Tracking API verwendet wird, merkt sich MLflow automatisch die zuletzt ausgeführte Version und die gespeicherten Parameter. Entwickler können bestehende MLflow-Projekte effizient laden und mehrere MLfLow-Projekte zu einem Workflow zusammenfassen.

Diese Komponente stellt sicher, dass das maschinelle Lernprojekt in einem Standardformat für verschiedene Werkzeuge und Produktionsumgebungen verpackt wird. So ist es einfach, verschiedene Umgebungen mit Modellen zu versorgen und diese in Produktionsumgebungen einzusetzen.

Natürlich ist bei der Entwicklung von Databricks auch Apache Spark nicht weit. Dementsprechend ist das gesamte Projekt sehr eng an Apache Spark angelehnt.

Benötigen Sie Unterstützung?

Gerne helfen wir Ihnen bei den ersten Schritten auf Ihrem Weg zur Data Driven Company.

MLOps

MLflow installieren

MLflow ist sehr leicht über pip zu installieren:

pip install mlflow

Viel mehr müsst ihr hier nicht machen. Wer mehr dazu erfahren möchte kann hier den quickstart guide von Databricks finden.

Zusammenfassung

MLflow ist ein sehr interessantes Projekt, wenn man in Data Science Projekten viele verschiedene Modelle entwickelt und der ganze Prozess dokumentiert werden soll. Natürlich gibt es kommerzielle Systeme, wo man eine grafische Oberfläche hat, aber oft sind diese Systeme besonders im Big Data Umfeld bis jetzt kaum einzusetzen. Daher denke ich, dass MLflow besonders in individuellen Entwicklungen und Plattformen seine Stärke hat.

Vor allem wenn man eine gute Architektur mit einem entsprechenden ML Feature Store (Feature Store Beispiel von Uber) hat, kommen die Komponenten von MLflow zur Geltung und steigern die Produtkivität in Data Science Projekten.

Profilbild von Vinzent Wuttke Geschäftsführer Datasolut GmbH
Vinzent Wuttke
Geschäftsführer

Lassen Sie uns sprechen und Ihr Potenzial entdecken.

Ob und wie künstliche Intelligenz Ihnen weiterhelfen kann, können Sie in einem ersten, unverbindlichen Gespräch mit uns herausfinden.

In diesem Gespräch erfahren Sie:

  • Wie Ihr Use-Case technisch am besten umgesetzt werden kann
  • Wie wir maximal sicher mit Ihren Kundendaten umgehen
  • Wie lange wir für die Umsetzung benötigen und wie ein konkreter Projektplan aussehen könnte
Jetzt Erstgespräch vereinbaren

Weiterlesen

Machine Learning Vor 9 Monaten

Data Mining: Algorithmen, Definition, Methoden und Anwendungsbeispiele

Data Mining ist ein analytischer Prozess, bei dem computergestützte Methoden eingesetzt werden, um möglichst selbstständig und effizient interessante Datenmuster in großen Datensätzen zu identifizieren. Die verwendeten Algorithmen stammen aus der […]
Wie funktioniert Machine Learning? Eingabedaten, Algorithmen und Ausgabe.
Machine Learning Vor 10 Monaten

Machine Learning: Definition, Algorithmen, Methoden und Beispiele

Machine Learning (deutsch: maschinelles Lernen) ist eine Anwendung der Künstlichen Intelligenz (KI). Computersysteme lernen automatisch Muster und Zusammenhänge aus Daten und verbessern sich selbst, ohne explizit programmiert zu werden. Machine […]
Deep Learning Objekterkennung auf einer Straße
Machine Learning Vor 11 Monaten

Machine Learning vs. Deep Learning: Wo ist der Unterschied?

Machine Learning und Deep Learning sind 2 Teilbereiche der Künstlichen Intelligenz, doch was unterscheidet sie und wann nutzen wir Machine Learning vs. Deep Learning? Das klären wir in diesem Artikel! […]
Machine Learning Vor 2 Jahren

Aufbau eines Data Science Teams

Sich mit Themen wie der Künstlichen Intelligenz, Big Data oder Machine Learning zu befassen, wird von Jahr zu Jahr für viele Unternehmen immer wichtiger. Anhand der Börse ist zu erkennen, wie erfolgreich Tech-Unternehmen mittlerweile sind […]
Beitragsbild: Machine Learning im E-Commerce
Customer AnalyticsMachine Learning Vor 2 Jahren

Machine Learning im E-Commerce – Anwendungsfälle und Nutzen

Wie lässt sich Machine Learning im E-Commerce sinnvoll einsetzen? Wir zeigen Ihnen interessante Anwendungsfälle von Machine Learning im E-Commerce, die Ihren Umsatz steigern und Ihre Marketingkosten senken.   Wie lässt sich Machine Learning im E-Commerce einsetzen?  Mittlerweile ist […]
Beitragsbild: Textklassifikation
Machine Learning Vor 2 Jahren

Textklassifikation

Die Identifizierung und Analyse großer Textmengen stellt einen wichtigen Antreiber für eine Vielzahl unternehmensrelevanter Entscheidungen dar. Grund ist der hohe Erkenntnisgewinn, der durch Analyse dieser Textmengen entsteht. Da die Extraktion […]
Beitragsbild: AutoML
Machine Learning Vor 2 Jahren

Ist Auto ML die Zukunft von Data Science?

AutoML ist ein heiß diskutiertes Thema, welches eine enorme Effizienzsteigerung für den Machine Learning Prozess verspricht. Doch wie viel Potential steckt in dem automatisierten Machine Learning Ansatz? Wir zeigen Ihnen, […]
Prognosemodell Beispielbild
Machine Learning Vor 2 Jahren

Was ist eine Absatzprognose? Faktoren, Verfahren und Methoden

Absatzprognosen helfen dem Unternehmen dabei, zukünftige Entwicklungen der Absatzzahlen voraussagen zu können. Dies ist besonders hilfreich, um frühzeitige Entscheidungen in Bezug auf Planungen zu treffen und so Kosten einzusparen. In diesem […]
Machine Learning Vor 2 Jahren

Nachfrageprognose: Definition, Methoden und Beispiele

Eine Nachfrageprognose sagt die zukünftige Kundennachfrage auf Basis historischer Daten vorher. Im Rahmen von Entscheidungsfindungen bieten Nachfrageprognosen eine gute Grundlage, um Planungen im Unternehmen effizient umzusetzen. Je nach Anwendungsfall und Prognoseziel stehen dem […]
Newsletter und Updates

Sie sehen gerade einen Platzhalterinhalt von HubSpot. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen
Erstgespräch vereinbaren