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