Automatisk loggning av Databricks

Databricks Autologging är en kodfri lösning som utökar automatisk MLflow-loggning för att leverera automatisk experimentspårning för maskininlärningsträningssessioner i Azure Databricks. Med Databricks Autologging registreras modellparametrar, mått, filer och härkomstinformation automatiskt när du tränar modeller från en mängd populära maskininlärningsbibliotek. Träningssessioner registreras som MLflow-spårningskörningar. Modellfiler spåras också så att du enkelt kan logga dem till MLflow Model Registry och distribuera dem för realtidsbedömning med MLflow Model Serving.

Följande video visar Databricks Autologging med en scikit-learn-modellträningssession i en interaktiv Python-anteckningsbok. Spårningsinformation samlas in och visas automatiskt i sidofältet Experimentkörningar och I användargränssnittet för MLflow.

Autologging example

Krav

  • Automatisk databricks-loggning är allmänt tillgängligt i alla regioner med Databricks Runtime 10.3 ML eller senare.
  • Databricks Autologging är tillgängligt i utvalda förhandsgranskningsregioner med Databricks Runtime 9.0 ML eller senare.

Så här fungerar det

När du kopplar en interaktiv Python-anteckningsbok till ett Azure Databricks-kluster anropar Databricks Autologging mlflow.autolog() för att konfigurera spårning för dina modellträningssessioner. När du tränar modeller i notebook-filen spåras modellträningsinformation automatiskt med MLflow Tracking. Information om hur den här modellträningsinformationen skyddas och hanteras finns i Säkerhet och datahantering.

Standardkonfigurationen för anropet mlflow.autolog() är:

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

Du kan anpassa konfigurationen för automatisk loggning.

Användning

Om du vill använda Databricks Autologging tränar du en maskininlärningsmodell i ett ramverk som stöds med hjälp av en interaktiv Azure Databricks Python-anteckningsbok. Automatisk loggning av Databricks registrerar automatiskt information om modellens ursprung, parametrar och mått i MLflow Tracking. Du kan också anpassa beteendet för Databricks Autologging.

Anteckning

Automatisk loggning av Databricks tillämpas inte på körningar som skapats med hjälp av MLflow fluent API med mlflow.start_run(). I dessa fall måste du anropa mlflow.autolog() för att spara automatiskt loggat innehåll i MLflow-körningen. Se Spåra ytterligare innehåll.

Anpassa loggningsbeteende

Om du vill anpassa loggning använder du mlflow.autolog(). Den här funktionen tillhandahåller konfigurationsparametrar för att aktivera modellloggning (log_models), samla in indataexempel (log_input_examples), konfigurera varningar (silent) med mera.

Spåra ytterligare innehåll

Följ dessa steg i en interaktiv Python-notebook för Azure Databricks för att spåra ytterligare mått, parametrar, filer och metadata med MLflow-körningar som skapats av Databricks Autologging:

  1. Anropa mlflow.autolog() med exclusive=False.
  2. Starta en MLflow-körning med mlflow.start_run(). Du kan omsluta det här anropet i with mlflow.start_run(). När du gör det avslutas körningen automatiskt när den har slutförts.
  3. Använd MLflow Tracking-metoder, till exempel mlflow.log_param(), för att spåra förträningsinnehåll.
  4. Träna en eller flera maskininlärningsmodeller i ett ramverk som stöds av Databricks Autologging.
  5. Använd MLflow Tracking-metoder, till exempel mlflow.log_metric(), för att spåra innehåll efter träningen.
  6. Om du inte använde with mlflow.start_run() i steg 2 avslutar du MLflow-körningen med mlflow.end_run().

Till exempel:

import mlflow
mlflow.autolog(exclusive=False)

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

Inaktivera Automatisk loggning av Databricks

Om du vill inaktivera Automatisk databricks-loggning i en interaktiv Python-notebook-fil i Azure Databricks anropar du mlflow.autolog() med disable=True:

import mlflow
mlflow.autolog(disable=True)

Administratörer kan också inaktivera Automatisk loggning av Databricks för alla kluster på en arbetsyta från fliken Avancerat i administratörskonsolen. Kluster måste startas om för att den här ändringen ska börja gälla.

Miljöer och ramverk som stöds

Automatisk loggning av Databricks stöds i interaktiva Python-notebook-filer och är tillgängligt för följande ML ramverk:

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

Mer information om vart och ett av de ramverk som stöds finns i automatisk MLflow-loggning.

Säkerhet och datahantering

All modellträningsinformation som spåras med Databricks Autologging lagras i MLflow Tracking och skyddas av MLflow-experimentbehörigheter. Du kan dela, ändra eller ta bort modellträningsinformation med hjälp av MLflow Tracking-API :et eller användargränssnittet.

Administration

Administratörer kan aktivera eller inaktivera Automatisk loggning av Databricks för alla interaktiva notebook-sessioner på arbetsytan på fliken Avancerat i administratörskonsolen. Ändringarna börjar inte gälla förrän klustret har startats om.

Begränsningar

  • Automatisk loggning av Databricks stöds inte i Databricks Runtime 8.4 ML eller nedan, inte heller i någon version av Databricks Runtime. Om du vill använda automatisk loggning i dessa körningsversioner kan du uttryckligen anropa mlflow.autolog().
  • Automatisk loggning av Databricks stöds inte i Azure Databricks-jobb. Om du vill använda automatisk loggning från jobb kan du uttryckligen anropa mlflow.autolog().
  • Automatisk loggning av Databricks är endast aktiverat på drivrutinsnoden i ditt Azure Databricks-kluster. Om du vill använda automatisk loggning från arbetsnoder måste du uttryckligen anropa mlflow.autolog() inifrån koden som körs på varje arbetare.
  • XGBoost scikit-learn-integrering stöds inte.

Apache Spark MLlib, Hyperopt och automatiserad MLflow-spårning

Databricks Autologging ändrar inte beteendet för befintliga automatiserade MLflow-spårningsintegreringar för Apache Spark MLlib och Hyperopt.

Anteckning

I Databricks Runtime 10.1-ML inaktiverar du även den automatiserade MLflow-spårningsintegrering för Apache Spark MLlib CrossValidator och TrainValidationSplit modeller databricks autologgningsfunktionen för alla Apache Spark MLlib-modeller.