Почему мое развертывание модели ML в экземпляре контейнера Azure по-прежнему не выполняется?
Я использую службу машинного обучения Azure для развертывания модели ML в качестве веб-службы.
Я зарегистрировал 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):
Кроме того, работает service.get_logs()
дает мне
WebserviceException: Получен неверный ответ от службы управления моделями: Код ответа: 404
Что может быть виновником?
1 ответ
В случае сбоя развертывания ACI одно решение пытается выделить меньше ресурсов, например
aciconfig = AciWebservice.deploy_configuration(cpu_cores=1,
memory_gb=8,
tags={"data": "text", "method" : "NB"},
description='Predict something')
Хотя выдаваемые сообщения об ошибках не являются особенно информативными, это на самом деле четко указано в документации:
Когда регион находится под большой нагрузкой, вы можете столкнуться с ошибкой при развертывании экземпляров. Чтобы смягчить такой сбой развертывания, попробуйте развернуть экземпляры с более низкими настройками ресурса [...]
В документации также указывается, какие максимальные значения ресурсов ЦП / ОЗУ доступны в разных регионах (на момент написания требуется развертывание с memory_gb=32
скорее всего потерпит неудачу во всех регионах из-за нехватки ресурсов).
Если требуется меньше ресурсов, развертывание должно быть успешным с
Создание сервиса
Бег......................................................
Успешно завершена операция создания службы ACI, операция
"Успешный" Здоровый