Apache Spark MLlib и автоматизированное отслеживание MLflow

Примечание.

Автоматизированное отслеживание MLflow в MLlib не рекомендуется использовать для кластеров с версией Databricks Runtime 10.1 ML и более поздних. По умолчанию оно отключено в кластерах под управлением Databricks Runtime 10.2 ML и более поздних версий. Вместо этого используйте автозапись в журнал MLflow PySpark ML путем вызова mlflow.pyspark.ml.autolog(), который включается по умолчанию с помощью функции Автозапись в журнал Databricks.

Чтобы использовать старую операцию автоматического отслеживания MLflow MLlib в Databricks Runtime 10.2 ML или более поздней версии, включите ее, задав конфигурации Sparkspark.databricks.mlflow.trackMLlib.enabled true и spark.databricks.mlflow.autologging.enabled false.

Платформа MLflow с открытым кодом предназначена для управления жизненным циклом машинного обучения на всем его протяжении. MLflow поддерживает отслеживание для настройки моделей машинного обучения в Python, R и Scala. Только для записных книжек Python версии заметок о выпуске Databricks Runtime и совместимостии Databricks Runtime для Машинное обучение поддерживают автоматическуюнастройку модели MLflow для Apache Spark MLlib.

С автоматическим отслеживанием MLflow MLlib при выполнении кода настройки, который использует CrossValidator или TrainValidationSplit, гиперпараметры и метрики оценки автоматически регистрируются в MLflow. Без автоматического отслеживания MLflow необходимо сделать прямой вызов API для входа в MLflow.

Управление запусками MLflow

результаты настройки журнала CrossValidator или TrainValidationSplit в качестве вложенных запусков MLflow:

  • Главный или родительский запуск: сведения для CrossValidator или TrainValidationSplit регистрируются в главном запуске. Если уже имеется активный запуск, данные регистрируются в этом активном запуске, и выполнение не останавливается. Если активных запусков нет, MLflow создает новый запуск, регистрирует в нем данные и завершает выполнение перед возвратом.
  • Дочерний запуск: каждая настройка гиперпараметров и соответствующая метрика оценки регистрируются в дочернем запуске главного запуска.

При вызове fit() в Azure Databricks рекомендуется использовать активное управление запуском MLflow; то есть перенести вызов на fit() в оператор "with mlflow.start_run():". Это гарантирует, что информация заносится в журнал с помощью собственного главного запуска MLflow и упрощает регистрацию дополнительных тегов, параметров или метрик для такого выполнения.

Примечание.

Если fit() вызывается несколько раз в рамках одного активного запуска MLflow, он записывает эти несколько запусков в один и тот же главный запуск. Чтобы устранить конфликты имен для параметров и тегов MLflow, MLflow добавляет UUID в имена с конфликтами.

В следующей записной книжке Python показано автоматизированное отслеживание MLflow.

Записная книжка автоматизированного отслеживания MLflow

Получить записную книжку

После выполнения действий в последней ячейке записной книжки в пользовательском интерфейсе MLflow должно отобразиться:

MLlib-MLflow demo