Création automatique de modèles de machine learning

GUIDE DE MISE EN ROUTE

Présentation

Dans ce didacticiel, vous apprenez à utiliser Amazon SageMaker Autopilot pour créer, entraîner et ajuster automatiquement un modèle de machine learning (ML), et déployer le modèle pour faire des prédictions.
 

Amazon SageMaker Autopilot vous décharge de la lourde tâche de créer des modèles de ML en vous aidant à créer, entraîner et ajuster automatiquement le meilleur modèle de ML en fonction de vos données. Avec SageMaker Autopilot, il vous suffit de fournir un jeu de données tabulaires et de sélectionner la colonne cible à prédire. SageMaker Autopilot explore vos données, sélectionne les algorithmes pertinents pour votre type de problème, prépare les données pour entraîner le modèle, teste une variété de modèles et sélectionne le plus performant. Vous pouvez ensuite déployer l'un des modèles candidats ou les retravailler pour améliorer la qualité des prédictions.

Qu'allez-vous apprendre ?

Avec ce guide, vous allez :

  • Créer une expérience d'entraînement à l'aide de SageMaker Autopilot
  • Explorer les différents stades de l'expérience d'entraînement
  • Identifier et déployer le meilleur modèle possible à partir de l'expérience de formation
  • Effectuer des prédictions avec le modèle déployé

Prérequis

Pour pouvoir démarrer ce guide, vous avez besoin de ce qui suit :

 Expérience AWS

Débutant

 Durée

45 minutes

 Coût de réalisation

Consultez la tarification de SageMaker pour estimer le coût de ce didacticiel.

 Éléments requis

Vous devez être connecté à un compte AWS.

 Services utilisés

Amazon SageMaker Autopilot

 Date de la dernière mise à jour

12 juillet 2022

Cas d'utilisation

Pour ce travail, vous utilisez un jeu de données de synthèse de sinistres d'assurance automobile. Les entrées brutes sont deux tableaux de données d'assurance : un tableau des sinistres et un tableau des clients. Le tableau des sinistres comporte une colonne fraud (fraude) indiquant si un sinistre était frauduleux ou non. Pour les besoins de ce didacticiel, nous avons sélectionné une petite partie du jeu de données. Cependant, vous pouvez suivre les mêmes étapes dans ce didacticiel pour traiter de grands jeux de données.

 

Étape 1 : configuration du domaine Amazon SageMaker Studio

Un compte AWS ne peut avoir qu'un seul domaine SageMaker Studio par région AWS. Si vous possédez déjà un domaine SageMaker Studio dans la région USA Est (Virginie du Nord), suivez le guide de Configuration de SageMaker Studio pour joindre les politiques AWS IAM requises à votre compte SageMaker Studio, puis sautez l'étape 1 et passez directement à l'étape 2. 

Si vous ne disposez pas d'un domaine SageMaker Studio existant, poursuivez avec l'étape 1 pour exécuter un modèle AWS CloudFormation qui crée un domaine SageMaker Studio et ajoute les autorisations requises pour la suite de ce didacticiel.

Choisissez le lien de la pile AWS CloudFormation. Ce lien ouvre la console AWS CloudFormation et crée votre domaine SageMaker Studio ainsi qu'un utilisateur nommé studio-user. Il ajoute également les autorisations requises à votre compte SageMaker Studio. Dans la console CloudFormation, confirmez que USA Est (Virginie du Nord) est la région affichée dans le coin supérieur droit. Le nom de la pile doit être CFN-SM-IM-Lambda-Catalog, et ne doit pas être modifié. Cette pile prend environ 10 minutes pour créer toutes les ressources.

Cette pile repose sur l'hypothèse que vous avez déjà configuré un VPC public dans votre compte. Si vous ne disposez pas d'un VPC public, veuillez consulter la rubrique VPC with a single public subnet (VPC avec un seul sous-réseau public) pour savoir comment créer un VPC public.

Sélectionnez I acknowledge that AWS CloudFormation might create IAM resources (J'accepte qu'AWS CloudFormation puisse créer des ressources IAM), puis choisissez Create stack (Créer la pile).

