Mettre à jour un service web déployé (v1)

S’APPLIQUE À :extension Azure CLI ml v1Kit de développement logiciel (SDK) Python azureml v1

Dans cet article, vous allez apprendre à mettre à jour un service web déployé avec Azure Machine Learning.

Prérequis

  • Cet article part du principe que vous avez déjà déployé un service web avec Azure Machine Learning. Si vous avez besoin d’apprendre à déployer un service Web, procédez comme suit.

  • Les extraits de code de cet article considèrent que la variable ws a déjà été initialisée dans votre espace de travail à l’aide du constructeur Workflow() ou en ayant chargé une configuration enregistrée dans Workspace.from_config(). L’extrait de code suivant montre comment utiliser le constructeur :

    S’APPLIQUE À : SDK Python azureml v1

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

Important

Certaines des commandes Azure CLI de cet article utilisent l’extension azure-cli-ml, ou v1, pour Azure Machine Learning. La prise en charge de l’extension v1 se termine le 30 septembre 2025. Vous pourrez installer et utiliser l’extension v1 jusqu’à cette date.

Nous vous recommandons de passer à l’extension ml, ou v2, avant le 30 septembre 2025. Pour plus d’informations sur l’extension v2, consultez Extension Azure ML CLI et le SDK Python v2.

Mettre à jour un service web

Pour mettre à jour un service web, utilisez la méthode update. Vous pouvez mettre à jour le service web pour utiliser un nouveau modèle, un nouveau script d’entrée ou de nouvelles dépendances qui peuvent être spécifiées dans une configuration d’inférence. Pour plus d’informations, consultez la documentation sur Webservice.update.

Consultez Méthode de mise à jour du service AKS.

Consultez Méthode de mise à jour du service ACI.

Important

Lorsque vous créez une nouvelle version d’un modèle, vous devez mettre à jour manuellement chacun des services pour lesquels vous souhaitez l’utiliser.

Vous ne pouvez pas utiliser le kit de développement logiciel (SDK) pour mettre à jour un service web publié à partir du concepteur Azure Machine Learning.

Important

Azure Kubernetes Service utilise le pilote Blobfuse FlexVolume pour les versions 1.16= < et le pilote CSI des objets blob pour les versions 1.17 et >.

Ainsi, il est important de redéployer ou de mettre à jour le service web après la mise à niveau du cluster afin d’effectuer le déploiement avec la méthode blobfuse adéquate pour la version du cluster.

Notes

Quand une opération est déjà en cours, toute nouvelle opération sur le même service web répond avec une erreur de conflit 409. Par exemple, si une opération de création ou de mise à jour du service web est en cours et que vous déclenchez une nouvelle opération de suppression, une erreur est générée.

Avec le kit SDK

Le code suivant montre comment utiliser le SDK pour mettre à jour le modèle, l’environnement et le script d’entrée d’un service web :

S’APPLIQUE À : SDK Python 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())

Avec l’interface CLI

Vous pouvez également mettre à jour un service web en utilisant ML CLI. L’exemple suivant explique comment enregistrer un nouveau modèle, puis mettre à jour le service web pour utiliser ce nouveau modèle :

S’APPLIQUE À : Extension ml Azure CLI 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

Conseil

Dans cet exemple, un document JSON est utilisé pour transférer les informations de modèle à partir de la commande d’inscription vers la commande de mise à jour.

Pour mettre à jour le service afin d’utiliser un nouveau script ou environnement d’entrée, créez un fichier de configuration d’inférence et spécifiez-le avec le paramètre ic.

Pour plus d’informations, consultez la documentation az ml service update.

Étapes suivantes