Sdílet prostřednictvím


Automatické protokolování Databricks

Automatické protokolování Databricks je řešení bez kódu, které rozšiřuje automatické protokolování MLflow, aby poskytovalo automatické sledování experimentů pro trénovací relace strojového učení v Azure Databricks.

Díky automatickému protokolování Datbricks, parametrům modelu, metrikám, souborům a informacím rodokmenu se automaticky zaznamenávají při trénování modelů z různých oblíbených knihoven strojového učení. Trénovací relace se zaznamenávají jako spuštění sledování MLflow. Soubory modelu jsou také sledovány, takže je můžete snadno protokolovat do registru modelů MLflow a nasadit je pro bodování v reálném čase pomocí služby Model Serving.

Následující video ukazuje autologování Databricks pomocí trénovací relace modelu scikit-learn v interaktivním poznámkovém bloku Pythonu. Informace o sledování se automaticky zaznamenávají a zobrazují na bočním panelu spuštění experimentů a v uživatelském rozhraní MLflow.

Příklad automatického přihlašování

Požadavky

  • Automatické protokolování Databricks je obecně dostupné ve všech oblastech s Modulem Databricks Runtime 10.4 LTS ML nebo novějším.
  • Automatické protokolování Databricks je dostupné ve vybraných oblastech preview s modulem Databricks Runtime 9.1 LTS ML nebo novějším.

Jak to funguje

Když připojíte interaktivní poznámkový blok Pythonu ke clusteru Azure Databricks, automatické protokolování Databricks volá mlflow.autolog() pro nastavení sledování trénovacích relací modelu. Při trénování modelů v poznámkovém bloku se informace o trénování modelů automaticky sledují pomocí sledování MLflow. Informace o zabezpečení a správě těchto informací o trénování modelu najdete v tématu Zabezpečení a správa dat.

Výchozí konfigurace volání mlflow.autolog() je:

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

Konfiguraci automatickéhologování můžete přizpůsobit.

Využití

Pokud chcete používat automatické protokolování Databricks, vytrénujte model strojového učení v podporovaném rozhraní pomocí interaktivního poznámkového bloku Pythonu v Azure Databricks. Autologování Databricks automaticky zaznamenává informace o rodokmenu modelu, parametry a metriky do sledování MLflow. Můžete také přizpůsobit chování automatickéhologování Databricks.

Poznámka:

Automatickélogování Databricks se nepoužije na spuštění vytvořená pomocí rozhraní API fluentu MLflow s mlflow.start_run(). V těchto případech je nutné volat mlflow.autolog() , aby se automaticky protokolovaný obsah uložil do spuštění MLflow. Viz Sledování dalšího obsahu.

Přizpůsobení chování protokolování

K přizpůsobení protokolování použijte mlflow.autolog(). Tato funkce poskytuje konfigurační parametry pro povolení protokolování modelu (log_models), shromažďování vstupních příkladů (log_input_examples), konfigurace upozornění (silent) a další.

Sledování dalšího obsahu

Pokud chcete sledovat další metriky, parametry, soubory a metadata pomocí spuštění MLflow vytvořeného autologováním Databricks, postupujte podle těchto kroků v interaktivním poznámkovém bloku Pythonu v Azure Databricks:

  1. Volání mlflow.autolog() s exclusive=False.
  2. Spuštění MLflow pomocí mlflow.start_run() Toto volání with mlflow.start_run()můžete zabalit . Když to uděláte, spuštění se po dokončení automaticky ukončí.
  3. Pomocí metod sledování MLflow, jako je například mlflow.log_param(), můžete sledovat předtrénovací obsah.
  4. Trénování jednoho nebo více modelů strojového učení v rámci podporovaném autologováním Databricks
  5. Ke sledování obsahu po trénování použijte metody sledování MLflow, například mlflow.log_metric().
  6. Pokud jste v kroku 2 nepoužiliwith mlflow.start_run(), ukončete spuštění MLflow pomocí mlflow.end_run().

Příklad:

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)

Zakázání automatického protokolování Databricks

Pokud chcete zakázat automatické protokolování Databricks v interaktivním poznámkovém bloku Pythonu v Azure Databricks, zavolejte mlflow.autolog() pomocí disable=True:

import mlflow
mlflow.autolog(disable=True)

Správci můžou také zakázat automatické protokolování Databricks pro všechny clustery v pracovním prostoru na kartě Upřesnit na stránce nastavení správce. Aby se tato změna projevila, musí se clustery restartovat.

Podporovaná prostředí a architektury

Automatické protokolování Databricks se podporuje v interaktivních poznámkových blocích Pythonu a je k dispozici pro následující architektury ML:

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

Další informace o jednotlivých podporovaných architekturách najdete v tématu automatické protokolování MLflow.

Zabezpečení a správa dat

Všechny informace o trénování modelu sledované pomocí automatickéhologování Databricks jsou uložené ve sledování MLflow a jsou zabezpečené oprávněními experimentu MLflow. Informace o trénování modelů můžete sdílet, upravovat nebo odstraňovat pomocí rozhraní API nebo uživatelského rozhraní pro sledování MLflow.

Správa

Správci můžou povolit nebo zakázat automatické protokolování Databricks pro všechny interaktivní relace poznámkového bloku ve svém pracovním prostoru na kartě Upřesnit na stránce nastavení správce. Změny se neprojeví, dokud se cluster nerestartuje.

Omezení

  • Automatické protokolování Databricks se v úlohách Azure Databricks nepodporuje. Pokud chcete použít automatické protokolování z úloh, můžete explicitně volat mlflow.autolog().
  • Automatické protokolování Databricks je povolené jenom na uzlu ovladače vašeho clusteru Azure Databricks. Pokud chcete použít automatické protokolování z pracovních uzlů, musíte explicitně volat mlflow.autolog() z kódu spuštěného u každého pracovního procesu.
  • Integrace XGBoost scikit-learn není podporovaná.

Apache Spark MLlib, Hyperopt a automatizované sledování MLflow

Automatické protokolování Databricks nemění chování stávajících automatizovaných integrací sledování MLflow pro Apache Spark MLlib a Hyperopt.

Poznámka:

V Databricks Runtime 10.1 ML zakážete automatickou integraci sledování MLflow pro Apache Spark MLlib CrossValidator a TrainValidationSplit modely také zakáže funkci automatického protokolování Databricks pro všechny modely Apache Spark MLlib.