Почему мое развертывание модели ML в экземпляре контейнера Azure все еще не выполняется? - PullRequest
1 голос
/ 26 марта 2019

Я использую службу машинного обучения Azure для развертывания модели ML в качестве веб-службы.

I зарегистрировал model и теперь хотел бы развернуть его как веб-службу ACI какв руководство .

Для этого я определяю

from azureml.core.webservice import Webservice, AciWebservice
from azureml.core.image import ContainerImage

aciconfig = AciWebservice.deploy_configuration(cpu_cores=4, 
                      memory_gb=32, 
                      tags={"data": "text",  "method" : "NB"}, 
                      description='Predict something')

и

image_config = ContainerImage.image_configuration(execution_script="score.py", 
                      docker_file="Dockerfile",
                      runtime="python", 
                      conda_file="myenv.yml")

и создаю изображение с помощью

image = ContainerImage.create(name = "scorer-image",
                      models = [model],
                      image_config = image_config,
                      workspace = ws
                      )

Создание изображения успешно завершается с помощью

Создание изображения Операция создания изображения завершена для изображения счетчика изображений: 5, операция «Успешно»

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

sudo docker run -p 8002:5001 myscorer0588419434.azurecr.io/scorer-image:5

позволяет мне успешно (локально) выполнять запросы к http://localhost:8002/score.

Однако развертывание с

service_name = 'scorer-svc'
service = Webservice.deploy_from_image(deployment_config = aciconfig,
                                        image = image,
                                        name = service_name,
                                        workspace = ws)

завершается с ошибкой

Создание службы
Запуск.
Операция создания службы FailedACI завершена, операция "Сбой"
Достигнут опрос при создании службы, состояние терминала, текущее состояние службы: Переход
Службасоздание опроса достигло состояния терминала, неожиданноответ получен.Переход

Я попытался установить в aciconfig более щедрый memory_gb, но безрезультатно: развертывание остается в состоянии с переходом (как на изображении ниже, если отслеживаетсяна портале Azure): enter image description here

Кроме того, выполнение service.get_logs() дает мне

WebserviceException: получен неверный ответ от службы управления моделями: код ответа: 404

Что может быть виновником?

1 Ответ

0 голосов
/ 29 марта 2019

Если развертывание ACI завершается неудачно, одно решение пытается выделить меньше ресурсов, например,

aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, 
                  memory_gb=8, 
                  tags={"data": "text",  "method" : "NB"}, 
                  description='Predict something')

Хотя выданные сообщения об ошибках не являются особенно информативными, это на самом деле четко указано в документация :

Когда регион находится под большой нагрузкой, при развертывании экземпляров может возникнуть сбой.Чтобы смягчить такой сбой развертывания, попробуйте развернуть экземпляры с более низкими настройками ресурса [...]

В документации также указано, какие максимальные значения ресурсов ЦП / ОЗУ доступны в разных регионах (ввремя написания, требующее развертывания с memory_gb=32, вероятно, завершится неудачей во всех регионах из-за недостатка ресурсов).

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

Создание службы
Бег ......................................................
Успешно завершена операция создания службы ACI, операция
"Успешно" Исправна

...