Machine Learning: MLflow 1.12 verbessert die PyTorch-Integration

Die Plattform zum Verwalten von Machine-Learning-Projekten hat neue Funktionen zum Bereitstellen von Modellen, zum Umwandeln in TorchScript und fürs Logging.

In Pocket speichern vorlesen Druckansicht
Machine Learning: MLflow 1.12 verbessert die PyTorch-Integration
Lesezeit: 2 Min.
Inhaltsverzeichnis

Databricks hat MLflow in Version 1.12 veröffentlicht. Die Plattform zum Verwalten von Machine-Learning-Projekten (ML) bringt im aktuellen Release vor allem einige Verbesserungen im Zusammenspiel mit PyTorch. Die Neuerungen haben die Entwickler im Rahmen des ersten PyTorch Developer Day vorgestellt, der am 12. November als virtuelles Event stattgefunden hat.

Die Plattform MLflow im Überblick

MLFlow ist eine Plattform zum Verwalten der Lebenszykeln von ML-Projekten. Dahinter steht mit Databricks das Unternehmen, das die Entwickler von Apache Spark gegründet haben. MLflow besteht aus drei wesentlichen Komponenten zum Nachverfolgen von Experimenten (Experiment Tracking), zum Verwalten von ML-Modellen (Model Management) und für das Verteilen von Modellen in den produktiven Betrieb (Model Deployment).

Die Software integriert ML-Projekte unter anderem in Git und Conda und kümmert sich um die Versionierung von Modellen. Außerdem lassen sich die Projekte in CI/CD-Arbeitsabläufe (Continuous Integration, Continuous Delivery) und -Tools einbinden.

Microsoft beteiligt sich seit Frühjahr 2019 an MLflow, und seit Juni 2020 steht das Projekt unter dem Dach der Linux Foundation. Neben dem Open-Source-Projekt bietet Databricks eine kommerzielle Variante an, die zusätzliche Funktonen enthält.

MLflow 1.12 führt unabhängig von der erweiterten PyTorch-Integration eine universelle Autlogging-Funktion ein: Die Methode mlflow.autolog() soll automatisch alle relevanten Modelleigenschaften wie Parameter, Metriken und Artefakte protokollieren. Bisher war dazu der Aufruf der jeweiligen Methoden für die einzelnen Entities erforderlich.

Für das Zusammenspiel mit PyTorch bringt das aktuelle Release die API mlflow.pytorch.autolog zum automatischen Protokollieren der Metriken, Parameter und Modellen mit. Ebenso automatisierte Logs kann MLflow neuerdings von PyTorch-Lightning-Modellen erstellen. Das auf Performance optimierte Framework zum Modelltraining ist im Oktober in Version 1.0 erschienen.

MLflow kann zudem neuerdings TorchScript laden und verwalten. Mit TorchScript lassen sich Modelle erstellen, die zum einen serialisierbar sind und zum anderen ohne Python-Dependencies auskommen. Die Übersetzung mit dem Just-in-Time-Compiler (JIT) lässt sich ebenso aus MLflow anstoßen wie das Laden und Logging, wie folgender Code aus dem Databricks-Blog zeigt:

# Beliebiges PyTorch nn.Module oder pl.LightningModule
model = Net()
scripted_model = torch.jit.script(model)
...
mlflow.pytorch.log_model(scripted_model, "scripted_model")
model_uri = mlflow.get_artifact_uri("scripted_model")
loaded_model = mlflow.pytorch.load_model(model_uri)
...

Für das Verteilen von Anwendungen bringt Version 1.12 ein Plug-in für die Integration in TorchServe mit. Facebook hatte die Deployment-Bibliothek zusammen mit Amazon Web Services im Frühjahr vorgestellt. Über das Plug-in mlflow-torchserve lassen sich aus MLflow-Pipelines trainierte Modelle mit TorchServe bereitstellen.

Das Plug-in überführt die zuvor trainierten Modelle über TorchServe in den produktiven Betrieb.

(Bild: Databricks)

Eine weitere Neuerung jenseits der PyTorch-Integration ist die Methode mlflow.shap.log_explanation zum Loggen von Modell-Erklärungen nach SHapley Additive exPlanations (SHAP), einem an die Spieltheorie angelehnten Ansatz, die Ausgabe von ML-Modellen zu erklären.

Weitere Neuerungen in MLflow 1.12 lassen sich dem Databricks-Blog entnehmen. Eine vollständige Liste der Ergänzungen und Bugfixes findet sich in den Release Notes auf GitHub. Entwicklerinnen und Entwickler können die Software über den Python-Paketmanager PyPI mit dem Befehl pip install mlflow installieren. Der Sourcecode ist im GitHub-Repository abgelegt.

(rme)