MLOps: управление моделями, развертывание и мониторинг с помощью Машинного обучения Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

В этой статье описаны методики операций машинного обучения (MLOps) в Машинное обучение Azure для управления жизненным циклом моделей. Применение методик MLOps может повысить качество и согласованность решений машинного обучения.

Что собой представляет MLOps?

MLOps основано на принципах и методиках DevOps, повышающих эффективность рабочих процессов. Эти принципы включают непрерывную интеграцию, доставку и развертывание. MLOps применяет эти принципы к жизненному циклу машинного обучения с целью:

  • Более быстрое получение экспериментальной модели и разработка моделей.
  • Более быстрое развертывание моделей в рабочей среде.
  • Контроль качества и сквозное отслеживание происхождения.

MLOps предоставляет следующие возможности для процесса машинного обучения:

  • Создание воспроизводимых конвейеров машинного обучения. Используйте конвейеры машинного обучения для определения повторяемых и многократно используемых шагов для процессов подготовки данных, обучения и оценки.
  • Создание повторно используемых программных сред. Используйте эти среды для обучения и развертывания моделей.
  • Регистрация, создание пакетов и развертывание моделей из любого места. Отслеживание связанных метаданных, необходимых для использования модели.
  • Сбор данных системы управления для комплексного жизненного цикла машинного обучения. Записанные в журнал данные о происхождении могут включать пользователей, которые публикуют модели, и причины внесения изменений. Он также может включать время развертывания или использования моделей в рабочей среде.
  • Уведомление и оповещение о событиях в жизненном цикле машинного обучения, События включают завершение эксперимента, регистрацию модели, развертывание модели и обнаружение смещения данных.
  • Мониторинг приложений машинного обучения для выявления операционных проблем и проблем, связанных с машинным обучением. Сравнивайте входные данные модели в промежутке между обучением и выводом. Исследуйте метрики конкретных моделей. Обеспечьте мониторинг и оповещения для инфраструктуры машинного обучения.
  • Автоматизация комплексного жизненного цикла машинного обучения с помощью машинного обучения и конвейеров Azure. Используйте конвейеры для частого тестирования и обновления моделей. Вы можете непрерывно выпускать новые модели машинного обучения параллельно с другими приложениями и службами.

Дополнительные сведения об MLOps см. в разделе "Операции машинного обучения".

Создание воспроизводимых конвейеров машинного обучения

Используйте конвейеры Машинное обучение Azure для объединения всех шагов в процессе обучения модели. Конвейер машинного обучения может содержать шаги, включающие подготовку данных, извлечение признаков, настройку гиперпараметра и оценку модели.

При использовании конструктора Машинное обучение Azure для создания конвейера машинного обучения можно клонировать конвейер, чтобы выполнить итерацию по его проектированию, не теряя старые версии. Чтобы клонировать конвейер в любое время в конструкторе, перейдите в правый верхний угол, чтобы выбрать ...>Клонировать.

Дополнительные сведения о конвейерах Машинное обучение Azure см. в статье "Конвейеры машинного обучения".

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

Используя Машинное обучение Azure среды, вы можете отслеживать и воспроизводить зависимости программного обеспечения проектов по мере их развития. Среды позволяют обеспечить воспроизводимость сборок без настраиваемых вручную конфигураций программного обеспечения.

Среды описывают зависимости pip и conda для проектов. Среды можно использовать для обучения модели и развертывания. Дополнительные сведения о средах см. в статье "Что такое Машинное обучение Azure среды?".

Регистрация, создание пакетов и развертывание моделей из любого места

В следующих разделах описывается регистрация, упаковка и развертывание моделей.

Регистрация и отслеживание моделей машинного обучения

С помощью регистрации модели вы можете сохранять и изменять версии моделей в облаке Azure в рабочей области. Модель реестра позволяет легко организовывать и отслеживать ваши обученные модели.

Зарегистрированная модель — это логический контейнер для одного или нескольких файлов, составляющих эту модель. Например, если у вас есть модель, которая хранится в нескольких файлах, можно зарегистрировать файлы в качестве одной модели в рабочей области Машинное обучение Azure. После регистрации можно скачать или развернуть зарегистрированную модель и получить все файлы компонентов.

Зарегистрированные модели можно определить по имени и версии. Каждый раз, когда вы регистрируете модель с тем же именем, что и существующая модель, реестр увеличивает номер версии. Теги метаданных можно предоставить во время регистрации и использовать эти теги при поиске модели. Машинное обучение Azure поддерживает любую модель, которую можно загрузить с помощью Python 3.5.2 или более поздней версии.

Совет

Можно также зарегистрировать модель, обученную вне машинного обучения Azure.

Важно!

  • При использовании фильтра поTags параметру на странице "Модели" Студия машинного обучения Azure вместо использования TagName : TagValueиспользуйте TagName=TagValue без пробелов.
  • Удалить зарегистрированную модель нельзя, если она используется в любом активном развертывании.

Дополнительные сведения об использовании моделей в Машинное обучение Azure см. в статье "Работа с моделями в Машинное обучение Azure".

Модели упаковки и отладки

Перед развертыванием модели в рабочей среде необходимо упаковать ее в образ Docker. В большинстве случаев создание образа происходит автоматически во время развертывания; однако можно вручную указать изображение.

Рекомендуется сначала развернуть в локальной среде разработки, чтобы устранить неполадки и отладку перед развертыванием в облаке. Эта практика поможет избежать проблем с развертыванием для Машинное обучение Azure. Дополнительные сведения о том, как устранить распространенные проблемы с развертыванием, см. в статье "Устранение неполадок с сетевыми конечными точками".

Преобразование и оптимизация моделей

