Compartilhar via


Atualizar um serviço Web implantado (v1)

APLICA-SE A:Extensão de ML da CLI do Azure v1SDK do Python azureml v1

Neste artigo, você aprenderá como atualizar um serviço Web que foi implantado com o Azure Machine Learning.

Pré-requisitos

  • Este artigo pressupõe que você já tenha implantado um serviço Web com o Azure Machine Learning. Se você precisar aprender como implantar um serviço Web, siga estas etapas.

  • Os snippets de código neste artigo presumem que a variável ws já foi inicializada no workspace usando o construtor Workflow() ou carregando uma configuração salva com Workspace.from_config(). O seguinte snippet demonstra como usar o construtor:

    APLICA-SE ASDK do Python azureml v1

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

Importante

Alguns comandos da CLI do Azure neste artigo usam a extensão azure-cli-ml ou v1 do Azure Machine Learning. O suporte à extensão v1 terminará em 30 de setembro de 2025. Você poderá instalar e usar a extensão v1 até essa data.

Recomendamos que você faça a transição para a extensão ml ou v2, antes de 30 de setembro de 2025. Para obter mais informações sobre a extensão v2, confira Extensão da CLI do Azure ML e SDK do Python v2.

Atualizar serviço Web

Para atualizar o serviço Web, use o método update. Você pode atualizar o serviço Web para usar um novo modelo, um novo script de entrada ou novas dependências que podem ser especificadas em uma configuração de inferência. Para obter mais informações, consulte a documentação para WebService.update.

Consulte Método de atualização do serviço AKS.

Consulte Método de atualização do serviço ACI.

Importante

Quando você cria uma nova versão de um modelo, deve atualizar manualmente cada serviço que deverá usá-la.

Você não pode usar o SDK para atualizar um serviço Web publicado no designer do Azure Machine Learning.

Importante

O Serviço de Kubernetes do Azure usa o Driver Blobfuse FlexVolume para as versões <= 1,16 e o Driver CSI do Blob para as versões >= 1,17.

Portanto, é importante reimplantar ou atualizar o serviço Web após a atualização do cluster para implantar o método blobfuse correto para a versão do cluster.

Observação

Quando uma operação já estiver em andamento, uma operação nova no mesmo serviço Web causará o erro de conflito 409. Por exemplo, se a criação ou atualização da operação de serviço Web estiver em andamento e você disparar uma nova operação de exclusão, ela gerará um erro.

Usar o SDK

O código a seguir mostra como usar o SDK para atualizar o modelo, o ambiente e o script de entrada para um serviço Web:

APLICA-SE A:SDK do Python do Azure ML v1

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())

Usando a CLI

Você também pode atualizar um serviço Web usando a CLI do ML. O exemplo a seguir demonstra como registrar um novo modelo e, em seguida, atualizar um serviço Web para usar o novo modelo:

APLICA-SE A:Extensão de ML da CLI do Azure v1

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

Dica

Neste exemplo, um documento JSON é usado para passar as informações do modelo do comando de registro para o comando de atualização.

Para atualizar o serviço para usar um novo script ou ambiente de entrada, crie um arquivo de configuração de inferência e especifique-o com o parâmetro ic.

Para obter mais informações, confira a documentação de az ml workspace update.

Próximas etapas