Автоматическое ведение журнала в Databricks
На этой странице описывается настройка автолога Databricks, которая автоматически записывает параметры модели, метрики, файлы и сведения о происхождении при обучении моделей из различных популярных библиотек машинного обучения. Обучающие сеансы записываются как выполнения отслеживания MLflow. Файлы моделей также отслеживаются, чтобы их можно было легко регистрировать в реестре моделей MLflow.
Примечание.
Чтобы включить ведение журнала трассировки для создаваемых рабочих нагрузок ИИ, MLflow поддерживает автологирование OpenAI.
В следующем видеоролике показано использование Databricks Autologging в обучающем сеансе модели scikit-learn в интерактивной записной книжке Python. Информация об отслеживании автоматически регистрируется и отображается в области выполнений экспериментов и пользовательском интерфейсе MLflow.
Требования
- Автолог databricks общедоступен во всех регионах с databricks Runtime 10.4 LTS ML или более поздней версии.
- Функция автолога Databricks доступна в выборе регионов предварительной версии с databricks Runtime 9.1 LTS ML или более поздней версии.
Принцип работы
При присоединении интерактивной записной книжки Python к кластеру Azure Databricks Autologging вызывает mlflow.autolog() для настройки отслеживания сеансов обучения модели. Когда вы обучаете модели в записной книжке, информация об обучении модели автоматически отслеживается с помощью MLflow Tracking. Сведения о том, как осуществляется защита и администрирование информации для обучения модели, см. в статье Безопасность и управление данными.
Конфигурация по умолчанию для вызова mlflow.autolog():
mlflow.autolog(
log_input_examples=False,
log_model_signatures=True,
log_models=True,
disable=False,
exclusive=False,
disable_for_unsupported_versions=True,
silent=False
)
Вы можете настроить конфигурацию автоматического ведения журналов.
Использование
Чтобы использовать Databricks Autologging, обучите модель машинного обучения на поддерживаемой платформе с помощью интерактивной записной книжки Azure Databricks Python. Databricks Autologging автоматически записывает сведения о происхождении модели, параметры и метрики в MLflow Tracking. Вы также можете настроить поведение Databricks Autologging.
Примечание.
В Databricks Autologging не поддерживаются выполнения, созданные с помощью текучего API MLflow и mlflow.start_run()
. В таких случаях необходимо вызвать mlflow.autolog()
, чтобы сохранить содержимое автоматически записанных в журнал данных в выполнении MLflow. Дополнительные сведения см. в разделе Отслеживание дополнительного содержимого.
Настройка поведения ведения журналов
Чтобы настроить ведение журналов, используйте mlflow.autolog().
Эта функция предоставляет параметры конфигурации для включения ведения журнала моделей (log_models
), наборов данных журнала (log_datasets
), сбора входных примеров (), подписей модели журналов (log_input_examples
log_model_signatures
), настройки предупреждений (silent
) и т. д.
Отслеживание дополнительного содержимого
Чтобы отслеживать дополнительные метрики, параметры, файлы и метаданные с помощью MLflow, созданных функцией автологирования Databricks, выполните следующие действия в интерактивной записной книжке Python Для Azure Databricks:
- Вызовите mlflow.autolog() с помощью
exclusive=False
. - Запустите выполнение MLflow с помощью mlflow.start_run().
Вы можете обернуть этот вызов в
with mlflow.start_run()
. В таком случае выполнение завершается автоматически. - Используйте методы MLflow Tracking, например mlflow.log_param(), для отслеживания содержимого для предварительного обучения.
- Обучите одну или несколько моделей машинного обучения на платформе, поддерживаемой Databricks Autologging.
- Используйте методы MLflow Tracking, например mlflow.log_metric(), для отслеживания содержимого для последующего обучения.
- Если вы не использовали
with mlflow.start_run()
на этапе 2, завершите выполнение MLflow с помощью mlflow.end_run().
Например:
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)
Отключение Databricks Autologging
Чтобы отключить автоматическое ведение журнала Databricks в интерактивной записной книжке Python Azure Databricks, вызов mlflow.autolog() с disable=True
помощью:
import mlflow
mlflow.autolog(disable=True)
Администраторы также могут отключить автологизацию Databricks для всех кластеров в рабочей области на вкладке "Дополнительно" страницы параметров администратора. Кластеры должны быть перезапущены, чтобы это изменение вступило в силу.
Поддерживаемые среды и платформы
Databricks Autologging поддерживается в интерактивных записных книжках Python и следующих платформах ML:
- scikit-learn
- Apache Spark MLlib
- TensorFlow
- Keras
- PyTorch Lightning;
- XGBoost
- LightGBM
- Gluon
- Fast.ai
- statsmodels
- PaddlePaddle
- OpenAI
- LangChain
Дополнительные сведения о каждой из поддерживаемых платформ см. в статье Автоматическое ведение журналов MLflow.
Включение трассировки MLflow
Трассировка MLflow использует autolog
функцию в соответствующих интеграции платформ модели для управления включением или отключением поддержки трассировки для интеграции, которые поддерживают трассировку.
Например, чтобы включить трассировку при использовании модели LlamaIndex, используйте mlflow.llama_index.autolog() с log_traces=True
:
import mlflow
mlflow.llama_index.autolog(log_traces=True)
Поддерживаемые интеграции с включением трассировки в реализации автолога:
Безопасность и управление данными
Вся информация об обучении модели, отслеживаемая с помощью Databricks Autologging, хранится в MLflow Tracking и защищена разрешениями MLflow Experiment. Вы можете совместно использовать, изменять или удалять информацию об обучении модели с помощью API MLflow Tracking или пользовательского интерфейса.
Администрирование
Администраторы могут включить или отключить автологирование Databricks для всех интерактивных сеансов записной книжки в рабочей области на вкладке "Дополнительно" страницы параметров администратора. Изменения вступят в силу только после перезапуска кластера.
Ограничения
- Databricks Autologging не поддерживается в заданиях Azure Databricks. Чтобы использовать функцию автоматического ведения журналов из заданий, можно явно вызвать mlflow.autolog().
- Databricks Autologging включается только в режиме узла драйвера кластера Azure Databricks. Чтобы использовать автоматическое ведение журналов с рабочих узлов, вы должны явно вызвать mlflow.autolog() из кода, выполняемого на каждом рабочем узле.
- Интеграция XGBoost scikit-learn не поддерживается.
Apache Spark MLlib, Hyperopt и автоматизированное отслеживание MLflow
Databricks Autologging не меняет поведение существующих автоматических интеграций отслеживания MLflow для Apache Spark MLlib и Hyperopt.
Примечание.
В Databricks Runtime 10.1 ML отключение интеграции автоматического отслеживания MLflow для Apache Spark MLlib и моделей CrossValidator
и TrainValidationSplit
также отключает Databricks Autologging для всех моделей Apache Spark MLlib.