Partilhar via


Atualizar um serviço Web implantado (v1)

APLICA-SE A:Azure CLI ml extension v1Python SDK azureml v1

Neste artigo, você aprenderá a 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 a implantar um serviço Web, siga estas etapas.

  • Os trechos de código neste artigo pressupõem que a ws variável já foi inicializada em seu espaço de trabalho usando o construtor Workflow() ou carregando uma configuração salva com Workspace.from_config(). O trecho a seguir demonstra como usar o construtor:

    APLICA-SE A: Python SDK azureml v1

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

Importante

Alguns dos comandos da CLI do Azure neste artigo usam a extensão , ou v1, para o azure-cli-mlAzure Machine Learning. O suporte para a 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 mlextensão , ou v2, antes de 30 de setembro de 2025. Para obter mais informações sobre a extensão v2, consulte Extensão CLI do Azure ML e Python SDK v2.

Atualizar serviços Web

Para atualizar um serviço Web, use o update método. 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 de serviço ACI.

Importante

Ao criar uma nova versão de um modelo, você deve atualizar manualmente cada serviço que deseja usá-lo.

Não é possível usar o SDK para atualizar um serviço Web publicado a partir do designer do Azure Machine Learning.

Importante

O Serviço Kubernetes do Azure usa o driver Blobfuse FlexVolume para as versões <=1.16 e o driver Blob CSI 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.

Nota

Quando uma operação já está em andamento, qualquer nova operação nesse mesmo serviço Web responderá com erro de conflito 409. Por exemplo, se a operação de criação ou atualização do serviço Web estiver em andamento e se você acionar uma nova operação Excluir, ela gerará um erro.

Usando 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: Python SDK azureml 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 de ML. O exemplo a seguir demonstra o registro de um novo modelo e, em seguida, a atualização de um serviço Web para usar o novo modelo:

APLICA-SE A: Azure CLI ml extension 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

Gorjeta

Neste exemplo, um documento JSON é usado para passar as informações do modelo do comando registration para o comando update.

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 ic parâmetro.

Para obter mais informações, consulte a documentação de atualização do serviço az ml.

Próximos passos