Обновление веб-службы Azure ML ModelManagement
ПРИМЕЧАНИЕ. Инструментальные средства машинного обучения Azure (предварительный просмотр) устарели. Рабочий процесс развертывания моделей, изображений и сервисов был обновлен с момента публикации этого вопроса.
Я разрабатывал модель машинного обучения для служб машинного обучения Azure, используя инструментальные средства машинного обучения Azure (предварительная версия). Мне удалось развернуть модель в виде веб-службы, как указано в документации по машинному обучению Azure (предварительный просмотр). Мне удалось запустить службу, и модель, манифест и образы настроены правильно. Все идет нормально.
Но теперь я подошел к этапу, когда я хочу иметь возможность обновлять сервис новыми конфигурациями. И здесь я оказываюсь с большим количеством вопросов, чем ответов.
Я понял, что я могу
- настроить новую модель
- настроить новый манифест, указывающий на эту модель
- настроить новое изображение, указывающее на этот манифест
- обновить существующий (или создать новый) сервис, чтобы указать на новый образ
Это кажется достаточно разумным. Но что, если мне просто нужно обновить манифест, можно ли будет пропустить настройку новой модели (1) и просто начать обновление с (2) выше, и позволить ему указывать на существующую модель вместо новой? один?
Я, конечно, попробовал это, вызвав следующее из CLI, и я застрял со следующим выводом:
>> az ml manifest create --manifest-name manifestname -f score.py -r python -c aml_config/conda_dependencies.yml -s outputs/schema.json -i [existing-model-id]
Creating new driver at /var/folders/tmp/tmp.py
Successfully created manifest
Id: [manifest-id]
>> az ml image create -n imagename --manifest-id [manifest-id-from-above]
Creating image............................................Done.
Image ID: [image-id]
>> az ml service update realtime -i [existing-service-id] --image-id [image-id-from-above] -v
Updating service..................................Failed
Found default kubeconfig in /Users/username/.kube/config using it
Using kubeconfig file: /Users/username/.kube/config
Kubectl exists in default location, adding it to PATH
loading kubeconfig file
Getting Replica sets from default namespace
Got hash ####
{
"Azure-cli-ml Version": null,
"Error": "Error occurred",
"Response Content": {
"CreatedTime": "2018-09-17T13:31:22.4230543Z",
"EndTime": "2018-09-17T13:34:18.0774994Z",
"Error": {
"Code": "KubernetesDeploymentFailed",
"Details": [
{
"Code": "CrashLoopBackOff",
"Message": "Back-off 40s restarting failed container=### pod=###"
}
],
"Message": "Kubernetes Deployment failed",
"StatusCode": 400
},
"Id": "###",
"OperationType": "Service",
"ResourceLocation": "###",
"State": "Failed"
},
"Response Headers": {
"Connection": "keep-alive",
"Content-Encoding": "gzip",
"Content-Type": "application/json; charset=utf-8",
"Date": "Mon, 17 Sep 2018 13:34:22 GMT",
"Strict-Transport-Security": "max-age=15724800; includeSubDomains; preload",
"Transfer-Encoding": "chunked",
"X-Content-Type-Options": "nosniff",
"X-Frame-Options": "SAMEORIGIN",
"api-supported-versions": "2017-09-01-preview, 2018-04-01-preview",
"x-ms-client-request-id": "###",
"x-ms-client-session-id": ""
}
}
Если я пытаюсь выполнить откат к предыдущему манифесту, сообщения об ошибке нет, и все работает просто отлично. Это заставляет меня предположить, что что-то не так с моим новым манифестом и / или изображением. Однако при их создании нет предупреждений или ошибок.
Я пытался найти сообщения об ошибках, но ничего не нашел.
1 ответ
Ошибка CrashLoopBackOff обычно означает, что у функции init() вашего файла Score.py есть проблема, например, при поиске или загрузке модели. Это также может означать, что вы используете библиотеку, которая не была импортирована. Azure ML только что объявил об обновлении предварительного просмотра с обновленным Python SDK ( https://docs.microsoft.com/en-us/azure/machine-learning/service/quickstart-get-started). Есть учебники и тетради, которые показывают процесс более подробно с примерами. Я бы начал там.
https://docs.microsoft.com/en-us/azure/machine-learning/service/tutorial-deploy-models-with-aml