Пакеты моделей для развертывания (предварительная версия)

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

Важно!

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

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

Что такое пакет модели?

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

Screenshot that shows the dependencies collected during a model package operation.

Как правило, зависимости модели включают:

  • Базовый образ или среда, в которой выполняется модель.
  • Список пакетов Python и зависимостей, от которые модель зависит от правильной работы.
  • Дополнительные ресурсы, которые может потребоваться создать вывод. Эти ресурсы могут включать карты меток и параметры предварительной обработки.
  • Программное обеспечение, необходимое для сервера вывода для обслуживания запросов; например, flask server или TensorFlow Services.
  • Подпрограмма вывода (при необходимости).

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

Преимущества моделей упаковки

Упаковка моделей перед развертыванием имеет следующие преимущества:

  • Воспроизводимость: все зависимости собираются во время упаковки, а не во время развертывания. После разрешения зависимостей можно развернуть пакет столько раз, сколько необходимо, гарантируя, что зависимости уже разрешены.
  • Более быстрое разрешение конфликтов: Машинное обучение Azure обнаруживает любые неправильные конфигурации, связанные с зависимостями, например отсутствующий пакет Python, при упаковке модели. Вам не нужно развертывать модель для обнаружения таких проблем.
  • Упрощенная интеграция с сервером вывода. Так как используемому серверу вывода может потребоваться определенная конфигурация программного обеспечения (например, пакет Torch Serve), такое программное обеспечение может создавать конфликты с зависимостями модели. Пакеты моделей в Машинное обучение Azure внедряют зависимости, необходимые серверу вывода для обнаружения конфликтов перед развертыванием модели.
  • Переносимость. Пакеты моделей Машинное обучение Azure можно перемещать из одной рабочей области в другую с помощью реестров. Вы также можете создавать пакеты, которые можно развернуть вне Машинное обучение Azure.
  • Поддержка MLflow с частными сетями: для моделей MLflow Машинное обучение Azure требуется подключение к Интернету для динамической установки необходимых пакетов Python для запуска моделей. Упаковав модели MLflow, эти пакеты Python разрешаются во время операции упаковки модели, чтобы пакет модели MLflow не требовал развертывания подключения к Интернету.

Совет

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

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

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

Screenshot that shows all the possible targets for a model package.

Пакет перед развертыванием

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

--with-package Используйте флаг при создании развертывания:

az ml online-deployment create --with-package -f model-deployment.yml -e $ENDPOINT_NAME

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

Примечание.

При использовании пакетов, если вы указываете базовую среду с conda или pip зависимостями, вам не нужно включать зависимости сервера вывода (azureml-inference-server-http). Скорее, эти зависимости автоматически добавляются для вас.

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

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

Если вы хотите развернуть пакет вне Машинное обучение Azure, см. статью "Пакеты и развертывание моделей за пределами Машинное обучение Azure".

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