Поделиться через


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".