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
- Solución de problemas de implementaciones con errores
- Creación de aplicaciones cliente para consumir servicios web
- Cómo implementar un modelo con una imagen personalizada de Docker
- Uso de TLS para proteger un servicio web con Azure Machine Learning
- Supervisión de los modelos de Azure Machine Learning con Application Insights
- Recopilar datos de modelos en producción
- Creación de flujos de trabajo de aprendizaje automático controlados por eventos (versión preliminar)