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


Развертывание модели для Azure Container Instances с помощью ИНТЕРФЕЙСА командной строки (версия 1)

Внимание

В некоторых командах Azure CLI в этой статье используется расширение azure-cli-ml или v1 для Azure Machine Learning. Поддержка CLI версии 1 закончилась 30 сентября 2025 г. Корпорация Майкрософт больше не будет предоставлять техническую поддержку или обновления для этой службы. Существующие рабочие процессы, использующие CLI версии 1, будут продолжать работать после даты окончания поддержки. Однако они могут быть подвержены рискам безопасности или критическим изменениям в случае изменений архитектуры в продукте.

Рекомендуется как можно скорее перейти к расширению mlили версии 2. Дополнительные сведения о расширении версии 2 см. в разделе Azure Machine Learning расширение CLI и пакет SDK Python версии 2.

Внимание

В этой статье содержатся сведения об использовании пакета SDK Azure Machine Learning версии 1. Пакет SDK версии 1 устарел с 31 марта 2025 г. Поддержка будет завершена 30 июня 2026 г. Вы можете установить и использовать пакет SDK версии 1 до этой даты. Существующие рабочие процессы, использующие пакет SDK версии 1, будут продолжать работать после даты окончания поддержки. Однако они могут быть подвержены рискам безопасности или критическим изменениям в случае изменений архитектуры в продукте.

Рекомендуется перейти на пакет SDK версии 2 до 30 июня 2026 г. Дополнительные сведения о пакете SDK версии 2 см. в разделе Что такое Azure Machine Learning CLI и пакет Python SDK версии 2? и справочник по SDK версии 2.

Внимание

В этой статье приводятся сведения об использовании CLI и пакета SDK версии 1 для развертывания модели. Рекомендуемый подход для версии 2 см. в статье Развертывание и оценка модели машинного обучения с помощью сетевой конечной точки.

Узнайте, как использовать Azure Machine Learning для развертывания модели в качестве веб-службы на Azure Container Instances (ACI). Используйте Azure Container Instances, если вы:

  • вы предпочитаете не управлять собственным кластером Kubernetes;
  • Если вас устроит наличие только одной реплики службы, это может повлиять на время безотказной работы.

Сведения о доступности квот и регионов для ACI см. в статье Квоты и доступность регионов для Azure Container Instances.

Внимание

Выполните локальную отладку перед развертыванием в веб-службе. Дополнительные сведения см. в разделе "Отладка локально".

Вы также можете обратиться к Azure Machine Learning — Развертывание на локальный ноутбук.

Предварительные условия

Ограничения

Примечание.

  • Развертывание Azure Container Instances в виртуальной сети не поддерживается. Вместо этого для сетевой изоляции рекомендуется использовать управляемые сетевые конечные точки.
  • Чтобы обеспечить эффективную поддержку, необходимо предоставить необходимые журналы для контейнеров ACI. Без этих журналов техническая поддержка не может быть гарантирована. Используйте средства log analytics, указывая enable_app_insights=True в конфигурации развертывания для эффективного управления журналами контейнеров ACI и анализа их.

Развертывание в ACI

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

Примечание.

  • ACI подходит только для небольших моделей, размер которых меньше 1 ГБ.
  • Используйте AKS с одним узлом для разработки больших моделей.
  • Вы можете развернуть до 1000 моделей на развертывание (на контейнер).

Использование пакета SDK

ПРИМЕНИМО К:Azure Machine Learning SDK версии 1 для Python

from azureml.core.webservice import AciWebservice, Webservice
from azureml.core.model import Model

deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1, memory_gb = 1)
service = Model.deploy(ws, "aciservice", [model], inference_config, deployment_config)
service.wait_for_deployment(show_output = True)
print(service.state)

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

Использование Azure CLI

ПРИМЕНИМО К:Azure CLI расширение ml v1

Чтобы развернуть с помощью интерфейса командной строки, выполните следующую команду. Замените mymodel:1 на имя и версию зарегистрированной модели. Замените myservice именем для предоставления этой службы:

az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json

Записи в deploymentconfig.json файле соответствуют параметрам для AciWebservice.deploy_configuration. В следующей таблице описывается сопоставление сущностей в JSON-файле и параметрах метода:

Сущность JSON Параметр метода Описание
computeType Неприменимо Целевой объект вычислений. Для ACI нужно задать значение ACI.
containerResourceRequirements Неприменимо Контейнер для сущностей ЦП и памяти.
  cpu cpu_cores Количество ядер ЦП для выделения. Значение по умолчанию — 0.1.
  memoryInGB memory_gb Объем памяти (в ГБ), выделяемой для этой веб-службы. Значение по умолчанию — 0.5.
location location Регион Azure для развертывания этой веб-службы. Если это значение не указано, используется расположение рабочей области. Дополнительные сведения о доступных регионах см. в разделе "Регионы ACI".
authEnabled auth_enabled Следует ли включить проверку подлинности для этой веб-службы. Значение по умолчанию — False.
sslEnabled ssl_enabled Следует ли включить TLS для этой веб-службы. Значение по умолчанию — False.
appInsightsEnabled enable_app_insights Следует ли включить AppInsights для этой веб-службы. Значение по умолчанию — False.
sslCertificate ssl_cert_pem_file Файл сертификата, необходимый для включения TLS
sslKey ssl_key_pem_file Файл ключа, необходимый для включения TLS
cname ssl_cname CNAME в случае, если TLS включен
dnsNameLabel dns_name_label Метка DNS-имени для конечной точки оценки. Если это значение не указано, для конечной точки оценки создается уникальная метка DNS-имени.

Следующий код JSON — это пример конфигурации развертывания для использования с CLI:

{
    "computeType": "aci",
    "containerResourceRequirements":
    {
        "cpu": 0.5,
        "memoryInGB": 1.0
    },
    "authEnabled": true,
    "sslEnabled": false,
    "appInsightsEnabled": false
}

Дополнительные сведения можно найти в справочнике az ml model deploy.

Использование VS Code

См. статью об управлении ресурсами в VS Code.

Внимание

Создавать контейнер ACI для тестирования заранее не нужно. Решение создает контейнеры ACI по мере необходимости.

Внимание

Решение добавляет хэшированные идентификаторы рабочей области ко всем базовым ресурсам ACI, которые он создает. Все имена ACI из одной рабочей области имеют одинаковый суффикс. Имя службы Azure Machine Learning остается таким же, как и предоставленное клиентом service_name. API пакета SDK Azure Machine Learning, которые пользователи видят, не требуют каких-либо изменений. Решение не дает никаких гарантий относительно имен основных ресурсов, создаваемых им.

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