Génération, déploiement, test et surveillance d'un modèle d'apprentissage automatique prédictif
Ce tutoriel peut entraîner des coûts. Utilisez l'Estimateur de coûts pour générer une estimation du coût en fonction de votre utilisation projetée.
Ce tutoriel vous guide dans le processus de création d'un modèle d'apprentissage automatique prédictif, de déploiement du modèle généré en tant qu'API à utiliser dans vos applications et de test du modèle, le tout en une expérience intégrée et unifiée en libre-service sur IBM Cloud. Vous surveillerez ensuite le modèle déployé avec IBM Watson OpenScale.
Dans ce tutoriel, le jeu de données sur les espèces d'Iris est utilisé pour créer un modèle d'apprentissage automatique permettant de classer les espèces de fleurs.
Dans la terminologie de l'apprentissage automatique, la classification est considérée comme un exemple d'apprentissage supervisé, c'est-à-dire un apprentissage où un ensemble de formation d'observations correctement identifiées est disponible.
Watson Studio vous offre l'environnement et les outils permettant de résoudre les problèmes de votre entreprise en travaillant en collaboration avec les données. Vous pouvez choisir les outils nécessaires à l'analyse et à la visualisation des données, au nettoyage et à la mise en forme des données, à l'ingestion des flux de données en continu, ou à la création et à l'entraînement des modèles d'apprentissage automatique.
Objectifs
- Importer des données dans un projet.
- Générer un modèle d'apprentissage machine.
- Déployer le modèle et tester l'API.
- Tester un modèle d'apprentissage automatique.
- Surveiller le modèle déployé
- Réentraîner le modèle.
- L'administrateur charge un fichier CSV à partir d'une machine locale.
- Le fichier CSV téléchargé est stocké dans le service IBM Cloud Object Storage en tant que jeu de données.
- Le jeu de données est ensuite utilisé pour générer et déployer un modèle d'apprentissage automatique. Le modèle déployé est exposé en tant qu'API (scoring-endpoint).
- L'utilisateur effectue un appel d'API pour prévoir le résultat avec les données de test.
- Le modèle d'apprentissage automatique déployé est surveillé à des fins de qualité, d'exactitude et d'autres paramètres clés avec les données de test.
Importation de données dans un projet
Un projet est la façon dont vous organisez vos ressources pour atteindre un objectif particulier. Les ressources de votre projet peuvent inclure des données, des collaborateurs et des outils d'analyse tels que des blocs-notes Jupyter et des modèles d'apprentissage automatique.
Vous pouvez créer un projet pour ajouter des données et ouvrir un actif de données dans le raffineur de données pour le nettoyage et la mise en forme de vos données.
Créer un projet
- Á partir du catalogue, créez Watson Studio
- Sélectionnez une région.
- Sélectionnez un plan de tarification Lite
- Remplacez le nom de service par watson-studio-tutorial
- Sélectionnez un groupe de ressources et cliquez sur Créer
- Cliquez sur le bouton Lancer dans et sélectionnez IBM watsonx.
- Créez un projet en cliquant sur + Créer un projet dans la section Projets.
- Indiquez iris_project comme nom de projet.
- Dans Define storage, ajoutez une nouvelle instance d'un service Object Storage.
- Cliquez sur Créer. Votre nouveau projet s'ouvre et vous pouvez commencer à y ajouter des ressources.
données d"importation
Comme mentionné précédemment, vous utilisez le jeu de données Iris. Le jeu de données Iris a été utilisé en R.A. Le papier classique de Fisher 1936, Utilisation de mesures multiples dans les problèmes taxonomiques, et peut également être trouvé sur le Référentiel Machine Learning UCI. Ce petit jeu de données est souvent utilisé pour tester des algorithmes d'apprentissage automatique et des visualisations. L'objectif est de classer les fleurs d'iris en trois espèces (Setosa, Versicolor ou Virginica) à partir de mesures de longueur et de largeur de sépales et de pétales. L'ensemble de données sur le système d'enquête sur les identités et les risques contient 3 classes de 50 instances chacune, où chaque classe fait référence à un type d'installation du système d'enquête sur les identités et les risques.
Un sépal est une partie de la fleur des angiospermes (plantes à fleurs). Généralement vert, les sépales servent généralement de protection pour la fleur dans le bourgeon, et souvent de soutien pour les pétales lorsqu'ils sont en fleur. Les pétales sont des feuilles modifiées qui entourent les parties reproductrices des fleurs. Ils sont souvent de couleurs vives ou de forme inhabituelle pour attirer les pollinisateurs. https://en.wikipedia.org/wiki/Iris_flower_data_set
Téléchargez le iris_initial.csv qui contient 40 instances de chaque espèce. Vérifiez
que le fichier téléchargé s'appelle iris_initial.csv.
- Sélectionnez l'onglet Actifs s'il n'est pas déjà sélectionné.
- Sous Données dans ce projet, cliquez sur Déposer les fichiers de données ici ou recherchez les fichiers à télécharger.
- Charger le fichier téléchargé
iris_initial.csv. - Une fois ajouté, vous devriez voir
iris_initial.csvdans la section All assets du projet.
Associez le service Machine Learning
- Dans le menu de navigation supérieur, sur le
iris-project, cliquez sur Gérer, puis sélectionnez la section Services & intégrations à gauche. - Cliquez sur Associer un service.
- Si vous avez une instance de service Watson Machine Learning existante, passez à l'étape suivante. Sinon, continuez avec les étapes suivantes pour créer une instance.
- Cliquez sur Nouveau service, puis sur la vignette Watson Machine Learning.
- Sélectionnez une région identique à celle du service Watson Studio et choisissez un plan Lite.
- Entrez
machine-learning-tutorialcomme nom de service et sélectionnez un groupe de ressources. - Cliquez sur Créer pour mettre à disposition un service Machine Learning.
- Cochez la case à côté du service Machine Learning et cliquez sur Associer.
Génération d'un modèle d'apprentissage automatique
- Dans le menu de navigation supérieur, cliquez sur Actifs.
- Cliquez sur Nouvel actif + et recherchez auto.
- Cliquez sur la vignette Créer automatiquement des modèles de machine.
- Définissez le nom iris_auto.
- Sous Instance de serviceWatson Machine Learning, notez le service précédemment associé.
- Cliquez sur Créer.
Une fois le modèle créé :
-
Ajoutez des données d'entraînement en cliquant sur Sélectionner des données dans le projet.
- Choisissez l'actif de données sous Catégories et cochez iris_initial.csv.
- Cliquez sur Sélectionner un actif.
-
Si vous y êtes invité, répondez Non à la question Créer une analyse de série temporelle ?
-
Sélectionnez Espèces comme votre Que voulez-vous prédire ?.
-
Cliquez sur Paramètres d'expérimentation.
-
Sélectionnez Source de données.
-
Sous Méthode d'apprentissage et de rétention, définissez Fractionnement des données de rétention sur 14% en déplaçant le curseur.
-
Dans le menu de gauche, cliquez sur Prévision :
- Définissez Type de prévision sur Classification multiclasse.
- Définissez Métrique optimisée sur Précision.
- Cliquez sur Sauvegarder les paramètres.
-
Cliquez sur Exécuter l'expérimentation.
-
L'Expérimentation AutoAI peut prendre jusqu'à cinq minutes pour sélectionner l'algorithme approprié pour votre modèle.
Chaque pipeline de modèle se voit attribuer un score pour diverses métriques, puis il est classé. La métrique de classement par défaut des modèles de classification binaires est la zone sous la courbe ROC, pour les modèles de classification multiclasse, il s'agit de l'exactitude, et pour les modèles de régression, il s'agit de l'erreur quadratique moyenne (RMSE). Les pipelines les mieux classés sont affichés dans un tableau de classement, ce qui vous permet d'afficher davantage d'informations les concernant. Le tableau de classement fournit également l'option permettant de sauvegarder les pipelines de modèle sélectionnés après leur révision.
Une fois l'exécution de l'expérimentation terminée,
- Faites défiler l'écran jusqu'au tableau de classement du pipeline.
- Cliquez sur un pipeline pour afficher plus de détails sur les métriques et les performances. Une fois que vous avez terminé, ignorez l'opération en cliquant sur le X.
- En regard du modèle avec Rang 1 , cliquez sur Enregistrer sous.
- Sélectionnez le modèle.
- Conservez le nom par défaut.
- Cliquez sur Créer.
- A partir de la notification reçue, cliquez sur Afficher dans le projet.
Déploiement et test de votre modèle
Dans cette section, vous déployez le modèle sauvegardé et testez le modèle déployé.
- A l'aide de la navigation de l'élément de navigation, cliquez sur iris_project.
- Dans l'onglet Actifs, ouvrez Modèles à gauche.
- Dans le tableau Modèles, localisez le modèle et cliquez sur le menu de liste et choisissez Promouvoir dans l'espace. Vous utilisez des espaces de déploiement pour déployer des modèles et gérer vos déploiements.
- Définissez le nom sur iris_deployment_space.
- Sélectionnez le service de stockage Object Storage utilisé dans les étapes précédentes dans la liste déroulante correspondante.
- Sélectionnez le service
machine-learning-tutorialdans la liste déroulante correspondante. - Cliquez sur Créer.
- Cliquez sur Promouvoir.
- Depuis la notification reçue, accédez à l'espace de déploiement.
Dans Déploiements > iris_deployment_space:
- Cliquez sur le nom du modèle que vous venez de créer.
- Cliquez sur le bouton Nouveau déploiement.
- Sélectionnez En ligne comme type de déploiement, indiquez iris_deployment comme nom, puis cliquez sur Créer.
- Sous l'onglet Déploiements, une fois que le statut passe à Déployé, cliquez sur Nom dans le tableau. Les propriétés du service Web déployé pour le modèle seront affichées.
Test du modèle déployé
- Sous l'onglet Test de votre déploiement, cliquez sur l'icône d'entrée JSON à côté de Entrer les données d'entrée et fournissez les
JSONcomme entrée.{ "input_data": [{ "fields": ["sepal_length", "sepal_width", "petal_length", "petal_width"], "values": [ [5.1,3.5,1.4,0.2], [3.2,1.2,5.2,1.7] ] }] } - Cliquez sur Prévoir pour afficher les résultats de la prévision dans la table et la vue JSON.
- Vous pouvez modifier les données d'entrée et continuer à tester votre modèle.
Test de l'API
Avec l'interface utilisateur, vous pouvez également réaliser des prévisions à l'aide du noeud final d'évaluation de l'API en exposant le modèle déployé en tant qu'API accessible à partir de vos applications.
-
Sous l'onglet Référence API du déploiement, vous pouvez voir le point de terminaison sous Lien direct et des extraits de code dans différents langages de programmation.
-
Copiez le point de terminaison public dans un bloc-notes pour référence ultérieure.
-
Dans un navigateur, lancez l'interpréteur de commandes IBM Cloud et exportez le noeud final d'évaluation à utiliser dans les demandes ultérieures. Assurez-vous de ne pas fermer cette fenêtre..
export SCORING_ENDPOINT='<SCORING_ENDPOINT_FROM_ABOVE_STEP>'L'interpréteur de commandes IBM Cloud est un espace de travail d'interpréteur de commandes cloud accessible par l'intermédiaire de votre navigateur. Il est préconfiguré avec l'interface de ligne de commande complète d'IBM Cloud et de nombreux plug-in et outils permettant de gérer les applications, les ressources et l'infrastructure.
-
Pour utiliser le Watson Machine Learning REST API, vous devez obtenir un IBM Cloud Identity and Access Management (IAM) token. Exécutez la commande suivante, elle copiera le jeton IAM complet avec
Bearerde la réponse ci-dessus et l'exportera en tant queIAM_TOKENà utiliser dans les requêtes API suivantesexport IAM_TOKEN=$(ibmcloud iam oauth-tokens --output JSON | jq -r .iam_token) echo $IAM_TOKEN -
Exécutez le code cURL ci-dessous dans un interpréteur de commandes cloud pour afficher les résultats de prévision.
curl -X POST \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --header "Authorization: $IAM_TOKEN" \ -d '{"input_data": [{"fields": ["sepal_length", "sepal_width", "petal_length","petal_width"],"values": [[5.1,3.5,1.4,0.2], [3.2,1.2,5.2,1.7]]}]}' \ $SCORING_ENDPOINTSi vous observez ce code, vous constatez qu'il provient de l'onglet cURL du déploiement que vous avez créé ci-avant. Par la suite, en remplaçant le
[$ARRAY_OF_INPUT_FIELDS]caractère générique par [ « sepal_length », « sepal_width », « petal_length », « petal_width »],[$ARRAY_OF_VALUES_TO_BE_SCORED]le caractère générique par [5,1, 3,5, 1,4, 0,2] et le[$ANOTHER_ARRAY_OF_VALUES_TO_BE_SCORED]caractère générique par [3.2,1.2,5.2,1.7] respectivement.
Surveillance de votre modèle déployé avec IBM Watson OpenScale
IBM® Watson OpenScale suit et mesure les résultats de vos modèles d'IA et s'assure qu'ils restent justes, explicables et conformes chaque fois que vos modèles ont été construits ou qu'ils sont en cours d'exécution. Watson OpenScale détecte également et aide à corriger la dérive dans la précision lorsqu'un modèle IA est en production.
Pour en faciliter la compréhension, le tutoriel se concentre uniquement sur l'amélioration de la qualité (exactitude) du modèle d'intelligence artificielle via le service Watson OpenScale.
Mise à disposition du service IBM Watson OpenScale
Dans cette section, vous allez créer un service Watson OpenScale pour surveiller les métriques d'état de santé, de performances, d'exactitude et de qualité de votre modèle d'apprentissage automatique déployé.
- Créez un serviceIBM Watson OpenScale (watsonx.governance)
- Sélectionnez de préférence une région dans la même région que celle dans laquelle vous avez créé le service Machine Learning.
- Choisissez le plan Lite .
- Définissez le nom de service sur Watson-openscale-tutoriel.
- Sélectionnez un groupe de ressources.
- Cliquez sur Créer.
- Une fois le service provisionné, cliquez sur Manage dans le volet de gauche et cliquez sur Launch Watson OpenScale.
- Cliquez sur Configuration manuelle pour configurer manuellement les moniteurs.
Configuration du système
Dans cette section, dans le cadre de la préparation de votre modèle pour le surveiller, vous allez configurer et activer des moniteurs pour chaque déploiement que vous suivez avec IBM Watson OpenScale.
- Cliquez sur Base de données. Il s'agit de stocker vos transactions de modèle et les résultats d'évaluation de modèle. (il se peut qu'elle soit déjà sélectionnée)
- Cliquez sur l'icône Modifier dans la tuile Base de données
- Choisissez la base de données Free lite plan comme type de base de données
- Cliquez sur Sauvegarder.
- Cliquez sur Fournisseurs d'apprentissage automatique
- Cliquez sur Ajouter un fournisseur d'apprentissage automatique, puis sur l'icône d'édition de la vignette Connexion.
- Sélectionnez Watson Machine Learning(V2) comme type de fournisseur de services.
- Dans la liste déroulante Espace de déploiement, sélectionnez l'espace de déploiement
iris_deployment_spaceque vous avez créé ci-dessus. - Laissez le type d'environnement sur Préproduction.
- Cliquez sur Sauvegarder.
- Dans le volet de gauche :
- Cliquez sur l'icône du tableau de bord Insights(première icône) pour ajouter un déploiement
- Cliquez sur Ajouter au tableau de bord pour lancer l'assistant sur la page Sélectionner l'emplacement du modèle.
- Dans l'onglet Espaces de déploiement, cliquez sur le bouton d'option
iris_deployment_space - Cliquez sur Suivant
- Dans l'onglet Espaces de déploiement, cliquez sur le bouton d'option
- Sur la page Sélectionner le modèle déployé:
- Cliquez sur iris_deployment
- Cliquez sur Suivant
- Sur la page Fournir des informations sur le modèle:
- Type de données : Numériques/catégorielles
- Type d'algorithme : Classification multiclasse
- Cliquez sur Afficher le résumé
- Cliquez sur Terminer
Le tableau de bord de préproduction iris_deployment s'affiche maintenant.
Cliquez sur Actions > Configurer les moniteurs
- Cliquez sur l'icône crayon dans la vignette Données de formation pour lancer l'assistant.
- Dans la page de méthode Sélectionner la configuration
- Cliquez sur Utiliser la configuration manuelle
- Cliquez sur Suivant
- Dans la page de méthode Spécifier les données d'apprentissage
- Pour l'option Données de formation, choisissez Stockage de base de données ou de cloud
- Pour Emplacement, choisissez Cloud Object Storage
- Pour l'ID de l'instance de ressources et la clé API, exécutez la commande ci-dessous dans le Cloud Shell Veillez à modifier la valeur après
--instance-namepour qu'elle corresponde au nom de l'instance Object Storage que vous avez utilisée pour ce tutoriel.ibmcloud resource service-key $(ibmcloud resource service-keys --instance-name "cloud-object-storage-tutorial" | awk '/WDP-Project-Management/ {print $1}') - Copiez et collez l'ID d'instance de ressource de données d'identification. Elle commence par crn et se termine par deux signes deux-points ::.
- Copiez et collez la clé d'API de données d'identification sans espace de fin.
- Cliquez sur Connecter.
- Sélectionnez le panier qui commence par
irisproject-donotdelete- - Sélectionnez
iris_initial.csvdans la liste déroulante Ensemble de données. - Cliquez sur Suivant
- Dans la page de méthode Sélectionner les colonnes de caractéristiques et les colonnes de libellés
- Les valeurs par défaut doivent être correctes. Espèces en tant qu'étiquette/cible et le reste en tant que caractéristiques.
- Cliquez sur Suivant
- Dans la page de méthode Sélectionner une sortie de modèle
- Les valeurs par défaut doivent être correctes, avec une prévision pour la prévision et une probabilité pour la probabilité.
- Cliquez sur Afficher le résumé
- Cliquez sur Terminer
- Dans la page de méthode Sélectionner la configuration
- Cliquez sur l'icône crayon de la vignette Détails de la sortie du modèle pour démarrer l'assistant.
- Dans la page de la méthode Spécifier les détails de sortie du modèle
- Les valeurs par défaut doivent être correctes.
- Cliquez sur Sauvegarder.
- Dans la page de la méthode Spécifier les détails de sortie du modèle
- Dans le volet de gauche, cliquez sur Qualité sous Évaluations et cliquez sur l'icône de modification dans la tuile Seuils de qualité
- Dans la page Seuils de qualité, définissez les valeurs suivantes:
- Précision 0.98
- Cliquez sur Suivant
- Dans la page Taille de l'échantillon
- Définir la taille d'échantillon minimale sur 10
- Cliquez sur Sauvegarder.
- Dans la page Seuils de qualité, définissez les valeurs suivantes:
Dans la sous-fenêtre de gauche, cliquez sur Aller au récapitulatif du modèle
Le moniteur de qualité (anciennement appelé moniteur d'exactitude) révèle si votre modèle prévoit bien les résultats.
Le tutoriel utilisant un petit jeu de données, la configuration de l'équité et de la dérive n'a aucun impact.
Evaluation du modèle déployé
Dans cette section, vous allez évaluer le modèle en téléchargeant un fichier iris_retrain.csv qui contient 10 instances de chaque espèce. Téléchargez iris_retrain.csv.
- Cliquez sur Actions, puis sur Evaluer maintenant.
- Choisissez à partir du fichier CSV comme option d'importation et cliquez sur Parcourir pour télécharger le fichier
iris_retrain.csv. - Cliquez sur Télécharger et évaluer.
- Une fois que l'évaluation est terminée, vous devez voir le tableau de bord avec différentes métriques.
Pour comprendre les métriques de qualité, voir Quality metric overview
Suppression de ressources
- Accédez à la liste des ressources IBM Cloud®.
- Sous Nom, entrez tutorial dans la zone de recherche.
- Supprimez les services que vous avez créés pour ce tutoriel.
En fonction de la ressource, le service peut ne pas être supprimé immédiatement mais conservé un certain temps (7 jours par défaut). Pour récupérer la ressource, vous pouvez la supprimer de manière définitive ou la restaurer pendant la période de conservation. Pour savoir comment utiliser la récupération de ressources, consultez ce document.