Automatyczne rejestrowanie w usłudze Databricks

Automatyczne rejestrowanie usługi Databricks to rozwiązanie bez kodu, które rozszerza automatyczne rejestrowanie MLflow w celu dostarczania automatycznego śledzenia eksperymentów na potrzeby sesji uczenia maszynowego w usłudze Azure Databricks.

Dzięki funkcji automatycznego rejestrowania usługi Databricks parametry modelu, metryki, pliki i informacje o pochodzenia są automatycznie przechwytywane podczas trenowania modeli z różnych popularnych bibliotek uczenia maszynowego. Sesje szkoleniowe są rejestrowane jako przebiegi śledzenia MLflow. Pliki modelu są również śledzone, dzięki czemu można je łatwo rejestrować w rejestrze modeli MLflow i wdrażać je w celu oceniania w czasie rzeczywistym za pomocą funkcji obsługi modelu.

W poniższym filmie wideo przedstawiono automatyczne rejestrowanie usługi Databricks z sesją trenowania modelu scikit-learn w interaktywnym notesie języka Python. Informacje śledzenia są automatycznie przechwytywane i wyświetlane na pasku bocznym Przebiegi eksperymentów oraz w interfejsie użytkownika platformy MLflow.

Przykład automatycznego rejestrowania

Wymagania

  • Automatyczne rejestrowanie usługi Databricks jest ogólnie dostępne we wszystkich regionach przy użyciu środowiska Databricks Runtime 10.4 LTS ML lub nowszego.
  • Automatyczne rejestrowanie usługi Databricks jest dostępne w wybranych regionach wersji zapoznawczej z usługą Databricks Runtime 9.1 LTS ML lub nowszym.

Jak to działa

Po dołączeniu interaktywnego notesu języka Python do klastra usługi Azure Databricks funkcja automatycznego rejestrowania usługi Databricks wywołuje metodę mlflow.autolog() w celu skonfigurowania śledzenia sesji trenowania modelu. Podczas trenowania modeli w notesie informacje o trenowaniu modelu są automatycznie śledzone za pomocą śledzenia MLflow. Aby uzyskać informacje o sposobie zabezpieczania i zarządzania informacjami dotyczącymi trenowania modelu, zobacz Zabezpieczenia i zarządzanie danymi.

Domyślna konfiguracja wywołania mlflow.autolog() to:

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

Konfigurację automatycznego rejestrowania można dostosować.

Użycie

Aby użyć automatycznego rejestrowania usługi Databricks, wytrenuj model uczenia maszynowego w obsługiwanej strukturze przy użyciu interaktywnego notesu języka Python usługi Azure Databricks. Automatyczne rejestrowanie usługi Databricks automatycznie rejestruje informacje o pochodzenia modelu, parametry i metryki do śledzenia MLflow. Możesz również dostosować zachowanie funkcji automatycznego rejestrowania usługi Databricks.

Uwaga

Automatyczne rejestrowanie usługi Databricks nie jest stosowane do przebiegów utworzonych przy użyciu płynnego interfejsu API MLflow z usługą mlflow.start_run(). W takich przypadkach należy wywołać metodę mlflow.autolog() , aby zapisać zawartość autologged do uruchomienia biblioteki MLflow. Zobacz Śledzenie dodatkowej zawartości.

Dostosowywanie zachowania rejestrowania

Aby dostosować rejestrowanie, użyj metody mlflow.autolog(). Ta funkcja udostępnia parametry konfiguracji umożliwiające rejestrowanie modelu (log_models), zbieranie przykładów danych wejściowych (log_input_examples), konfigurowanie ostrzeżeń (silent) i nie tylko.

Śledzenie dodatkowej zawartości

