Обновление развернутой веб-службы (версия 1)

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение ML для Azure CLI версии 1пакет SDK Python для ML Azure версии 1

В этой статье вы узнаете, как обновить веб-службу, которая была ранее развернута в службе "Машинное обучение Azure".

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

  • В этой статье предполагается, что вы уже развернули веб-службу в машинном обучении Azure. Если вас интересует, как развернуть новую веб-службу, выполните эти инструкции.

  • В этой статье предполагается, что во фрагментах кода ws переменная уже была инициализирована в рабочей области с помощью конструктора рабочего процесса () или при загрузке сохраненной конфигурации с помощью Workspace.from_config (). В следующем фрагменте кода показано использование конструктора:

    ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

    from azureml.core import Workspace
    ws = Workspace(subscription_id="mysubscriptionid",
                   resource_group="myresourcegroup",
                   workspace_name="myworkspace")
    

Важно!

Для использования некоторых команд Azure CLI, приведенных в этой статье, используйте расширение azure-cli-ml (версия 1) для Машинного обучения Azure. Поддержка расширения версии 1 будет прекращена 30 сентября 2025 г. Вы можете установить и использовать расширение версии 1 до этой даты.

Рекомендуется перейти на расширение ml (версия 2) до 30 сентября 2025 г. Дополнительные сведения о расширении версии 2 см. на странице расширения CLI для Azure ML и пакета SDK для Python версии 2.

Обновление веб-службы

Чтобы обновить веб-службу, используйте метод update. Вы можете обновить веб-службу, чтобы назначить для нее новую модель, новый начальный сценарий или новые зависимости, которые можно указать в конфигурации вывода. Дополнительные сведения см. в документации по методу Webservice.update.

См. также статью о методе обновления службы AKS.

См. также статью о методе обновления службы ACI.

Важно!

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

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

Важно!

Служба Kubernetes Azure использует драйвер Blobfuse FlexVolume для версий <=1.16 и драйвер Blob CSI для версий >=1.17.

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

Примечание

Если операция уже выполняется, любая новая операция с той же веб-службой будет возвращать ошибку конфликта 409. Например, если выполняется операция создания или обновления веб-службы, то при активации новой операции удаления возникает ошибка.

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

В следующем коде показано, как с помощью пакета SDK обновить модель, среду и начальный сценарий для веб-службы:

ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

from azureml.core import Environment
from azureml.core.webservice import Webservice
from azureml.core.model import Model, InferenceConfig

# Register new model.
new_model = Model.register(model_path="outputs/sklearn_mnist_model.pkl",
                           model_name="sklearn_mnist",
                           tags={"key": "0.1"},
                           description="test",
                           workspace=ws)

# Use version 3 of the environment.
deploy_env = Environment.get(workspace=ws,name="myenv",version="3")
inference_config = InferenceConfig(entry_script="score.py",
                                   environment=deploy_env)

service_name = 'myservice'
# Retrieve existing service.
service = Webservice(name=service_name, workspace=ws)



# Update to new model(s).
service.update(models=[new_model], inference_config=inference_config)
service.wait_for_deployment(show_output=True)
print(service.state)
print(service.get_logs())

Использование интерфейса командной строки

Вы также можете обновить веб-службу с помощью интерфейса командной строки Машинного обучения. В следующем примере демонстрируется регистрация новой модели и обновление веб-службы для использования новой модели:

ОБЛАСТЬ ПРИМЕНЕНИЯ: Расширение ML для Azure CLI версии 1

az ml model register -n sklearn_mnist  --asset-path outputs/sklearn_mnist_model.pkl  --experiment-name myexperiment --output-metadata-file modelinfo.json
az ml service update -n myservice --model-metadata-file modelinfo.json

Совет

В этом примере применяется документ JSON для передачи сведений о модели из команды регистрации в команду обновления.

Чтобы обновить службу для использования нового начального сценария или среды, создайте файл конфигурации вывода и передайте его в параметре ic.

Дополнительные сведения см. в документации по команде az ml service update.

Дальнейшие действия