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.

  1. Hintergrund
  2. Probleme in Machine Learning Phasen
  3. MLFlow Funktionen
  4. MLflow installieren
  5. Zusammenfassung

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.

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 kommen auf einen zu:

  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. Z.b. unterschiedliche  Algorithmen oder deren Implementierungen wollen 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 schwer einzelne Ergebnisse festzuhalten.
  3. Reproduktion der Ergebnisse ist schwer. Um die Ergebnisse zu reproduzieren müssen alle Parameter gespeichert werden und das ML Model genau so 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 gibt es natürlich auch noch die Modelle wirklich in Produktion zu bringen. 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 läuft schon recht stabil.

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 das Speicherung von Modellparametern, Code Versionen und Output Formaten von deinen 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 kannst man die Ergebnisse mit anderen Entwicklern im Team 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 hat 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 einen Standardformat für Data Science Code, so dass dieser in anderen Projekten wiederverwendbar ist. Jedes Projekt ist wie ein Ordner mit Code oder ein Git Repository aufgebaut, was ein auch Informationen über alle Abhängigkeiten enthält. Als Beispiel kannst du in einem Projekt ein conda.yaml für das Python Conda Environment definieren.

Wenn das Tracking API eingesetzt wird, dann merkt sich MLflow automatisch die zuletzt ausgeführte Version und die gespeicherten Parameter. Entwickler können effizient bestehende MLflow Projekte laden und mehrere MLfLow Projekt zu einem Workflow zusammenführen.

MLflow Models

Diese Komponente sorgt dafür, dass die Machine Learning Projekt in einem Standardformat für die verschiedene Tool und Umgebungen für die Produktion gepackt werden. So ist es einfach verschiedene Umgebungen mit Modellen zu versorgen und diese in Produktivumgebungen einzusetzen.

Natürlich ist bei einer Entwicklung von databricks, auch Apache Spark nicht weit weg. So ist das ganze Projekt sehr nah an Apache Spark orientiert.

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.

Ihr Kontakt: Laurenz Wuttke

Unternehmen sitzen auf einem ungenutzten Berg von Kundendaten. Wir von datasolut entwickeln KI, die Ihr Marketing optimiert. Damit Sie dem richtigen Kunden zur richtigen Zeit das richtige Angebot machen können.

Laurenz Wuttke

Auch interessant für Sie

Laurenz Wuttke datasolut Gmbh
Ich freue mich, wenn Sie sich zu unserem Newsletter anmelden.

Jetzt zum Newsletter anmelden!

Den datasolut Blog abonnieren und Expertentipps zu Marketingoptimierung mit künstlicher Intelligenz erhalten.

  • Spannende Interviews
  • Interessante Case Studies
  • Bewährte Praxistipps

Mit der Anmeldung stimmen Sie unserer Datenschutzerklärung zu.