MLflow ist eine Plattform zur Rationalisierung der maschinellen Lernentwicklung, einschließlich der Verfolgung von Experimenten, dem Packen von Code in reproduzierbare Läufe sowie der gemeinsamen Nutzung und Bereitstellung von Modellen. MLflow bietet eine Reihe leichtgewichtiger APIs, die mit jeder vorhandenen Anwendung oder Bibliothek für maschinelles Lernen (TensorFlow, PyTorch, XGBoost usw.) überall dort verwendet werden können, wo Sie derzeit ML-Code ausführen (z. B. in Notebooks, eigenständigen Anwendungen oder in der Cloud). Die aktuellen Komponenten von MLflow sind:
MLflow-Tracking: Eine API zum Protokollieren von Parametern, Code und Ergebnissen in Experimenten zum maschinellen Lernen und zum Vergleichen dieser mithilfe einer interaktiven Benutzeroberfläche.
MLflow-Projekte: Ein Code-Paketformat für reproduzierbare Ausführungen mit Conda und Docker, damit Sie Ihren ML-Code mit anderen teilen können.
MLflow-Modelle: Ein Modellverpackungsformat und Tools, mit denen Sie problemlos dasselbe Modell (aus einer beliebigen ML-Bibliothek) für die Stapel- und Echtzeitbewertung auf Plattformen wie Docker, Apache Spark, Azure ML und AWS SageMaker bereitstellen können.
MLflow-Modellregistrierung: Ein zentraler Modellspeicher, eine Reihe von APIs und eine Benutzeroberfläche zur gemeinsamen Verwaltung des gesamten Lebenszyklus von MLflow-Modellen.
Pakete
PyPI | |
conda-forge | |
CRAN | |
Maven Central |
Jobstatus
Installieren Sie MLflow von PyPI über pip install mlflow
MLflow erfordert, dass sich conda
für die Projektfunktion im PATH
befindet.
Hier sind auch nächtliche Schnappschüsse des MLflow-Masters verfügbar.
Installieren Sie eine Teilmenge von MLflow mit geringerer Abhängigkeit von PyPI über pip install mlflow-skinny
. Zusätzliche Abhängigkeiten können pro gewünschtem Szenario hinzugefügt werden. Beispielsweise ermöglicht pip install mlflow-skinny pandas numpy
die Unterstützung von mlflow.pyfunc.log_model.
Die offizielle Dokumentation für MLflow finden Sie unter https://mlflow.org/docs/latest/index.html.
Die aktuelle MLflow-Roadmap ist unter https://github.com/mlflow/mlflow/milestone/3 verfügbar. Wir suchen Beiträge zu allen unseren Roadmap-Elementen mit dem Label help wanted
“. Weitere Informationen finden Sie im Abschnitt „Mitwirken“.
Hilfe oder Fragen zur MLflow-Nutzung (z. B. „Wie mache ich X?“) finden Sie in den Dokumenten oder bei Stack Overflow.
Um einen Fehler zu melden, ein Dokumentationsproblem einzureichen oder eine Funktionsanfrage einzureichen, öffnen Sie bitte ein GitHub-Problem.
Für Veröffentlichungsankündigungen und andere Diskussionen abonnieren Sie bitte unsere Mailingliste ([email protected]) oder besuchen Sie uns auf Slack.
Die Programme in examples
verwenden die MLflow Tracking API. Führen Sie zum Beispiel Folgendes aus:
Python-Beispiele/quickstart/mlflow_tracking.py
Dieses Programm verwendet die MLflow-Tracking-API, die Tracking-Daten in ./mlruns
protokolliert. Dies kann dann mit der Tracking-Benutzeroberfläche angezeigt werden.
Die MLflow-Tracking-Benutzeroberfläche zeigt unter ./mlruns
angemeldete Ausführungen unter http://localhost:5000 an. Beginnen Sie mit:
mlflow-Benutzeroberfläche
Hinweis: Es wird nicht empfohlen, mlflow ui
innerhalb eines Klons von MLflow auszuführen. Dadurch wird die Entwickler-Benutzeroberfläche aus der Quelle ausgeführt. Wir empfehlen, die Benutzeroberfläche in einem anderen Arbeitsverzeichnis auszuführen und über die Option --backend-store-uri
einen Backend-Store anzugeben. Alternativ finden Sie Anweisungen zum Ausführen der Entwickler-Benutzeroberfläche im Mitwirkendenhandbuch.
Mit dem Befehl mlflow run
können Sie ein mit einer MLproject-Datei gepacktes Projekt über einen lokalen Pfad oder einen Git-URI ausführen:
mlflow run examples/sklearn_elasticnet_wine -P alpha=0.4 mlflow führt https://github.com/mlflow/mlflow-example.git -P alpha=0.4 aus
examples/sklearn_elasticnet_wine
finden Sie ein Beispielprojekt mit einer MLproject-Datei.
Um die Verwaltung von Modellen zu veranschaulichen, kann das Paket mlflow.sklearn
scikit-learn-Modelle als MLflow-Artefakte protokollieren und sie dann erneut zur Bereitstellung laden. In examples/sklearn_logistic_regression/train.py
finden Sie eine Beispiel-Trainingsanwendung, die Sie wie folgt ausführen können:
$ Python-Beispiele/sklearn_logistic_regression/train.py Punktzahl: 0,666 Modell im Lauf <run-id> gespeichert $ mlflow-Modelle dienen --model-uri runs:/<run-id>/model $ curl -d '{"dataframe_split": {"columns":[0],"index":[0,1],"data":[[1],[-1]]}}' -H 'Inhalt -Type: application/json' localhost:5000/invocations
Hinweis: Wenn Sie MLflow Skinny ( pip install mlflow-skinny
) für die Modellbereitstellung verwenden, müssen zusätzliche erforderliche Abhängigkeiten (nämlich flask
) installiert werden, damit der MLflow-Server funktioniert.
Das offizielle MLflow Docker-Image ist auf GitHub Container Registry unter https://ghcr.io/mlflow/mlflow verfügbar.
export CR_PAT=YOUR_TOKENecho $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin# Ziehen Sie die neueste Versiondocker pull ghcr.io/mlflow/mlflow# Pull 2.2.1docker pull ghcr.io/mlflow/mlflow:v2.2.1
Wir freuen uns über Beiträge zu MLflow. Wir suchen auch nach Beiträgen zu Elementen der MLflow-Roadmap. Weitere Informationen zum Beitragen zu MLflow finden Sie in unserem Beitragsleitfaden.
MLflow wird derzeit von den folgenden Kernmitgliedern mit bedeutenden Beiträgen von Hunderten außergewöhnlich talentierter Community-Mitglieder gepflegt.
Ben Wilson
Corey Zumar
Daniel Lok
Gabriel Fu
Harutaka Kawamura
Serena Ruan
Weichen Xu
Yuki Watanabe
Tomu Hirata