Автоматическое ведение журнала в Databricks

Databricks Autologging — это решение без кода, которое расширяет возможности автоматического ведения журнала MLflow, обеспечивая автоматическое отслеживание экспериментов для обучающих сеансов по машинному обучению в Azure Databricks.

Благодаря Databricks Autologging параметры модели, метрики, файлы и сведения о происхождении автоматически регистрируются при обучении моделей с помощью разных популярных библиотек машинного обучения. Обучающие сеансы записываются как выполнения отслеживания MLflow. Файлы модели также отслеживаются, чтобы можно было легко регистрировать их в реестре моделей MLflow и развертывать их для оценки в режиме реального времени с помощью службы моделей.

В следующем видеоролике показано использование 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_input_examples), настройки предупреждений (silent) и пр.

Отслеживание дополнительного содержимого

Чтобы отслеживать дополнительные метрики, параметры, файлы и метаданные с помощью MLflow, созданных функцией автологирования Databricks, выполните следующие действия в интерактивной записной книжке Python Для Azure Databricks:

  1. Вызовите mlflow.autolog() с помощью exclusive=False.
  2. Запустите выполнение MLflow с помощью mlflow.start_run(). Вы можете обернуть этот вызов в with mlflow.start_run(). В таком случае выполнение завершается автоматически.
  3. Используйте методы MLflow Tracking, например mlflow.log_param(), для отслеживания содержимого для предварительного обучения.
  4. Обучите одну или несколько моделей машинного обучения на платформе, поддерживаемой Databricks Autologging.
  5. Используйте методы MLflow Tracking, например mlflow.log_metric(), для отслеживания содержимого для последующего обучения.
  6. Если вы не использовали 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)

Администратор istrator также может отключить автологизацию Databricks для всех кластеров в рабочей области из Вкладка "Дополнительно" страницы параметров администратора. Кластеры должны быть перезапущены, чтобы это изменение вступило в силу.

Поддерживаемые среды и платформы

Databricks Autologging поддерживается в интерактивных записных книжках Python и следующих платформах ML:

  • scikit-learn
  • Apache Spark MLlib
  • TensorFlow
  • Keras
  • PyTorch Lightning;
  • XGBoost
  • LightGBM
  • Gluon
  • Fast.ai (версия 1.x)
  • statsmodels.

Дополнительные сведения о каждой из поддерживаемых платформ см. в статье Автоматическое ведение журналов MLflow.

Безопасность и управление данными

Вся информация об обучении модели, отслеживаемая с помощью Databricks Autologging, хранится в MLflow Tracking и защищена разрешениями MLflow Experiment. Вы можете совместно использовать, изменять или удалять информацию об обучении модели с помощью API MLflow Tracking или пользовательского интерфейса.

Администрирование

Администратор istrator может включить или отключить автологирование 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.