Automatische Databricks-Protokollierung

Die automatische Databricks-Protokollierung ist eine Lösung ohne Programmieraufwand zur Erweiterung der automatischen MLflow-Protokollierung, die eine automatische Nachverfolgung von Experimenten für Machine Learning-Trainingssitzungen in Azure Databricks ermöglicht.

Mithilfe der automatischen Databricks-Protokollierung werden Modellparameter, Metriken, Dateien und Informationen zur Herkunft automatisch erfasst, wenn Sie Modelle anhand einer Vielzahl beliebter Machine Learning-Bibliotheken trainieren. Trainingssitzungen werden als MLflow-Nachverfolgungsausführungen aufgezeichnet. Modelldateien werden auch nachverfolgt, sodass Sie diese problemlos in der MLflow-Modellregistrierung protokollieren und für die Echtzeitbewertung mithilfe der Modellbereitstellung bereitstellen können.

Das folgende Video zeigt die automatische Databricks-Protokollierung in einer Scikit-Learn-Modelltrainingssitzung in einem interaktiven Python-Notebook. Nachverfolgungsinformationen werden automatisch erfasst und auf der Randleiste unter „Experimentausführungen“ und auf der MLflow-Benutzeroberfläche angezeigt.

Beispiel für die automatische Protokollierung

Anforderungen

  • Die automatische Databricks-Protokollierung ist in allen Regionen mit Databricks Runtime 10.4 ML oder höher verfügbar.
  • Die automatische Databricks-Protokollierung ist in ausgewählten Vorschauregionen mit Databricks Runtime 9.1 LTS ML oder höher verfügbar.

So funktioniert's

Wenn Sie ein interaktives Python-Notebook an einen Azure Databricks-Cluster anfügen, ruft die automatische Databricks-Protokollierung mlflow.autolog() auf, um die Nachverfolgung für Ihre Modelltrainingssitzungen einzurichten. Wenn Sie Modelle im Notebook trainieren, werden die Informationen zum Modelltraining automatisch mithilfe derMLflow-Nachverfolgung nachverfolgt. Weitere Informationen darüber, wie die Trainingsdaten dieses Modells abgesichert und verwaltet werden, finden Sie unter Sicherheit und Datenverwaltung.

Die Standardkonfiguration für den Aufruf von mlflow.autolog() ist:

mlflow.autolog(
    log_input_examples=False,
    log_model_signatures=True,
    log_models=True,
    disable=False,
    exclusive=False,
    disable_for_unsupported_versions=True,
    silent=False
)

Sie können die Konfiguration der automatischen Protokollierung anpassen.

Verwendung

Um die automatische Databricks-Protokollierung zu nutzen, trainieren Sie ein Machine Learning-Modell in einem unterstützten Framework mithilfe eines interaktiven Azure Databricks-Python-Notebooks. Die automatische Databricks-Protokollierung zeichnet automatisch Informationen zur Herkunft des Modells sowie Parameter und Metriken für die MLflow-Nachverfolgung auf. Die können auch das Verhalten der automatischen Databricks-Protokollierung anpassen.

Hinweis

Die automatische Databricks-Protokollierung wird nicht auf Ausführungen angewendet, die die MLflow-Fluent-API mit mlflow.start_run() verwenden. In diesen Fällen müssen Sie mlflow.autolog() aufrufen, um den automatisch protokollierten Inhalt in der MLflow-Ausführung zu speichern. Weitere Informationen finden Sie unter Nachverfolgen zusätzlicher Inhalte.

Anpassen des Protokollierungsverhaltens

Passen Sie die Protokollierung mithilfe von mlflow.autolog() an. Diese Funktion stellt Konfigurationsparameter zur Verfügung, um beispielsweise die Modellprotokollierung zu aktivieren (log_models), Eingabebeispiele zu sammeln (log_input_examples) oder Warnungen zu konfigurieren (silent).

Nachverfolgen zusätzlicher Inhalte

