Automatické protokolování Databricks
Tato stránka popisuje, jak přizpůsobit automatické protokolování Databricks, které automaticky zachycuje parametry modelu, metriky, soubory a informace rodokmenu 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.
Poznámka:
Pokud chcete povolit protokolování trasování pro úlohy generující AI, MLflow podporuje automatické protokolování OpenAI.
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.
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
), datových sad protokolů (log_datasets
), shromažďování vstupních příkladů (log_input_examples
), podpisů modelu protokolu (log_model_signatures
), konfigurace upozornění (silent
) a dalších.
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:
- Volání mlflow.autolog() s
exclusive=False
. - 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čí. - Pomocí metod sledování MLflow, jako je například mlflow.log_param(), můžete sledovat předtrénovací obsah.
- Trénování jednoho nebo více modelů strojového učení v rámci podporovaném autologováním Databricks
- Ke sledování obsahu po trénování použijte metody sledování MLflow, například mlflow.log_metric().
- Pokud jste v kroku 2 nepoužili
with 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
- statsmodels
- Padáčko
- OpenAI
- LangChain
Další informace o jednotlivých podporovaných architekturách najdete v tématu automatické protokolování MLflow.
Povolení trasování MLflow
MLflow Tracing využívá autolog
funkci v rámci příslušných integrací modelu k řízení povolení nebo zakázání podpory trasování pro integrace, které podporují trasování.
Pokud chcete například povolit trasování při použití modelu LlamaIndex, použijte mlflow.llama_index.autolog() s log_traces=True
:
import mlflow
mlflow.llama_index.autolog(log_traces=True)
Mezi podporované integrace, které mají povolení trasování v rámci implementací automatického protokolu, patří:
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.