Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Cet article fait référence au Kit de développement logiciel (SDK) Azure Machine Learning v1. Sdk v1 est déconseillé depuis le 31 mars 2025. La prise en charge se termine le 30 juin 2026. Vos flux de travail existants qui utilisent le Kit de développement logiciel (SDK) v1 continuent à fonctionner après la date de fin de support, mais ils peuvent être exposés aux risques de sécurité ou aux changements cassants. Passer au SDK v2 avant le 30 juin 2026. Pour plus d’informations, consultez Qu’est-ce qu’Azure Machine Learning CLI et le Kit de développement logiciel (SDK) Python v2 ?
Avec SDK/CLI v1, vous pouvez déployer des modèles sur ACI ou AKS en tant que services web. Vos déploiements de modèles v1 existants et vos services web continuent de fonctionner, mais l’utilisation du SDK/CLI v1 pour déployer des modèles sur ACI ou AKS en tant que services web est désormais déconseillée. Pour les nouveaux déploiements de modèles, effectuez une mise à niveau vers v2.
Dans v2, vous pouvez utiliser des points de terminaison managés ou des points de terminaison Kubernetes. Pour une comparaison des versions 1 et 2, consultez la section Points de terminaison et déploiement.
Plusieurs chaînes de déploiement existent, tels que les points de terminaison en ligne gérés, les points de terminaison en ligne Kubernetes (y compris les services Azure Kubernetes et les services Kubernetes compatibles Arc) dans v2, et les services web Azure Container Instances (ACI) et Kubernetes Services (AKS) dans v1. Dans cet article, concentrez-vous sur la comparaison du déploiement sur des services web ACI (v1) et des points de terminaison en ligne managés (v2).
Les exemples présentés dans cet article montrent comment :
- Déployer votre modèle sur Azure
- Évaluer à l’aide du point de terminaison
- Supprimer le service web ou le point de terminaison
Créer des ressources d’inférence
- Kit de développement logiciel (SDK) v1
Configurez un modèle, un environnement et un script de scoring :
# configure a model. example for registering a model from azureml.core.model import Model model = Model.register(ws, model_name="bidaf_onnx", model_path="./model.onnx") # configure an environment from azureml.core import Environment env = Environment(name='myenv') python_packages = ['nltk', 'numpy', 'onnxruntime'] for package in python_packages: env.python.conda_dependencies.add_pip_package(package) # configure an inference configuration with a scoring script from azureml.core.model import InferenceConfig inference_config = InferenceConfig( environment=env, source_directory="./source_dir", entry_script="./score.py", )Configurez et déployez un service web ACI :
from azureml.core.webservice import AciWebservice # defince compute resources for ACI deployment_config = AciWebservice.deploy_configuration( cpu_cores=0.5, memory_gb=1, auth_enabled=True ) # define an ACI webservice service = Model.deploy( ws, "myservice", [model], inference_config, deployment_config, overwrite=True, ) # create the service service.wait_for_deployment(show_output=True)
Pour plus d’informations sur l’inscription de modèles, consultez Inscrire un modèle à partir d’un fichier local.
Kit de développement logiciel (SDK) v2
Configurez un modèle, un environnement et un script de scoring :
from azure.ai.ml.entities import Model # configure a model model = Model(path="../model-1/model/sklearn_regression_model.pkl") # configure an environment from azure.ai.ml.entities import Environment env = Environment( conda_file="../model-1/environment/conda.yml", image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04", ) # configure an inference configuration with a scoring script from azure.ai.ml.entities import CodeConfiguration code_config = CodeConfiguration( code="../model-1/onlinescoring", scoring_script="score.py" )Configurez et créez un point de terminaison en ligne :
import datetime from azure.ai.ml.entities import ManagedOnlineEndpoint # create a unique endpoint name with current datetime to avoid conflicts online_endpoint_name = "endpoint-" + datetime.datetime.now().strftime("%m%d%H%M%f") # define an online endpoint endpoint = ManagedOnlineEndpoint( name=online_endpoint_name, description="this is a sample online endpoint", auth_mode="key", tags={"foo": "bar"}, ) # create the endpoint: ml_client.begin_create_or_update(endpoint)Configurez et créez un déploiement en ligne :
from azure.ai.ml.entities import ManagedOnlineDeployment # define a deployment blue_deployment = ManagedOnlineDeployment( name="blue", endpoint_name=online_endpoint_name, model=model, environment=env, code_configuration=code_config, instance_type="Standard_F2s_v2", instance_count=1, ) # create the deployment: ml_client.begin_create_or_update(blue_deployment) # blue deployment takes 100 traffic endpoint.traffic = {"blue": 100} ml_client.begin_create_or_update(endpoint)
Pour plus d’informations sur les concepts de points de terminaison et de déploiements, consultez Que sont les points de terminaison en ligne ?.
Soumettre une demande
Kit de développement logiciel (SDK) v1
import json data = { "query": "What color is the fox", "context": "The quick brown fox jumped over the lazy dog.", } data = json.dumps(data) predictions = service.run(input_data=data) print(predictions)Kit de développement logiciel (SDK) v2
# test the endpoint (the request will route to blue deployment as set above) ml_client.online_endpoints.invoke( endpoint_name=online_endpoint_name, request_file="../model-1/sample-request.json", ) # test the specific (blue) deployment ml_client.online_endpoints.invoke( endpoint_name=online_endpoint_name, deployment_name="blue", request_file="../model-1/sample-request.json", )
Supprimer des ressources
Kit de développement logiciel (SDK) v1
service.delete()Kit de développement logiciel (SDK) v2
ml_client.online_endpoints.begin_delete(name=online_endpoint_name)
Mappage des fonctionnalités clés dans le SDK v1 et le SDK v2
| Fonctionnalités dans le SDK v1 | Mappage approximatif dans le SDK v2 |
|---|---|
| azureml.core.model.Model Classe | Classe azure.ai.ml.entities.Model |
| Classe azureml.core.Environment | Classe Environment d'azure.ai.ml.entities |
| Classe azureml.core.model.InferenceConfig | classe Azure.ai.ml.entities.CodeConfiguration |
| classe azureml.core.webservice.AciWebservice | Classe azure.ai.ml.entities.OnlineDeployment (et classe azure.ai.ml.entities.ManagedOnlineEndpoint) |
| Model.deploy ou Webservice.deploy | ml_client.begin_create_or_update(online_deployment) |
| Webservice.run | ml_client.online_endpoints.invoke |
| Webservice.delete | ml_client.online_endpoints.begin_delete |
Documents associés
Pour plus d'informations, consultez la rubrique
Documentation v2 :
- Que sont les points de terminaison ?
- Déployer et évaluer un modèle d'apprentissage automatique à l’aide d’un point de terminaison en ligne
Documentation v1 :