Модель можно преобразовать в Open Neural Network Exchange (ONNX), чтобы повысить производительность. Как правило, преобразование в ONNX может удвоить производительность.

Дополнительные сведения об использовании ONNX с Машинным обучением см. в статье ONNX и Машинное обучение Azure: создание и ускорение моделей машинного обучения.

Развертывание моделей

Вы можете развертывать обученные модели машинного обучения в качестве конечных точек в облаке или локально. Развертывания используют ЦП и GPU для вывода.

При развертывании модели в качестве конечной точки необходимо указать следующие элементы:

  • Модель, используемая для оценки данных, отправленных в службу или устройство.
  • Скрипт записи 1. Этот скрипт принимает запросы, использует модели для оценки данных и возвращает ответ.
  • Среда 2, описывающая зависимости pip и conda, необходимые для моделей и скрипта записи.
  • Любые другие ресурсы, такие как текст и данные, необходимые моделям и скрипту записи.

Также предоставляется конфигурация целевой платформы развертывания. Например, тип семейства виртуальных машин, доступная память и количество ядер. При создании образа также добавляются компоненты, необходимые Машинное обучение Azure, например ресурсы, необходимые для запуска веб-службы.

1,2 При развертывании модели MLflow не требуется предоставлять скрипт записи, который также называется скриптом оценки. Кроме того, вам не нужно предоставлять среду для развертывания. Дополнительные сведения о развертывании моделей MLflow см. в рекомендациях по развертыванию моделей MLflow.

Пакетная оценка

Пакетная оценка поддерживается через конечные точки пакетной службы. Дополнительные сведения о пакетной оценке см. в разделе "Конечные точки пакетной службы".

Оценка в реальном времени

Модели можно использовать с веб-конечной точкой для оценки в режиме реального времени. Подключенные конечные точки могут использовать следующие целевые объекты вычислений:

  • Управляемые сетевые конечные точки
  • Служба Azure Kubernetes
  • Локальная среда разработки

Чтобы развернуть модель в конечной точке, необходимо указать следующие элементы:

  • Модель или ансамблей моделей.
  • Зависимости, необходимые для использования модели. Например, скрипт, принимающий запросы и вызывающий модель и зависимости Conda.
  • Конфигурация развертывания, описывающая способ и место развертывания модели.

Дополнительные сведения о развертывании для оценки в режиме реального времени см. в статье "Развертывание сетевых конечных точек".

Управляемое развертывание для сетевых конечных точек

При развертывании в подключенной конечной точке можно использовать управляемый выпуск, чтобы включить следующие сценарии:

  • Создание нескольких версий конечной точки для развертывания.
  • Выполните A/B-тестирование, направляя трафик в разные развертывания на конечной точке.
  • Переключение между развертываниями конечных точек путем обновления процента трафика в конфигурации конечной точки.

Дополнительные сведения о развертывании с помощью управляемого развертывания см. в статье "Выполнение безопасного развертывания новых развертываний для вывода в режиме реального времени".

Аналитика

Microsoft Power BI поддерживает использование моделей машинного обучения для аналитики данных. Дополнительные сведения см. в разделе Машинное обучение Azure интеграции в Power BI.

Сбор данных системы управления, необходимых для MLOps

Машинное обучение Azure предоставляет возможность отслеживать сквозной путь аудита всех ресурсов машинного обучения с помощью метаданных. Например:

  • Машинное обучение Azure ресурсы данных помогают отслеживать, профилирование и данные версий.
  • Интерпретация модели позволяет объяснить модели, соответствовать нормативным требованиям и понять, как модели приходят к результату для заданных входных данных.
  • Машинное обучение Azure журнал заданий хранит моментальный снимок кода, данных и вычислений, используемых для обучения модели.
  • Машинное обучение Azure реестр моделей записывает все метаданные, связанные с вашей моделью. Например, какой эксперимент обучил модель, где развертывается модель, и если развертывания модели работоспособны.
  • Интеграция с Azure позволяет выполнять действия по событиям, таким как регистрация модели, развертывание, смещение данных и события обучения (задания) в жизненном цикле машинного обучения.

Совет

Хотя некоторые сведения о моделях и ресурсах данных автоматически фиксируются, можно добавить дополнительные сведения с помощью тегов. При поиске зарегистрированных моделей и ресурсов данных в рабочей области можно использовать теги в качестве фильтра.

Уведомления, автоматизация, оповещение о событиях в жизненном цикле машинного обучения

Машинное обучение Azure публикует ключевые события в Сетка событий Azure, которые можно использовать для уведомления и автоматизации событий в жизненном цикле машинного обучения. Дополнительные сведения о настройке процессов, управляемых событиями на основе событий Машинное обучение Azure, см. в разделе Пользовательские рабочие процессы CI/CD и на основе событий.

Автоматизация жизненного цикла машинного обучения

Для создания процесса непрерывной интеграции, обучающего модель, можно использовать GitHub и Azure Pipelines . В типичном сценарии, когда специалист по обработке и анализу данных проверка изменения в репозитории Git проекта, Azure Pipelines запускает обучающее задание. Затем результаты задания можно просмотреть, чтобы увидеть характеристики производительности обученной модели. Также можно создать конвейер, который развертывает модель как веб-службу.

Расширение Машинного обучения упрощает работу с Azure Pipelines. Расширение предоставляет следующие улучшения в Azure Pipelines:

  • Включает выбор рабочей области при определении подключения к службе.
  • Разрешает активацию конвейеров выпуска обученными моделями, созданными в конвейере обучения.

Дополнительные сведения об использовании Azure Pipelines с Машинное обучение см. в статье "Использование Azure Pipelines с Машинное обучение Azure".