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


Управление моделями MLOps с помощью Машинное обучение Azure

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

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

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

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

Возможности MLOps

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

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

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

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

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

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

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

Многократно используемые среды программного обеспечения

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

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

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

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

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

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

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

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

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

Теги метаданных можно предоставить во время регистрации и использовать эти теги для поиска модели.

Внимание

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

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

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

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

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

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

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

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

Развертывание моделей в качестве конечных точек

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

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

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

Внимание

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

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

Пакетная оценка с пакетными конечными точками

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

Оценка в режиме реального времени с помощью сетевых конечных точек

Модели можно использовать с сетевыми конечными точками для оценки в режиме реального времени. Целевые объекты вычислений для сетевых конечных точек могут быть локальными средами разработки, управляемыми сетевыми конечными точками или Служба Azure Kubernetes (AKS).

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

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

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

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

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

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

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

Метаданные для управления жизненным циклом машинного обучения

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

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

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

Примечание.

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

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

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

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

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

Результаты задания можно проверить, чтобы просмотреть характеристики производительности обученной модели. Также можно создать конвейер, который развертывает модель как веб-службу.

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

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

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

Аналитика

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