MLflow ist eine Open-Source-Plattform, die entwickelt wurde, um den Lebenszyklus des maschinellen Lernens zu verwalten, einschließlich Experimentierung, Reproduzierbarkeit und Bereitstellung. Sie wurde 2018 von Databricks eingeführt und hat sich seitdem zu einem weit verbreiteten Werkzeug in der Machine-Learning-Community entwickelt. Die Plattform bietet eine Reihe von leichtgewichtigen APIs und einen zentralen Server, um die Zusammenarbeit zwischen Datenwissenschaftlern und Ingenieuren zu erleichtern.
Die Kernphilosophie von MLflow ist es, agnostisch gegenüber Bibliotheken und Frameworks zu sein und beliebte Werkzeuge wie TensorFlow, PyTorch und scikit-learn zu unterstützen. Es ist so konzipiert, dass es sich in bestehende Arbeitsabläufe integriert, ohne dass wesentliche Änderungen am Code erforderlich sind. MLflow ist in Python, Java und JavaScript geschrieben, und seine Komponenten können unabhängig oder zusammen verwendet werden.
Komponenten
MLflow ist in vier Hauptkomponenten organisiert: Tracking, Projekte, Modelle und Registry. Jede Komponente adressiert einen spezifischen Aspekt des ML-Lebenszyklus.
MLflow Tracking ist ein Protokollierungssystem, das Parameter, Metriken und Artefakte für jeden Lauf aufzeichnet. Es bietet eine webbasierte Benutzeroberfläche, um Experimente zu vergleichen und Ergebnisse zu visualisieren. Tracking kann lokal oder mit einem Remote-Server verwendet werden und unterstützt Integrationen mit Cloud-Speicherdiensten wie Amazon Web Services und Azure.
MLflow Projects verpacken Code in einem wiederverwendbaren und reproduzierbaren Format. Ein Projekt wird durch eine YAML-Datei definiert, die Abhängigkeiten, Einstiegspunkte und die Umgebung festlegt. Dies ermöglicht es, Läufe konsistent auf verschiedenen Maschinen auszuführen, einschließlich auf Google Cloud oder anderen Cloud-Plattformen.
MLflow Models bieten ein Standardformat zum Verpacken von Modellen des maschinellen Lernens. Dieses Format enthält die Abhängigkeiten des Modells und eine Scoring-Funktion, was die Bereitstellung in verschiedenen Serving-Umgebungen ermöglicht. Modelle können in mehreren Varianten gespeichert werden, wie Python-Funktion, R oder Java.
MLflow Model Registry ist ein zentraler Modellspeicher, der Modellversionen, Phasenübergänge und Annotationen verwaltet. Es erleichtert die Zusammenarbeit, indem es Teams ermöglicht, Modelle kontrolliert zu registrieren, zu teilen und bereitzustellen.
Geschichte und Entwicklung
Die erste Version von MLflow wurde im Juni 2018 als Open-Source-Projekt von Databricks veröffentlicht. Die erste Veröffentlichung konzentrierte sich auf die Tracking- und Projekte-Komponenten. Die Model Registry wurde in Version 1.0 hinzugefügt, die im Juni 2019 veröffentlicht wurde. Seitdem hat das Projekt regelmäßige Updates erhalten, mit Beiträgen aus einer breiten Community von Entwicklern.
MLflow wurde 2020 ein Projekt der Linux Foundation, was dazu beitrug, seine langfristige Governance und Neutralität zu sichern. Dieser Übergang war Teil eines breiteren Trends, bei dem Open-Source-ML-Tools institutionelle Unterstützung erhielten. Ab 2023 ist MLflow eine der am weitesten verbreiteten Open-Source-ML-Lebenszyklus-Plattformen, mit Tausenden von Organisationen, die es in der Produktion verwenden.
Anwendungsfälle
MLflow wird häufig für die Experimentverfolgung in Forschungs- und Entwicklungsumgebungen verwendet. Datenwissenschaftler können Hyperparameter und Metriken für jeden Trainingslauf protokollieren und dann Ergebnisse vergleichen, um das beste Modell auszuwählen. Dies ist besonders nützlich in Deep-Learning-Projekten, in denen viele Konfigurationen getestet werden.
Ein weiterer wichtiger Anwendungsfall ist die Modellbereitstellung. MLflow-Modelle können mit dem integrierten Serving-Tool als REST-Endpunkte bereitgestellt oder auf Cloud-Plattformen wie AWS Trainium oder Oracle Cloud exportiert werden. Dies vereinfacht den Übergang von der Experimentierung zur Produktion.
Die Plattform unterstützt auch kollaborative Arbeitsabläufe. Teams können die Model Registry verwenden, um Modellversionen zu verwalten und sicherzustellen, dass nur genehmigte Modelle bereitgestellt werden. Dies ist in regulierten Branchen, in denen Prüfbarkeit erforderlich ist, unerlässlich.
Integration und Ökosystem
MLflow integriert sich in eine breite Palette von ML- und Datenwerkzeugen. Es hat native Unterstützung für beliebte Bibliotheken wie scikit-learn und XGBoost sowie für Deep-Learning-Frameworks. Die Plattform funktioniert auch mit Orchestrierungswerkzeugen wie Apache Airflow und Kubernetes für groß angelegte Bereitstellungen.
Cloud-Anbieter bieten verwaltete MLflow-Dienste an. Zum Beispiel bietet Databricks eine vollständig verwaltete Version an, während Azure und Google Cloud MLflow in ihre ML-Plattformen integriert haben. Diese Dienste reduzieren den betrieblichen Aufwand für die Ausführung der MLflow-Infrastruktur.
Die Erweiterbarkeit von MLflow ist ein Schlüsselmerkmal. Benutzer können benutzerdefinierte Plugins schreiben, um neue Bibliotheken oder Speicher-Backends zu unterstützen. Die Community pflegt ein Repository von Plugins für verschiedene Anwendungsfälle, einschließlich Modellerklärbarkeit und Datenversionierung.
Vergleich mit Alternativen
Mehrere andere Werkzeuge adressieren ähnliche Bedürfnisse im ML-Lebenszyklus. Kubeflow ist eine Kubernetes-native Plattform, die sich auf End-to-End-Pipelines konzentriert, während TensorFlow Extended (TFX) auf Produktions-ML-Pipelines zugeschnitten ist. MLflow wird oft wegen seiner Einfachheit und seines framework-agnostischen Designs bevorzugt.
Im Vergleich zu kommerziellen Angeboten wie Neptune.ai oder Weights & Biases ist MLflow Open-Source und selbst hostbar, was Organisationen die volle Kontrolle über ihre Daten gibt. Es kann jedoch mehr Einrichtungsaufwand erfordern als vollständig verwaltete Alternativen.
Einschränkungen und Überlegungen
Obwohl MLflow leistungsfähig ist, hat es einige Einschränkungen. Die Tracking-Komponente kann bei einer sehr großen Anzahl von Läufen langsam werden, und die Benutzeroberfläche skaliert möglicherweise nicht gut für massive Experimente. Die Model Registry fehlt einige erweiterte Governance-Funktionen, die in kommerziellen Werkzeugen zu finden sind.
Sicherheit ist eine weitere Überlegung. Beim Betrieb eines Remote-Tracking-Servers müssen Administratoren Authentifizierung und Verschlüsselung konfigurieren. Die Standardkonfiguration ist nicht sicher für Multi-Tenant-Umgebungen, daher sind zusätzliche Maßnahmen für den Produktionseinsatz erforderlich.
Trotz dieser Herausforderungen bleibt MLflow eine robuste Wahl für viele Organisationen. Seine aktive Community und kontinuierliche Entwicklung stellen sicher, dass es sich weiterentwickelt, um neue Anforderungen in der Künstliche-Intelligenz-Landschaft zu erfüllen.
Zukünftige Richtungen
Das MLflow-Projekt entwickelt sich weiter. Jüngste Veröffentlichungen haben sich auf die Verbesserung der Leistung, die Unterstützung neuer Modellvarianten und die Verbesserung der Benutzeroberfläche konzentriert. Es gibt laufende Arbeiten zur Integration in Large-Language-Model-Arbeitsabläufe, einschließlich Tracking für Feinabstimmung und Bewertung.
Mit dem Wachstum von Generativer KI wird MLflow voraussichtlich seine Fähigkeiten zur Verwaltung von Foundation-Modellen erweitern. Dies umfasst Funktionen für Prompt-Tracking und Modellbewertung. Die Governance des Projekts unter der Linux Foundation bietet eine stabile Grundlage für diese Entwicklungen.