Aby śledzić dodatkowe metryki, parametry, pliki i metadane przy użyciu przebiegów MLflow utworzonych przez funkcję automatycznego rejestrowania usługi Databricks, wykonaj następujące kroki w interaktywnym notesie języka Python usługi Azure Databricks:

  1. Wywołaj metodę mlflow.autolog() za pomocą polecenia exclusive=False.
  2. Uruchom przebieg platformy MLflow przy użyciu mlflow.start_run (). To wywołanie można opakowować w pliku with mlflow.start_run(). Po wykonaniu tego zadania przebieg zostanie automatycznie zakończony.
  3. Użyj metod śledzenia MLflow, takich jak mlflow.log_param(), aby śledzić zawartość przed trenowania.
  4. Trenowanie co najmniej jednego modelu uczenia maszynowego w strukturze obsługiwanej przez funkcję automatycznego rejestrowania w usłudze Databricks.
  5. Użyj metod śledzenia MLflow, takich jak mlflow.log_metric(), aby śledzić zawartość po szkoleniu.
  6. Jeśli nie użyto with mlflow.start_run() polecenia w kroku 2, zakończ przebieg platformy MLflow przy użyciu mlflow.end_run().

Na przykład:

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)

Wyłączanie automatycznego rejestrowania usługi Databricks

Aby wyłączyć automatyczne rejestrowanie usługi Databricks w interaktywnym notesie języka Python usługi Azure Databricks, wywołaj metodę mlflow.autolog() za pomocą polecenia :disable=True

import mlflow
mlflow.autolog(disable=True)

Administracja istratory mogą również wyłączyć automatyczne rejestrowanie usługi Databricks dla wszystkich klastrów w obszarze roboczym z poziomu Karta Zaawansowane na stronie ustawień administratora. Aby ta zmiana weszła w życie, należy ponownie uruchomić klastry.

Obsługiwane środowiska i struktury

Automatyczne rejestrowanie usługi Databricks jest obsługiwane w interaktywnych notesach języka Python i jest dostępne dla następujących struktur uczenia maszynowego:

  • scikit-learn
  • Biblioteka MLlib platformy Apache Spark
  • TensorFlow
  • Keras
  • Piorun PyTorch
  • XGBoost
  • LightGBM
  • Gluon
  • Fast.ai (wersja 1.x)
  • statsmodels.

Aby uzyskać więcej informacji na temat każdej z obsługiwanych platform, zobacz Automatyczne rejestrowanie MLflow.

Zarządzanie zabezpieczeniami i danymi

Wszystkie informacje o trenowaniu modelu śledzone za pomocą automatycznego rejestrowania usługi Databricks są przechowywane w śledzeniu MLflow i są zabezpieczone przez uprawnienia eksperymentu MLflow. Informacje o trenowaniu modelu można udostępniać, modyfikować lub usuwać przy użyciu interfejsu API śledzenia platformy MLflow lub interfejsu użytkownika.

Administracja

Administracja istratory mogą włączać lub wyłączać automatyczne rejestrowanie usługi Databricks dla wszystkich interakcyjnych sesji notesu w obszarze roboczym w obszarze roboczymKarta Zaawansowane na stronie ustawień administratora. Zmiany nie zostaną zastosowane do momentu ponownego uruchomienia klastra.

Ograniczenia

  • Automatyczne rejestrowanie usługi Databricks nie jest obsługiwane w zadaniach usługi Azure Databricks. Aby użyć automatycznego rejestrowania z zadań, można jawnie wywołać metodę mlflow.autolog().
  • Automatyczne rejestrowanie usługi Databricks jest włączone tylko w węźle sterownika klastra usługi Azure Databricks. Aby użyć automatycznego rejestrowania z węzłów procesu roboczego, należy jawnie wywołać metodę mlflow.autolog() z poziomu kodu wykonywanego przez każdy proces roboczy.
  • Integracja biblioteki scikit-learn biblioteki XGBoost nie jest obsługiwana.

Apache Spark MLlib, Hyperopt i zautomatyzowane śledzenie MLflow

Automatyczne rejestrowanie usługi Databricks nie zmienia zachowania istniejących automatycznych integracji śledzenia MLflow dla bibliotek MLlib i Hyperopt platformy Apache Spark.

Uwaga

W środowisku Databricks Runtime 10.1 ML wyłączenie automatycznej integracji śledzenia MLflow dla biblioteki MLlib CrossValidator platformy Apache Spark i TrainValidationSplit modeli powoduje również wyłączenie funkcji automatycznego rejestrowania usługi Databricks dla wszystkich modeli MLlib platformy Apache Spark.