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. Trainingssitzungen werden als MLflow-Nachverfolgungsausführungen aufgezeichnet. Modelldateien werden auch nachverfolgt, sodass Sie diese problemlos in der MLflow-Modellregistrierung protokollieren können.
Hinweis
Zum Aktivieren der Ablaufprotokollierung für generative KI-Workloads unterstützt MLflow die OpenAI-Autoprotokollierung.
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.
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, 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.
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:
- Rufen Sie mlflow.autolog() mit
exclusive=False
auf. - 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. - Verwenden Sie MLflow-Nachverfolgungsmethoden wie mlflow.log_param(), um Inhalte vor dem Training nachzuverfolgen.
- Trainieren Sie ein oder mehrere Machine Learning-Modelle in einem Framework mit Unterstützung der automatischen Databricks-Protokollierung.
- Verwenden Sie MLflow-Nachverfolgungsmethoden wie mlflow.log_metric(), um Inhalte nach dem Training nachzuverfolgen.
- 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
- statsmodels
- PaddlePaddle
- OpenAI
- LangChain
Weitere Informationen zu den unterstützten Frameworks finden Sie unter Automatische MLflow-Protokollierung.
Aktivierung der MLflow-Ablaufverfolgung
Die MLflow-Ablaufverfolgung verwendet das autolog
-Feature innerhalb der jeweiligen Modell-Framework-Integrationen, um die Aktivierung oder Deaktivierung der Ablaufverfolgungsunterstützung für Integrationen zu steuern, die die Ablaufverfolgung unterstützen.
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)
Die unterstützten Integrationen mit Ablaufverfolgungsaktivierung in ihren Autoprotokollimplementierungen 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 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.