Automatyczne rejestrowanie w usłudze Databricks
Na tej stronie opisano sposób dostosowywania automatycznego rejestrowania usługi Databricks, która automatycznie przechwytuje parametersmodelu, metryki, pliki i informacje o pochodzeniu, podczas trenowania modeli z jednej 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.
Uwaga
Aby włączyć rejestrowanie śledzenia dla generowanych obciążeń sztucznej inteligencji, platforma MLflow obsługuje automatyczne rejestrowanie openAI.
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.
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 regionach select wersji zapoznawczej za pomocą środowiska Databricks Runtime 9.1 LTS ML lub nowszego.
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 mlflow.autolog(), aby set śledzenie 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, parametersi metryki w celu ś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 konfigurację parameters umożliwiającą rejestrowanie modeli (log_models
), rejestrowanie zestawów danych (log_datasets
), zbieranie przykładów danych wejściowych (log_input_examples
), rejestrowanie podpisów modeli (log_model_signatures
), konfigurowanie ostrzeżeń (silent
) i nie tylko.
Śledzenie dodatkowej zawartości
Aby śledzić dodatkowe metryki, parameters, pliki i metadane za pomocą 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:
- Wywołaj metodę mlflow.autolog() za pomocą polecenia
exclusive=False
. - 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. - Użyj metod śledzenia MLflow, takich jak mlflow.log_param(), aby śledzić zawartość przed trenowania.
- Trenowanie co najmniej jednego modelu uczenia maszynowego w strukturze obsługiwanej przez funkcję automatycznego rejestrowania w usłudze Databricks.
- Użyj metod śledzenia MLflow, takich jak mlflow.log_metric(), aby śledzić zawartość po szkoleniu.
- 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)
Administratorzy mogą również wyłączyć automatyczne rejestrowanie usługi Databricks dla wszystkich klastrów w obszarze roboczym na karcie 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
- statsmodels
- PaddlePaddle
- OpenAI
- LangChain
Aby uzyskać więcej informacji na temat każdej z obsługiwanych platform, zobacz Automatyczne rejestrowanie MLflow.
Włączanie śledzenia MLflow
Śledzenie MLflow korzysta z autolog
funkcji w ramach odpowiednich integracji struktury modelu w celu kontrolowania włączania lub wyłączania obsługi śledzenia dla integracji, które obsługują śledzenie.
Aby na przykład włączyć śledzenie w przypadku korzystania z modelu LlamaIndex, użyj polecenia mlflow.llama_index.autolog()log_traces=True
:
import mlflow
mlflow.llama_index.autolog(log_traces=True)
Obsługiwane integracje z włączoną obsługą śledzenia w ramach implementacji autologu to:
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
Administratorzy mogą włączać lub wyłączać automatyczne rejestrowanie usługi Databricks dla wszystkich interakcyjnych sesji notesu w całym obszarze roboczym na karcie 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.