Compartir vía


Actualización de un servicio web implementado (v1)

SE APLICA A:Extensión de ML de la CLI de Azure v1Azure ML del SDK de Python v1

En este artículo, aprenderá a actualizar un servicio web que se implementó con Azure Machine Learning.

Requisitos previos

  • En este artículo se supone que ya ha implementado un servicio web con Azure Machine Learning. Si necesita obtener información sobre cómo implementar un servicio web, siga estos pasos.

  • Los fragmentos de código de este artículo dan por hecho que la variable ws ya se ha inicializado en el área de trabajo mediante el constructor Workflow() o cargando una configuración guardada con Workspace.from_config(). El fragmento de código siguiente muestra cómo utilizar el constructor:

    SE APLICA A:Azure ML del SDK de Python v1

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

Importante

Algunos de los comandos de la CLI de Azure de este artículo usan la extensión azure-cli-ml o v1 para Azure Machine Learning. La compatibilidad con la extensión v1 finalizará el 30 de septiembre de 2025. La extensión v1 se podrá instalar y usar hasta esa fecha.

Se recomienda pasar a la extensión ml, o v2, antes del 30 de septiembre de 2025. Para más información sobre la extensión v2, consulte Extensión de la CLI de Azure ML y SDK de Python v2.

Actualización de servicio web

Para actualizar un servicio web, utilice el método update. Puede actualizar el servicio web para que use un nuevo modelo, un nuevo script de entrada o nuevas dependencias que se pueden especificar en una configuración de inferencia. Para más información, consulte la documentación de Webservice.update.

Consulte Método de actualización del servicio de AKS.

Consulte Método de actualización del servicio de ACI.

Importante

Cuando crea una nueva versión del modelo, debe actualizar manualmente cada servicio que quiera que la use.

No puede usar el SDK para actualizar un servicio web publicado desde el diseñador de Azure Machine Learning.

Importante

Azure Kubernetes Service usa el controlador Blobfuse FlexVolume en las versiones hasta la 1.16 y el controlador Blob CSI en las versiones a partir de la 1.17.

Por eso es importante que, después de actualizar el clúster, se vuelva a implementar o a actualizar el servicio web para implementar en el método blobfuse adecuado a la versión del clúster.

Nota

Cuando una operación ya está en curso, cualquier operación nueva en ese mismo servicio web responderá con un error de conflicto 409. Por ejemplo, si la operación de creación o actualización del servicio web está en curso y desencadena una nueva operación de eliminación, se producirá un error.

Uso del SDK

El código siguiente muestra cómo usar el SDK para actualizar el modelo, entorno y script de entrada para un servicio web:

SE APLICA A:Azure ML del SDK de Python 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())

Uso de la CLI

También puede actualizar un servicio Web con la CLI de ML. En el ejemplo siguiente se muestra cómo registrar un nuevo modelo y luego actualizar el servicio web para usarlo:

SE APLICA A:Extensión de ML de la CLI de 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

Sugerencia

En este ejemplo, se usa un documento JSON para pasar la información del modelo del comando de registro al comando de actualización.

Para actualizar el servicio de modo que use un nuevo entorno o script de entrada, cree un archivo de configuración de inferencia y especifíquelo con el parámetro ic.

Para más información, consulte la documentación de az ml service update.

Pasos siguientes