Automatische Databricks-Protokollierung

Auf dieser Seite erfahren Sie, wie Sie die Databricks-Protokollierung anpassen können, die Modellparameter, Metriken, Dateien und Informationen zur Herkunft automatisch erfasst, wenn Sie Modelle anhand einer Vielzahl beliebter Bibliotheken für maschinelles Lernen trainieren. Trainingsläufe werden als MLflow-Tracking-Runs aufgezeichnet. Modelldateien werden auch nachverfolgt, sodass Sie diese problemlos in der MLflow-Modellregistrierung protokollieren können.

Hinweis

Um die Ablaufverfolgungsprotokollierung für KI-Workloads zu aktivieren, unterstützt MLflow die OpenAI-Autoprotokollierung.

Das folgende Video zeigt Databricks Autologging während einer Trainingssitzung eines scikit-learn-Modells 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

  • Databricks Autologging ist in allen Regionen mit Databricks Runtime 10.4 LTS ML oder höher allgemein 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.

Hinweis

Die automatische Protokollierung ist in serverlosen Rechenumgebungen nicht automatisch aktiviert. Für serverlose Compute-Cluster müssen Sie mlflow.autolog() explizit aufrufen, um die Autologging-Funktion zu aktivieren.

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. Databricks Autologging erfasst automatisch Lineage-Informationen zum Modell, Parameter und Metriken in MLflow Tracking. Sie können auch das Verhalten von Databricks Autologging anpassen.

Hinweis

Databricks-Autologging wird nicht auf Runs angewendet, die mit der MLflow fluent API und mlflow.start_run() erstellt werden. 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, zum Aktivieren beispielsweise von Modellprotokollierung (log_models), Protokoll-Datasets (log_datasets), Sammeln von Eingabebeispielen (log_input_examples), Protokollmodellsignaturen (log_model_signatures) oder Konfigurieren von Warnungen (silent) und mehr.

Zusätzliche Inhalte verfolgen

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)

Databricks-Autologging deaktivieren

Um die Databricks-Autoprotokollierung in einem interaktiven Python-Notebook in Azure Databricks zu deaktivieren, rufen Sie 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 – Maschinelles Lernwerkzeug
  • Apache Spark MLlib
  • TensorFlow
  • Keras
  • PyTorch Lightning
  • XGBoost
  • LightGBM
  • Gluon
  • Fast.ai
  • StatistikModelle
  • PaddlePaddle
  • OpenAI
  • LangChain

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

Aktivieren von MLflow Tracing

MLflow Tracing verwendet die Funktion autolog in den jeweiligen Integrationen der Modell-Frameworks, um die Tracing-Unterstützung für Integrationen, die Tracing unterstützen, zu aktivieren oder zu deaktivieren.

Um die Ablaufverfolgung beispielsweise bei Verwendung eines LlamaIndex-Modells zu aktivieren, verwenden Sie mlflow.llama_index.autolog() mit log_traces=True:

import mlflow
mlflow.llama_index.autolog(log_traces=True)

Hinweis

Bei serverlosen Compute-Clustern ist die automatische Protokollierung für Tracing nicht automatisch aktiviert. Sie müssen Autologging für die bestimmten Framework-Integrationen, die Sie nachverfolgen möchten, explizit aktivieren (zum Beispiel mlflow.openai.autolog() oder mlflow.langchain.autolog()).

Die unterstützten Integrationen, deren Autologging-Implementierungen die Ablaufverfolgung unterstützen, sind:

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 Informationen zum Modelltraining über die MLflow Tracking-API oder -Benutzeroberfläche freigeben, ändern oder löschen.

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 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 XGBoost-scikit-learn-Integration 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.