Um zusätzliche Metriken, Parameter, Dateien und Metadaten mit MLflow-Ausführungen zu verfolgen, die von der automatischen Databricks-Protokollierung erstellt wurden, führen Sie die folgenden Schritte in einem interaktiven Python-Notebook in Azure Databricks aus:

  1. Rufen Sie mlflow.autolog() mit exclusive=False auf.
  2. Starten Sie mithilfe von mlflow.start_run() eine MLflow-Ausführung. Sie können diesen Aufruf in with mlflow.start_run() umschließen. Wenn Sie dies tun, wird die Ausführung nach Abschluss automatisch beendet.
  3. Verwenden Sie MLflow-Nachverfolgungsmethoden wie mlflow.log_param(), um Inhalte vor dem Training nachzuverfolgen.
  4. Trainieren Sie ein oder mehrere Machine Learning-Modelle in einem Framework mit Unterstützung der automatischen Databricks-Protokollierung.
  5. Verwenden Sie MLflow-Nachverfolgungsmethoden wie mlflow.log_metric(), um Inhalte nach dem Training nachzuverfolgen.
  6. Wenn Sie in Schritt 2 nicht with mlflow.start_run() verwendet haben, beenden Sie die MLflow-Ausführung mit mlflow.end_run().

Beispiele:

import mlflow
mlflow.autolog(exclusive=False)

with mlflow.start_run():
  mlflow.log_param("example_param", "example_value")
  # <your model training code here>
  mlflow.log_metric("example_metric", 5)

Deaktivieren der automatischen Databricks-Protokollierung

Rufen Sie zum Deaktivieren der automatischen Databricks-Protokollierung in einem interaktiven Python-Notebook in Azure Databricks mlflow.autolog() mit disable=True auf:

import mlflow
mlflow.autolog(disable=True)

Administratoren können die automatische Databricks-Protokollierung auch für alle Cluster in einem Arbeitsbereich auf der Registerkarte Erweitert der Seite „Administratoreinstellungen“ deaktivieren. Damit diese Änderung wirksam wird, müssen Cluster neu gestartet werden.

Unterstützte Umgebungen und Frameworks

Die automatische Databricks-Protokollierung wird in interaktiven Python-Notebooks unterstützt und ist für die folgenden ML-Frameworks verfügbar:

  • scikit-learn
  • Apache Spark MLlib
  • TensorFlow
  • Keras
  • PyTorch Lightning
  • XGBoost
  • LightGBM
  • Gluon
  • Fast.ai (version 1.x)
  • statsmodels

Weitere Informationen zu den unterstützten Frameworks finden Sie unter Automatische MLflow-Protokollierung.

Sicherheit und Datenverwaltung

Alle mit der automatischen Databricks-Protokollierung nachverfolgten Modelltrainingsinformationen werden in der MLflow-Nachverfolgung gespeichert und sind durch MLflow-Experimentberechtigungen abgesichert. Sie können Modelltrainingsinformationen mithilfe der API oder Benutzeroberfläche für die MLflow-Nachverfolgung freigeben.

Verwaltung

Administratoren können die automatische Databricks-Protokollierung für alle interaktiven Notebook-Sitzungen in ihrem Arbeitsbereich auf der Registerkarte Erweitert der Seite „Administratoreinstellungen“ aktivieren oder deaktivieren. Änderungen werden erst nach Neustart des Clusters wirksam.

Einschränkungen

  • Die automatische Databricks-Protokollierung wird für Azure Databricks-Aufträge nicht unterstützt. Um die automatische Protokollierung von Aufträgen zu ermöglichen, können Sie mlflow.autolog() explizit aufrufen.
  • Die automatische Databricks-Protokollierung ist nur auf dem Treiberknoten Ihres Azure Databricks-Clusters aktiviert. Um die automatische Protokollierung auf Workerknoten zu aktivieren, müssen Sie innerhalb des Codes, der auf jedem Workerknoten ausgeführt wird, mlflow.autolog() explizit aufrufen.
  • Die Integration in XGBoost scikit-learn wird nicht unterstützt.

Apache Spark MLlib, Hyperopt und automatisierte MLflow-Nachverfolgung

Die automatische Databricks-Protokollierung ändert nicht das Verhalten der vorhandenen automatischen MLflow-Nachverfolgungsintegrationen für Apache Spark MLlib und Hyperopt.

Hinweis

In Databricks Runtime 10.1 ML wird durch Deaktivieren der automatischen MLflow-Nachverfolgung für die Apache Spark MLlib-Modelle CrossValidator und TrainValidationSplit auch das Feature der automatischen Databricks-Protokollierung für alle Apache Spark MLlib-Modelle deaktiviert.