Dans cet article, vous découvrez comment déployer un modèle Machine Learning formé par AutoML sur un point de terminaison d’inférence en temps réel en ligne. Le Machine Learning automatisé, également appelé ML automatisé ou AutoML, est le processus d’automatisation des tâches fastidieuses et itératives de développement d’un modèle Machine Learning. Pour plus d’informations, consultez Qu’est-ce que le Machine Learning automatisé (AutoML) ?
Dans les sections suivantes, vous allez apprendre à déployer le modèle Machine Learning formé AutoML sur des points de terminaison en ligne à l’aide de :
Effectuer le déploiement à partir d’Azure Machine Learning studio et sans code
Le déploiement d’un modèle formé par AutoML à partir de la page ML automatisé est une expérience sans code. Cela signifie que vous n’avez pas besoin de préparer de script ni un environnement de scoring, car les deux sont générés automatiquement.
Dans Azure Machine Learning Studio, accédez à la page Machine Learning automatisé.
Sélectionnez et exécutez votre expérience.
Choisissez l’onglet Modèles + travaux enfants.
Sélectionnez le modèle que vous voulez déployer.
Une fois que vous avez sélectionné un modèle, le bouton Déployer est disponible avec un menu déroulant.
Sélectionnez l’option Point de terminaison en temps réel.
Le système génère le modèle et l’environnement nécessaires au déploiement.
Déployer manuellement à partir de studio ou de la ligne de commande
Si vous souhaitez mieux contrôler le déploiement, vous pouvez télécharger les artefacts de formation et les déployer.
Pour télécharger les composants dont vous avez besoin pour le déploiement :
Accédez à votre expérience Machine Learning automatisé et exécutez-la dans votre espace de travail Machine Learning.
Choisissez l’onglet Modèles + travaux enfants.
Sélectionnez le modèle à utiliser. Une fois que vous avez sélectionné un modèle, le bouton Télécharger est activé.
Choisissez Télécharger.
Vous recevez un fichier .zip qui contient :
Un fichier de spécification d’environnement Conda nommé conda_env_<VERSION>.yml
Un fichier de scoring Python nommé scoring_file_<VERSION>.py
Le modèle lui-même, dans un fichier Python .pkl nommé model.pkl
Pour effectuer un déploiement à l’aide de ces fichiers, vous pouvez utiliser le studio ou l’interface de ligne de commande Azure.
Dans Azure Machine Learning Studio, accédez à la page Modèles.
Sélectionnez + Inscrire>À partir de fichiers locaux.
Inscrivez le modèle que vous avez téléchargé à partir de l’exécution de Machine Learning automatisé.
Accédez à la page Environnements, sélectionnez Environnement personnalisé, puis sélectionnez + Créer pour créer un environnement pour votre déploiement. Utilisez le fichier YAML Conda téléchargé pour créer un environnement personnalisé.
Sélectionnez le modèle et, dans le menu déroulant Déployer, sélectionnez Point de terminaison en temps réel.
Effectuez toutes les étapes de l’Assistant pour créer un point de terminaison et un déploiement en ligne.
Pour créer un déploiement à partir de l’interface CLI, vous avez besoin de l’interface Azure CLI avec l’extension ML v2. Exécutez la commande suivante pour confirmer :
az version
Si vous recevez un message d’erreur ou que vous ne voyez pas Extensions: ml dans la réponse, procédez comme expliqué dans la section Installer et configurer l’interface CLI (v2).
Se connecter.
az login
Si vous avez accès à plusieurs abonnements Azure, vous pouvez définir votre abonnement actif.
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Définissez le groupe de ressources et l’espace de travail par défaut où vous souhaitez créer le déploiement.
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Placer le fichier de scoring dans son propre répertoire
Créez un répertoire nommé src. Enregistrez-y le fichier de scoring que vous avez téléchargé. Ce répertoire est chargé dans Azure et contient tout le code source nécessaire pour effectuer l’inférence. Pour un modèle AutoML, il n’y a qu’un fichier de scoring unique.
Créer le point de terminaison et le fichier de déploiement YAML
Pour créer un point de terminaison en ligne à partir de la ligne de commande, créez des fichiers endpoint.yml et deployment.yml. Le code suivant extrait du référentiel d’exemples Azure Machine Learning montre endpoints/online/managed/sample/ qui capture toutes les entrées nécessaires.
Vous devez modifier ce fichier pour utiliser les fichiers que vous avez téléchargés à partir de la page Modèles AutoML.
Créez des fichiers automl_endpoint.yml et automl_deployment.yml et collez le contenu des exemples précédents.
Modifiez la valeur name du point de terminaison. Le nom du point de terminaison doit être unique dans la région Azure. Le nom d’un point de terminaison doit commencer par une lettre majuscule ou minuscule et contenir uniquement des caractères « - » et alphanumériques.
Dans le fichier automl_deployment.yml, modifiez la valeur des clés dans les chemins d’accès suivants.
Chemin d’accès
Remplacer par
model:path
Chemin d’accès au fichier model.pkl que vous avez téléchargé.
code_configuration:code:path
Répertoire dans lequel vous avez placé le fichier de scoring.
code_configuration:scoring_script
Nom du fichier de scoring Python (scoring_file_<VERSION>.py).
environment:conda_file
URL de fichier pour le fichier d’environnement Conda téléchargé (conda_env_<VERSION>.yml).
Placer le fichier de scoring dans son propre répertoire
Créez un répertoire nommé src. Enregistrez-y le fichier de scoring que vous avez téléchargé. Ce répertoire est chargé dans Azure et contient tout le code source nécessaire pour effectuer l’inférence. Pour un modèle AutoML, il n’y a qu’un fichier de scoring unique.
Se connecter à un espace de travail Azure Machine Learning
Importez les bibliothèques nécessaires.
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
Configurez les détails de l’espace de travail et obtenez un handle pour l’espace de travail.
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
Création du point de terminaison et du déploiement
Créez les points de terminaison et les déploiements en ligne gérés.
Configurez le point de terminaison en ligne.
Conseil
name : Nom du point de terminaison. Il doit être unique au sein de la région Azure. Le nom d’un point de terminaison doit commencer par une lettre majuscule ou minuscule et contenir uniquement des caractères « - » et alphanumériques. Pour plus d’informations sur les règles de nommage, consultez limites de point de terminaison.
auth_mode : utilisez key pour l’authentification basée sur une clé. Utilisez aml_token pour l’authentification Azure Machine Learning basée sur les jetons. key n’expire pas, mais aml_token expire. Pour plus d’informations sur l’authentification, consultez S’authentifier auprès d’un point de terminaison en ligne.
# Creating a unique endpoint name with current datetime to avoid conflicts
import datetime
online_endpoint_name = "endpoint-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name=online_endpoint_name,
description="this is a sample online endpoint",
auth_mode="key",
)
Créez le point de terminaison.
En utilisant le MLClient créé précédemment, créez le point de terminaison dans l’espace de travail. Cette commande démarre la création du point de terminaison. Elle retourne une réponse de confirmation pendant la création du point de terminaison.
ml_client.begin_create_or_update(endpoint)
Configurez le déploiement en ligne.
Un déploiement est un ensemble de ressources nécessaires pour héberger le modèle qui effectue l’inférence réelle. Créez un déploiement pour notre point de terminaison avec la classe ManagedOnlineDeployment.
Dans cet exemple, les fichiers que vous avez téléchargés sur la page Modèles AutoML se trouvent dans le répertoire src. Vous pouvez modifier les paramètres dans le code en fonction de votre situation.
Paramètre
Remplacer par
model:path
Chemin d’accès au fichier model.pkl que vous avez téléchargé.
code_configuration:code:path
Répertoire dans lequel vous avez placé le fichier de scoring.
code_configuration:scoring_script
Nom du fichier de scoring Python (scoring_file_<VERSION>.py).
environment:conda_file
URL de fichier pour le fichier d’environnement Conda téléchargé (conda_env_<VERSION>.yml).
Créez le déploiement.
En utilisant le MLClient créé plus tôt, créez le déploiement dans l’espace de travail. Cette commande commence à créer le déploiement. Elle retourne une réponse de confirmation pendant la création déploiement.