Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Отслеживание MLflow позволяет записывать записные книжки и обучающие наборы данных, параметры, метрики, теги и артефакты, связанные с обучением модели машинного обучения или глубокого обучения. Пример записной книжки для начала работы с MLflow см. в руководстве по комплексным классическим моделям машинного обучения в Azure Databricks.
Отслеживание MLflow с помощью экспериментов, запусков и моделей
Процесс разработки модели является итеративным, и это может оказаться сложной задачей для отслеживания работы при разработке и оптимизации модели. В Azure Databricks можно применять отслеживание MLflow, чтобы контролировать процесс разработки моделей, включая параметры или их сочетания, которые вы испробовали, и как они повлияли на производительность модели.
Отслеживание MLflow использует эксперименты, запуски и модели для регистрации и отслеживания разработки моделей машинного обучения и глубокого обучения. Выполнение — это одно выполнение кода модели. Во время выполнения MLflow можно регистрировать параметры и результаты модели. Эксперимент — это набор связанных запусков. В эксперименте можно сравнить и отфильтровать запуски, чтобы понять, как выполняется модель и как ее производительность зависит от параметров, входных данных и т. д. Модель — это коллекция артефактов, представляющих обученную модель машинного обучения.
При использовании MLflow 3LoggedModels повышает концепцию модели, созданной с помощью запуска, устанавливая ее в качестве отдельной сущности для отслеживания жизненного цикла модели в разных запусках обучения и оценки.
- Упорядочение учебных запусков с помощью экспериментов MLflow
- Отслеживайте и сравнивайте модели, используя зарегистрированные модели MLflow
- Просмотр результатов обучения с помощью запусков MLflow
- Создание панелей мониторинга с метаданными MLflow в системных таблицах
Примечание.
Начиная с 27 марта 2024 года MLflow накладывает ограничение квоты на количество общих параметров, тегов и шагов метрик для всех существующих и новых запусков, а также количество общих запусков для всех существующих и новых экспериментов, см. ограничения ресурсов. Если вы столкнулись с выполнением для квоты эксперимента, Databricks рекомендует удалить запуски, которые больше не требуются с помощью API удаления в Python. Если вы достигли других лимитов квоты, Databricks рекомендует настроить стратегию ведения журналов, чтобы укладываться в лимит. Если вам требуется увеличить это ограничение, обратитесь к команде по работе с аккаунтами Databricks с кратким объяснением вашего случая использования, почему предлагаемые подходы по устранению рисков не работают, и нового ограничения, которое вы запрашиваете.
API отслеживания MLflow
API отслеживания MLflow фиксирует параметры, метрики, теги и артефакты из запуска модели. API отслеживания взаимодействует с сервером отслеживания MLflow. При использовании Databricks данные записываются сервером отслеживания, размещенным в Databricks. На размещенном сервере отслеживания MLflow поддерживаются API-интерфейсы Python, Java и R.
MLflow предварительно установлен в кластерах машинного обучения Databricks Runtime. Чтобы использовать MLflow в кластере Databricks Runtime, необходимо установить библиотеку mlflow. Инструкции по установке библиотеки в кластере см. в разделе Установка библиотеки в кластере. Чтобы использовать MLflow 3 и его возможности отслеживания, обязательно обновите последнюю версию (см. раздел "Установка MLflow 3").
Где регистрируются прогоны MLflow
Databricks предоставляет размещенный сервер отслеживания MLflow, в котором хранятся данные эксперимента в рабочей области без необходимости настройки. При необходимости можно также настроить MLflow для использования разных серверов отслеживания.
Отслеживание MLflow управляется двумя параметрами:
- URI отслеживания: определяет используемый сервер (по умолчанию используется текущая рабочая область Databricks)
- Эксперимент. Определяет, какой эксперимент на этом сервере требуется войти в систему
import mlflow
# By default MLflow logs to the Databricks-hosted workspace tracking server. You can connect to a different server using the tracking URI.
mlflow.set_tracking_uri("databricks://remote-workspace-url")
# Set experiment in the tracking server
mlflow.set_experiment("/Shared/my-experiment")
Если активный эксперимент не задан, прогоны логируются в эксперимент блокнота .
Дополнительные сведения об управлении хранением данных MLflow см. в разделе "Выбор места хранения данных MLflow".
Запуски журналов и модели для эксперимента
MLflow может автоматически записывать код обучения, написанный во многих платформах машинного обучения и глубокого обучения. Это самый простой способ начать с отслеживания MLflow. См. пример записной книжки .
Для более точного контроля над регистрируемыми параметрами и метриками, а также для регистрации дополнительных артефактов, таких как CSV-файлы или графики, используйте API логирования MLflow. См. пример записной книжки .
Использование автоматического логирования для отслеживания разработки моделей
В этом примере записной книжки показано, как использовать автологгинг с scikit-learn. См. сведения об автологировании с другими библиотеками Python в документации по автологированию MLflow.
MLflow 3
Автологирование записной книжки Python для MLflow 3
MLflow 2.x
Записная книжка Python для автоматической интеграции с MLflow
Использовать API ведения журнала для отслеживания разработки моделей
В этом примере записной книжки показано, как использовать API ведения журнала Python. MLflow также поддерживает REST, R и Java API.
MLflow 3
Записная книжка Python для API логирования MLflow 3
MLflow 2.x
Записная книжка API Python для логгирования в MLflow
Запись прогонов в эксперименте рабочего пространства
По умолчанию при обучении модели в ноутбуке Databricks результаты записываются в соответствующий эксперимент ноутбука. В эксперименте записной книжки можно регистрировать только запуски MLflow, инициированные из записной книжки.
Запуски MLflow, инициированные из любой записной книжки или через API, могут быть зарегистрированы в эксперименте рабочей области. Чтобы журналировать запуски в эксперимент в рабочей области, используйте код, аналогичный следующему, в вашем блокноте или вызове API.
experiment_name = "/Shared/name_of_experiment/"
mlflow.set_experiment(experiment_name)
Инструкции по созданию эксперимента рабочей области см. в статье Создание эксперимента рабочей области. Сведения о просмотре циклов запуска в журнале см. в разделах Просмотр эксперимента записной книжки и Просмотр эксперимента рабочей области.
Анализ циклов запуска MLflow программным способом
Для программного доступа к данным выполнения MLflow используются два следующих API для DataFrame.
- API search_runs Python клиента MLflow возвращает DataFrame pandas.
- Источник данных эксперимента MLflow возвращает DataFrame Apache Spark.
В этом примере показано, как использовать клиент Python для MLflow для создания панели мониторинга, на которой визуализируются изменения в метриках оценки с течением времени, отслеживается число запусков, инициированных конкретным пользователем, и измеряется общее количество запусков для всех пользователей:
Почему метрики обучения модели и выходные данные могут отличаться
Многие алгоритмы, используемые в машинном обучении, имеют случайный элемент, например выборку или случайные начальные условия в самом алгоритме. При обучении модели с помощью одного из этих алгоритмов результаты могут не совпадать с каждым запуском, даже если запустить выполнение с одинаковыми условиями. Многие библиотеки предлагают механизм заполнения для исправления начальных условий для этих стохастических элементов. Однако могут существовать другие источники вариаций, которые не контролируются семенами. Некоторые алгоритмы чувствительны к порядку данных, а распределенные алгоритмы машинного обучения также могут влиять на секционирование данных. Этот вариант не является значительным и не важен в процессе разработки модели.
Для управления вариантами, вызванными различиями в порядке и секционирования, используйте функции PySpark повторное разделение и сортировкуWithinPartitions.
Примеры отслеживания MLflow
В следующих записных книжках показано, как отслеживать разработку моделей с помощью MLflow.