Dans le volet CloudFormation, choisissez Stacks (Piles). Lorsque la pile est créée, son statut doit passer de CREATE_IN_PROGRESS (Création en cours) à CREATE_COMPLETE (Création terminée).

Saisissez SageMaker Studio dans la barre de recherche de la console CloudFormation, puis choisissez SageMaker Studio.

Choisissez USA Est (Virginie du Nord) dans la liste déroulante Region (Région) située dans le coin supérieur droit de la console SageMaker. Pour Launch app (Lancer l'application), sélectionnez Studio pour ouvrir SageMaker Studio à l'aide du profil studio-user.
 

Étape 2 : création d'une expérience SageMaker Autopilot

Le développement et le test d'un grand nombre de modèles candidats sont essentiels pour les projets de machine learning (ML). Amazon SageMaker Autopilot vous aide en vous proposant différents modèles candidats et choisit automatiquement le meilleur modèle en fonction de vos données. Au cours de cette étape, vous configurez une expérience SageMaker Autopilot pour prédire le succès d'une campagne de marketing pour les services financiers. Ce jeu de données représente une campagne de marketing menée par une grande institution de services financiers pour promouvoir l'inscription à un certificat de dépôt.

Pour démarrer une nouvelle expérience SageMaker Autopilot, cliquez sur l'icône + pour accéder à une nouvelle fenêtre de lancement. Dans la fenêtre du Lanceur, faites défiler l'écran jusqu'aux tâches et composants ML. Cliquez sur l'icône + pour New Autopilot experiment (Nouvelle expérience Autopilot).

Ensuite, nommez votre expérience. Cliquez dans la case Experiment name (Nom de l'expérience) et tapez autopilot-experiment comme nom.

 

Puis, connectez l'expérience aux données qui sont mises en scène dans S3. Cliquez sur la case Enter S3 bucket location (Saisir l'emplacement du compartiment S3). Dans la case S3 bucket address (Adresse du compartiment S3), collez le chemin S3 suivant : s3://sagemaker-sample-files/datasets/tabular/uci_bank_marketing/bank-additional-full.csv

Laissez l'option du fichier manifeste sur Off (Désactivé). Dans la liste déroulante Target (Cible), sélectionnez y comme caractéristique cible que notre modèle va tenter de prédire.

Dans le tableau Output data location (S3 bucket) (Emplacement des données de sortie [compartiment S3]), choisissez votre propre compartiment S3. Dans le champ Dataset directory name (Nom du répertoire des jeux de données), tapez sagemaker/tutorial-autopilot/output. C'est là que les données de sortie sont enregistrées une fois l'expérience terminée.

Laissez l'option Auto deploy (Déploiement automatique) activée et le champ Auto deploy endpoint (Point de terminaison du déploiement automatique) vide. Cela va automatiquement déployer notre modèle en tant que point de terminaison d'API et lui attribuer un nom.

Ensuite, il existe un certain nombre de paramètres avancés facultatifs qui contrôlent les détails du type de problème, l'expérience complète, les détails du temps d'exécution, l'accès IAM, la sécurité et le chiffrement, entre autres. Cliquez sur le bouton Runtime (Exécution) pour afficher les paramètres facultatifs.

Pour ce didacticiel, diminuez le nombre de Max candidates (Max candidats) de 250 à 5. Cela permet d'exécuter moins de modèles plus rapidement. Une expérience complète est la meilleure approche pour optimiser réellement votre modèle, mais elle peut prendre des heures. Pour ce didacticiel, nous conservons tels quels les paramètres optionnels.

Cliquez sur le bouton Create Experiment (Créer une expérience) pour commencer à lancer la première étape de l'expérience SageMaker Autopilot. SageMaker Autopilot commence à exécuter les phases d'une expérience. Dans la fenêtre d'expérimentation, vous pouvez suivre l'évolution des phases de prétraitement, de définition des candidats, d'ingénierie des fonctionnalités, d'ajustement du modèle, d'explicabilité et de compréhension.

Cliquez sur le bouton Create Experiment (Créer une expérience) pour commencer à lancer la première étape de l'expérience SageMaker Autopilot. SageMaker Autopilot commence à exécuter les phases d'une expérience. Dans la fenêtre d'expérimentation, vous pouvez suivre l'évolution des phases de prétraitement, de définition des candidats, d'ingénierie des fonctionnalités, d'ajustement du modèle, d'explicabilité et de compréhension. Si vous voyez une notification popup demandant « Are you sure you want to deploy the best model? » (« Voulez-vous vraiment déployer le meilleur modèle ? »), cliquez sur yes (oui).

Une fois la tâche SageMaker Autopilot terminée, vous pouvez accéder à un rapport qui indique les modèles candidats, l'état du modèle candidat, la valeur objective, le score F1 et la précision. SageMaker Autopilot déploie automatiquement le point de terminaison.

Étape 3 : interprétation de la performance du modèle

Maintenant que l'expérience est terminée et que vous avez un modèle, l'étape suivante consiste à interpréter ses performances. Vous allez maintenant apprendre à utiliser SageMaker Autopilot pour analyser les performances du modèle.

Maintenant que l'expérience SageMaker Autopilot est terminée, vous pouvez ouvrir le modèle le mieux classé pour obtenir plus de détails sur les performances et les métadonnées du modèle. Dans la liste des modèles, mettez le premier en surbrillance et faites un clic droit pour faire apparaître les options du modèle. Cliquez sur Open in model details (Ouvrir dans les détails du modèle) pour examiner les statistiques de performance du modèle.

Dans la nouvelle fenêtre, cliquez sur Explainability (Explicabilité). La première vue que vous voyez s'appelle Feature Importance (Importance des caractéristiques) et représente la valeur SHAP agrégée pour chaque fonctionnalité dans chaque instance du jeu de données. Le score d'importance des caractéristiques est une partie importante de l'explicabilité du modèle, car il montre quelles caractéristiques ont tendance à influencer le plus les prédictions dans le jeu de données. Dans ce cas d'utilisation, la durée ou l'ancienneté du client et le taux de variation de l'emploi sont les deux principaux champs qui déterminent les résultats du modèle.

Maintenant, cliquez sur l'onglet Performance. Il contient des informations détaillées sur les performances du modèle, notamment l'exactitude, la précision et le rappel. Vous pouvez également interpréter les performances du modèle et décider si un réglage supplémentaire du modèle est nécessaire.

Ensuite, des visualisations sont fournies pour illustrer davantage les performances du modèle. Tout d'abord, observez la matrice de confusion. La matrice de confusion est couramment utilisée pour comprendre comment les étiquettes du modèle se répartissent entre les classes prédites et les classes réelles. Dans ce cas, les éléments de la diagonale montrent le nombre d'étiquettes correctement prédites et les éléments hors diagonale montrent les enregistrements mal classés. Une matrice de confusion est utile pour analyser les erreurs de classification dues aux faux positifs et aux faux négatifs.

Examinez ensuite la courbe de précision par rapport au rappel. Cette courbe interprète l'étiquette comme un seuil de probabilité et montre le compromis qui se produit en fonction des différents seuils de probabilité pour la précision et le rappel du modèle. SageMaker Autopilot optimise automatiquement ces deux paramètres pour fournir le meilleur modèle.

Examinez maintenant la courbe intitulée Receiver Operating Characteristic (ROC) (Caractéristique d'exploitation du récepteur). Cette courbe montre la relation entre le taux de vrais positifs et le taux de faux positifs pour une variété de seuils de probabilité potentiels. Une ligne diagonale représente un modèle hypothétique basé sur une supposition aléatoire. Plus cette courbe se rapproche de la partie supérieure gauche du graphique, plus le modèle est performant.

La ligne pointillée représente un modèle à valeur prédictive nulle, souvent appelé modèle nul. Le modèle nul attribuerait de manière aléatoire une étiquette 0/1, et son aire sous la courbe ROC serait de 0,5, ce qui signifie qu'il serait exact dans 50 % des cas.

Cliquez ensuite sur l'onglet Artifacts (Artefacts). Vous pouvez trouver les ressources de soutien de l'expérience SageMaker Autopilot, y compris le code d'ingénierie des fonctionnalités, les emplacements des données d'entrée et les artefacts d'explicabilité.

Enfin, cliquez sur l'onglet Network (Réseau). Il contient des informations sur l'isolation du réseau et le chiffrement du trafic des conteneurs.

Étape 4 : test du point de terminaison du modèle SageMaker

Maintenant que vous avez examiné les détails du modèle, testez le point de terminaison.

Cliquez sur l'icône + pour faire apparaître un nouveau bloc-notes python. Sélectionnez Python3 comme noyau. Dans la première cellule, copiez et collez le code ci-dessous. Ce code crée une charge utile, soumet une requête au point de terminaison du modèle et analyse la réponse.

Afin de savoir où envoyer la demande, recherchez le nom du point de terminaison du modèle. Dans le volet de gauche, cliquez sur l'icône SageMaker Resources (Ressources SageMaker). Dans le volet des ressources SageMaker, sélectionnez Endpoints (Points de terminaison). Cliquez sur le point de terminaison associé au nom de l'expérience que vous avez créé au début de ce didacticiel. La fenêtre Endpoint Details (Détails du point de terminaison) s'affiche alors. Enregistrez le nom du point de terminaison et revenez au bloc-notes Python 3.

Copiez et collez l'extrait de code suivant dans une cellule du bloc-notes, et appuyez sur Shift+Enter (Maj+Entrée) pour exécuter la cellule actuelle. Ce code définit la variable d'environnement ENDPOINT_NAME et exécute l'inférence. Une fois le code terminé, un résultat composé de l'étiquette du modèle et du score de probabilité associé est affiché.
import os
import io
import boto3
import json
import csv

#: Define the endpoint's name.
ENDPOINT_NAME = 'autopilot-experiment-6d00f17b55464fc49c45d74362f284ce'
runtime = boto3.client('runtime.sagemaker')

#: Define a test payload to send to your endpoint.
payload = {
    "data":{
        "features": {
            "values": [45,"blue-collar","married","basic.9y",'unknown',"yes","no","telephone","may","mon",461,1,999,0,"nonexistent",1.1,93.994,-36.4,4.857,5191.0]
        }
    }
}

#: Submit an API request and capture the response object.
response = runtime.invoke_endpoint(
    EndpointName=ENDPOINT_NAME,
    ContentType='text/csv',
    Body=str(payload)
)

#: Print the model endpoint's output.
print(response['Body'].read().decode())

Félicitations ! Vous avez appris à utiliser SageMaker Autopilot pour entraîner et déployer automatiquement un modèle de machine learning.

Étape 5 : nettoyage de vos ressources AWS

Une bonne pratique consiste à supprimer les ressources que vous n'utilisez plus afin de ne pas encourir de frais imprévus.

Si vous avez exécuté le modèle CloudFormation à l'étape 1 pour créer un domaine SageMaker Studio, poursuivez les étapes suivantes pour supprimer le domaine, l'utilisateur et les ressources créés par le modèle CloudFormation.

Pour ouvrir la console CloudFormation, saisissez CloudFormation dans la barre de recherche de la console AWS, puis choisissez CloudFormation dans les résultats de la recherche.

Dans le volet CloudFormation, choisissez Stacks (Piles). Dans la liste déroulante Status (Statut), sélectionnez Active (Actif). Sous Stack name (Nom de la pile), choisissez CFN-SM-IM-Lambda-Catalog pour ouvrir la page des détails de la pile.

Sur la page de détails de la pile CFN-SM-IM-Lambda-Catalog, choisissez Delete (Supprimer) pour supprimer la pile ainsi que les ressources qu'elle a créées à l'étape 1.

Conclusion

Félicitations ! Vous avez maintenant terminé le didacticiel de Création automatique de modèles de machine learning.

Vous avez utilisé avec succès SageMaker Autopilot pour créer, entraîner et ajuster automatiquement des modèles, puis déployer le meilleur modèle candidat pour faire des prédictions.

Cette page vous a-t-elle été utile ?

Prochaines étapes

En savoir plus sur Amazon SageMaker Autopilot

Consulter la page web
En savoir plus »

Explorer la documentation SageMaker Autopilot

Découvrez comment démarrer avec Amazon SageMaker Autopilot
En savoir plus »
Trouver d'autres didacticiels pratiques
Découvrez d'autres didacticiels pratiques pour apprendre à tirer parti du ML
Mise en route »