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

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение Машинного обучения для Azure CLI версии 1пакет SDK для Python azureml версии 1

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

Важно!

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

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

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

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

MLOps в машинном обучении Azure

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

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

Дополнительные сведения о MLOps см. в разделе DevOps — Машинное обучение (MLOps).

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

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

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

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

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

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

Среды описывают зависимости PIP и Conda для проектов и могут использоваться как для обучения, так и для развертывания моделей. Дополнительные сведения см. в разделе Что такое среды машинного обучения Azure.

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

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

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

Совет

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

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

Совет

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

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

Важно!

При использовании параметра "Фильтровать по Tags" на странице "Модели" в Студии машинного обучения Azure вместо использования TagName : TagValue клиентам следует использовать TagName=TagValue (без пробела)

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

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

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

Дополнительные сведения см. в разделах Развертывание моделей и Устранение неполадок развертываний.

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

Преобразование модели для открытия обмена нейронными сетями (ONNX) может повысить производительность. В среднем преобразование в ONNX может привести к увеличению производительности в 2 раза.

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

Использование моделей

Обученные модели машинного обучения развертываются как веб-службы в облаке или локально. В развертываниях используются ЦП, GPU или программируемые для полей массивы шлюзов (FPGA). Модели также можно использовать из Power BI.

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

  • Модели, используемые для оценки данных, передаваемых службе или устройству.
  • Сценарий входа. Этот сценарий принимает запрос, использует модель (-и) для оценки данных и возвращает ответ.
  • Среда Машинного обучения Azure, которая описывает зависимости PIP и Conda, необходимые для модели (-ей), и начальный сценарий.
  • Любые дополнительные активы, такие как текст, данные и т. д., необходимые для скрипта моделей и входа.

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

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

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

Пакетная оценка поддерживается через конвейеры ML. Дополнительные сведения см. в статье Пакетные прогнозы для больших данных.

Веб-службы в режиме реального времени

Вы можете использовать модели в веб-службах со следующими целевыми объектами вычислений:

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

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

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

Для получения дополнительных сведений см. раздел Модели развертывания.

Аналитика

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

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

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

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

Совет

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

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

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

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

Мониторинг проблем процессов и машинного обучения

Мониторинг позволяет понять, какие данные отправляются в модель и какие прогнозы она возвращает.

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

Дополнительные сведения см. в статье Сбор данных для моделей в рабочей среде.

Переобучение модели на новых данных

Часто требуется проверить модель, обновить ее или даже переучить с нуля, когда вы получаете новые сведения. Иногда получение новых данных является ожидаемой частью домена. В других случаях, как описано в разделе Обнаружение смещения данных (предварительная версия) в наборах, производительность модели может снизиться, например, изменения конкретного датчика, естественные изменения данных, такие как сезонные эффекты, или функции, переопределяющие их связь с другими функциями.

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

  • Предварительная обработка данных с помощью повторяющегося автоматизированного процесса
  • Обучите свою новую модель
  • Сравните выходные данные новой модели с теми, которые относятся к старой модели
  • Используйте предопределенные критерии, чтобы выбрать, следует ли заменить старую модель

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

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

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

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

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

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

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

Следующие шаги

Дополнительные сведения см. в следующих ресурсах: