MLflow и Машинное обучение Azure
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)
Python SDK azure-ai-ml версии 2 (current)
MLflow — это платформа с открытым исходным кодом, предназначенная для управления полным жизненным циклом машинного обучения. Его возможность обучать и обслуживать модели на разных платформах позволяет использовать согласованный набор инструментов независимо от того, где выполняются эксперименты: локально на компьютере, на удаленном целевом объекте вычислений, на виртуальной машине или в Машинное обучение Azure вычислительном экземпляре.
Машинное обучение Azure рабочие области совместимы с MLflow, что означает, что вы можете использовать Машинное обучение Azure рабочие области таким же образом, как и сервер MLflow. Эта совместимость имеет следующие преимущества:
- Машинное обучение Azure не размещает экземпляры сервера MLflow под капотом. Вместо этого рабочая область может говорить на языке API MLflow.
- Вы можете использовать Машинное обучение Azure рабочие области в качестве сервера отслеживания для любого кода MLflow, независимо от того, работает ли он на Машинное обучение Azure или нет. Вам достаточно настроить в MLflow рабочую область, в которой должно происходить отслеживание.
- Вы можете выполнить любую подпрограмму обучения, которая использует MLflow в Машинное обучение Azure без каких-либо изменений.
Совет
В отличие от пакета SDK Машинное обучение Azure версии 1, в пакете SDK версии 2 нет функций ведения журнала. Рекомендуется использовать MLflow для ведения журнала, чтобы учебные подпрограммы были не зависящими от облака и переносимыми, удаляя все зависимости от Машинное обучение Azure.
Отслеживание с помощью MLflow
Машинное обучение Azure использует отслеживание MLflow для журналов метрик и хранения артефактов для экспериментов. При подключении к Машинное обучение Azure все данные отслеживания, выполняемые с помощью MLflow, материализуются в рабочей области, над которыми вы работаете. Дополнительные сведения о настройке экспериментов для отслеживания экспериментов и подпрограмм обучения см. в разделе Метрики журналов, параметры и файлы с помощью MLflow. Можно также использовать MLflow для запроса и сравнения экспериментов и запусков.
MLflow в Машинное обучение Azure предоставляет способ централизованного отслеживания. MLflow можно подключить к Машинное обучение Azure рабочим областям, даже если вы работаете локально или в другом облаке. Эта рабочая область обеспечит централизованное, безопасное и масштабируемое расположение для хранения метрик и моделей обучения.
Использование MLflow в Машинное обучение Azure включает следующие возможности:
- Отслеживание экспериментов и моделей машинного обучения, работающих локально или в облаке.
- Отслеживание экспериментов машинного обучения Azure Databricks.
- Отслеживание экспериментов машинного обучения Azure Synapse Analytics.
Примеры записных книжек
- В примере Обучение и отслеживание классификатора XGBoost с помощью MLflow демонстрируется отслеживание экспериментов с помощью MLflow, регистрация моделей и объединение нескольких вариантов приложения в конвейеры.
- Обучение и отслеживание классификатора XGBoost с помощью MLflow с помощью проверки подлинности субъекта-службы. Демонстрирует, как отслеживать эксперименты с помощью MLflow из вычислительных ресурсов, выполняющихся вне Машинное обучение Azure. В примере показано, как пройти проверку подлинности в службах Машинное обучение Azure с помощью субъекта-службы.
- Оптимизация гиперпараметров с помощью HyperOpt и вложенных запусков в MLflow: демонстрирует использование дочерних запусков в MLflow для оптимизации гиперпараметров для моделей с помощью популярной библиотеки
Hyperopt
. В примере показано, как передавать метрики, параметры и артефакты из дочерних запусков в родительские запуски. - Модели ведения журнала с помощью MLflow: демонстрирует использование концепции моделей вместо артефактов с MLflow. В примере также показано, как создавать пользовательские модели.
- В примере Управление запусками и экспериментами с помощью MLflow показано, как запрашивать эксперименты, запуски, метрики, параметры и артефакты из Azure ML с помощью MLflow.
Отслеживание с помощью MLflow в R
Поддержка MLflow в R имеет следующие ограничения:
- Отслеживание MLflow ограничено отслеживанием метрик эксперимента, параметров и моделей в заданиях Машинное обучение Azure.
- Интерактивное обучение на RStudio, Posit (прежнее название — RStudio Workbench) или записные книжки Jupyter с ядрами R не поддерживаются.
- Управление моделями и регистрация не поддерживаются с помощью пакета SDK MLflow R. Вместо этого используйте интерфейс командной строки Машинное обучение Azure или Студия машинного обучения Azure для регистрации и управления моделями.
Дополнительные сведения об использовании клиента отслеживания MLflow с Машинное обучение Azure см. в примерах моделей Train R с помощью интерфейса командной строки Машинное обучение Azure (версии 2).
Отслеживание с помощью MLflow в Java
Поддержка MLflow в Java имеет следующие ограничения:
- Отслеживание MLflow ограничено отслеживанием метрик и параметров эксперимента в заданиях Машинное обучение Azure.
- Пакет SDK Java для MLflow не позволяет отслеживать артефакты и модели. Вместо этого используйте папку
Outputs
в заданиях вместе с методомmlflow.save_model
для сохранения моделей (или артефактов), которые требуется записать.
Чтобы узнать об использовании клиента отслеживания MLflow с Машинное обучение Azure, просмотрите пример Java, использующий клиент отслеживания MLflow с Машинное обучение Azure.
Реестры моделей с использованием MLflow
Машинное обучение Azure поддерживает управление моделями с помощью MLflow. Эта поддержка представляет собой удобный способ поддержки всего жизненного цикла модели для пользователей, знакомых с клиентом MLflow.
Дополнительные сведения об управлении моделями через API MLflow в Машинном обучении Azure см. в статье Управление реестрами моделей в Машинном обучении Azure с помощью MLflow.
Пример записной книжки
- Пример Управление реестрами моделей с помощью MLflow демонстрирует управление моделями в реестрах с помощью MLflow.
Развертывание модели с помощью MLflow
Вы можете развернуть модели MLflow для Машинное обучение Azure и воспользоваться улучшенным интерфейсом при использовании моделей MLflow. Машинное обучение Azure поддерживает развертывание моделей MLflow как в режиме реального времени, так и в пакетных конечных точках без необходимости указывать среду или скрипт оценки. Развертывание поддерживается с помощью пакета SDK MLflow, Машинное обучение Azure CLI, пакета SDK Машинное обучение Azure для Python или Студия машинного обучения Azure.
Дополнительные сведения о развертывании моделей MLflow в Машинное обучение Azure для вывода в режиме реального времени и пакетной обработки см. в руководствах по развертыванию моделей MLflow.
Примеры записных книжек
- Развертывание MLflow в сетевых конечных точках. Демонстрируется развертывание моделей в формате MLflow в сетевых конечных точках с помощью пакета SDK MLflow.
- Развертывание MLflow в сетевых конечных точках с безопасным развертыванием. Демонстрируется развертывание моделей в формате MLflow в сетевых конечных точках с помощью пакета SDK MLflow с прогрессивным развертыванием моделей. В примере также показано развертывание нескольких версий модели в одной конечной точке.
- Развертывание MLflow в веб-службах (V1): демонстрируется развертывание моделей в формате MLflow в веб-службах (ACI/AKS версии 1) с помощью пакета SDK MLflow.
- Развертывание моделей, обученных в Azure Databricks, для Машинное обучение Azure с помощью MLflow: демонстрирует обучение моделей в Azure Databricks и их развертывание в Машинное обучение Azure. В этом примере также описывается, как обрабатывать случаи, в которых также требуется отслеживать эксперименты с экземпляром MLflow в Azure Databricks.
Обучение с помощью проектов MLflow (предварительная версия)
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Задания обучения можно отправлять в службу "Машинное обучение Azure" с помощью проектов MLflow (предварительная версия). Задания можно отправлять локально с помощью отслеживания Машинного обучения Azure или же переносить в облако с помощью вычислительной среды Машинного обучения Azure.
Сведения о отправке заданий обучения с помощью проектов MLflow, использующих Машинное обучение Azure рабочих областей для отслеживания, см. в статье Обучение моделей машинного обучения с помощью проектов MLflow и Машинное обучение Azure.
Примеры записных книжек
- Отслеживайте проект MLflow в Машинное обучение Azure рабочих областях.
- Обучение и запуск проекта MLflow в заданиях Машинное обучение Azure.
Возможности пакета SDK MLflow, Машинного обучения Azure версии 2 и Студии машинного обучения Azure
В следующей таблице показаны возможные операции, использующие все клиентские средства, доступные в жизненном цикле машинного обучения.
Функция | Пакет SDK для MLflow | Машинное обучение Azure CLI/SDK | Студия машинного обучения Azure |
---|---|---|---|
Отслеживание и регистрация метрик, параметров и моделей | ✓ | ||
Извлечение метрик, параметров и моделей | ✓ | 1 | ✓ |
Отправка заданий обучения | ✓ 2 | ✓ | ✓ |
Отправка заданий обучения с помощью ресурсов данных Машинное обучение Azure | ✓ | ✓ | |
Отправка заданий обучения с помощью конвейеров машинного обучения | ✓ | ✓ | |
Управление экспериментами и выполнениями | ✓ | ✓ | ✓ |
Управление моделями MLflow | ✓3 | ✓ | ✓ |
Управление моделями, не относящимися к MLflow | ✓ | ✓ | |
Развертывание моделей MLflow в Машинное обучение Azure (онлайн и пакетная служба) | ✓4 | ✓ | ✓ |
Развертывание моделей, не относящихся к MLflow, в службе "Машинное обучение Azure" | ✓ | ✓ |
Примечание.
- 1 Можно скачать только артефакты и модели.
- 2 Возможно с помощью проектов MLflow (предварительная версия).
- 3 Некоторые операции могут не поддерживаться. Дополнительные сведения см. в разделе "Управление реестрами моделей" в Машинное обучение Azure с помощью MLflow.
- 4 Развертывание моделей MLflow для пакетного вывода с помощью пакета SDK MLflow на данный момент невозможно. В качестве альтернативы см. статью "Развертывание и запуск моделей MLflow" в заданиях Spark.