Partage via


Tutoriel : Entraîner et déployer un modèle Azure Machine Learning

S’applique à : icône oui IoT Edge 1.1

Important

IoT Edge la date de fin du support 1.1 était le 13 décembre 2022. Consultez la page Politique de support Microsoft pour plus d’informations sur la prise en charge de ce produit, de ce service, de cette technologie ou de cette API. Pour plus d’informations sur la mise à jour vers la dernière version d’IoT Edge, consultez Mettre à jour IoT Edge.

Dans cet article, vous allez effectuer les tâches suivantes :

  • Utiliser Azure Machine Learning Studio pour entraîner un modèle Machine Learning.
  • Empaqueter le modèle entraîné sous forme d’image conteneur
  • Déployer l’image conteneur en tant que module Azure IoT Edge

Machine Learning Studio est un socle utilisé pour expérimenter des modèles Machine Learning, effectuer leur apprentissage et les déployer.

Les étapes de cet article peuvent être généralement effectuées par les scientifiques de données.

Dans cette section du tutoriel, vous allez apprendre à :

  • Créer des notebooks Jupyter dans un espace de travail Azure Machine Learning pour effectuer l’apprentissage d’un modèle Machine Learning.
  • Conteneuriser le modèle Machine Learning entraîné.
  • Créer un module IoT Edge à partir du modèle Machine Learning conteneurisé.

Prérequis

Cet article fait partie d’une série de tutoriels sur l’utilisation de Machine Learning sur IoT Edge. Chaque article de la série s’appuie sur le travail réalisé dans le cadre de l’article précédent. Si vous êtes tombé directement sur cet article, consultez le premier article de la série.

Configurer Azure Machine Learning

Nous utilisons Machine Learning Studio pour héberger les deux notebooks Jupyter et les fichiers qui les accompagnent. Ici, nous créons et configurons un projet Machine Learning. Si vous n’avez jamais utilisé Jupyter ou Machine Learning Studio, voici deux documents de présentation :

Notes

Une fois le service configuré, Machine Learning est accessible depuis n’importe quelle machine. Pendant la configuration, vous devez utiliser la machine virtuelle de développement, qui contient tous les fichiers dont vous aurez besoin.

Installer l’extension Azure Machine Learning de Visual Studio Code

Cette extension doit être installée dans Visual Studio Code sur la machine virtuelle de développement. Si vous travaillez sur une autre instance, réinstallez l’extension comme indiqué dans Configurer l’extension de Visual Studio Code.

Créer un compte Azure Machine Learning

Pour approvisionner des ressources et exécuter des charges de travail sur Azure, connectez-vous avec les informations d’identification de votre compte Azure.

  1. Dans Visual Studio Code, ouvrez la palette de commandes en sélectionnant Affichage>Palette de commandes dans la barre de menus.

  2. Entrez la commande Azure: Sign In dans la palette de commandes pour démarrer le processus de connexion. Suivez les instructions pour effectuer la connexion.

  3. Créez une instance de calcul Machine Learning pour exécuter votre charge de travail. Dans la palette de commandes, entrez la commande Azure ML: Create Compute.

  4. Sélectionnez votre abonnement Azure.

  5. Sélectionnez + Créer un espace de travail Azure ML et entrez le nom turbofandemo.

  6. Sélectionnez le groupe de ressources que vous avez utilisé pour cette démonstration.

  7. Vous devriez voir la progression de la création de l’espace de travail en bas à droite de votre fenêtre Visual Studio Code : Création de l’espace de travail : turobofandemo. Cette opération peut prendre une ou deux minutes.

  8. Patientez pendant la création de l’espace de travail. Un message doit indiquer que l’espace de travail Azure ML turbofandemo a été créé.

Charger des fichiers Jupyter Notebook

Nous allons charger des exemples de fichiers notebooks dans un nouvel espace de travail Machine Learning.

  1. Accédez à ml.azure.com et connectez-vous.

  2. Sélectionnez votre répertoire Microsoft, votre abonnement Azure et l’espace de travail Machine Learning que vous venez de créer.

    Capture d’écran qui montre la sélection de votre espace de travail Azure Machine Learning.

  3. Une fois que vous êtes connecté à votre espace de travail Machine Learning, accédez à la section Notebooks à l’aide du menu sur le côté gauche.

  4. Sélectionnez l’onglet Mes fichiers.

  5. Sélectionnez Charger (icône de flèche vers le haut).

  6. Accédez à C:\source\IoTEdgeAndMlSample\AzureNotebooks. Sélectionnez tous les fichiers de la liste, puis sélectionnez Ouvrir.

  7. Cochez la case J’ai confiance dans le contenu de ces fichiers.

  8. Sélectionnez Charger pour commencer le chargement. Sélectionnez ensuite Terminé une fois le processus terminé.

Fichiers Jupyter Notebook

Passons en revue les fichiers que vous avez chargés dans votre espace de travail Machine Learning. Les activités de cette partie du tutoriel sont réparties entre deux fichiers de notebooks, qui utilisent quelques fichiers de prise en charge.

  • 01-turbofan_regression.ipynb : ce notebook utilise l’espace de travail Machine Learning pour créer et exécuter une expérience Machine Learning. Le notebook implique plus ou moins les étapes suivantes :

    1. Téléchargement des données à partir du compte de stockage Azure qui a été généré par l’atelier d’appareils
    2. Exploration et préparation des données, puis utilisation de ces données pour effectuer l’apprentissage du modèle de classifieur
    3. Évaluation du modèle de l’expérience à l’aide d’un jeu de données de test (Test_FD003.txt)
    4. Publication du meilleur modèle de classifieur dans l’espace de travail Machine Learning
  • 02-turbofan_deploy_model.ipynb : ce notebook prend le modèle créé dans le notebook précédent et l’utilise pour créer une image conteneur prête à être déployée sur un appareil IoT Edge. Le notebook effectue les étapes suivantes :

    1. Création d’un script de scoring pour le modèle
    2. Création d’une image conteneur à l’aide du modèle de classifieur qui a été enregistré dans l’espace de travail Machine Learning
    3. Déploiement de l’image en tant que service web sur Azure Container Instances
    4. Utilisation du service web pour valider le modèle et le travail de l’image comme prévu L’image validée sera déployée sur notre périphérique IoT Edge dans la partie Créer et déployer des modules IoT Edge personnalisés de ce tutoriel.
  • Test_FD003.txt : Ce fichier contient les données que nous utiliserons comme jeu de test lors de la validation de notre classifieur formé. Pour rester simples, nous avons choisi d’utiliser les données de test fournies pour le concours original pour notre jeu de test.

  • RUL_FD003.txt : Ce fichier contient la durée de vie utile restante pour le dernier cycle de chaque appareil du fichier Test_FD003.txt. Pour une description détaillée des données, consultez les fichiers readme.txt et Damage Propagation Modeling.pdf disponibles ici : C:\source\IoTEdgeAndMlSample\data\Turbofan.

  • Utils.py : Ce fichier contient un ensemble de fonctions utilitaires Python pour travailler avec des données. Le premier notebook contient une explication détaillée des fonctions.

  • README.md : Ce fichier Lisez-moi décrit l’utilisation des notebooks.

Exécuter les notebooks Jupyter

Maintenant que l’espace de travail est créé, vous pouvez exécuter les notebooks.

  1. Depuis votre page Mes fichiers, sélectionnez 01-turbofan_regression.ipynb.

    Capture d’écran qui montre la sélection du premier notebook à exécuter.

  2. Si le notebook est répertorié comme Non approuvé, sélectionnez le widget Non approuvé dans le coin supérieur droit du notebook. Lorsque la boîte de dialogue apparaît, sélectionnez Faire confiance.

  3. Pour de meilleurs résultats, lisez la documentation de chaque cellule et exécutez-la individuellement. Sélectionnez Exécuter dans la barre d’outils. Plus tard, il vous sera utile d’exécuter plusieurs cellules. Vous pouvez ignorer les avertissements de mise à niveau et d’obsolescence.

    Quand une cellule est en cours d’exécution, un astérisque entre crochets ([*]) s’affiche. Lorsque l’opération est terminée dans la cellule, l’astérisque est remplacé par un numéro et une sortie peut s’afficher. Les cellules d’un notebook sont générées de façon séquentielle, et vous ne pouvez exécuter qu’une seule cellule à la fois.

    Vous pouvez également utiliser les options d’exécution à partir du menu Cellule. Sélectionnez Ctrl+Entrée pour exécuter une cellule, et sélectionnez Maj+Entrée pour exécuter une cellule et passer à la cellule suivante.

    Conseil

    Pour les opérations de cellule cohérentes, évitez d’exécuter le même notebook à partir de plusieurs onglets de votre navigateur.

  4. Dans la cellule qui suit les instructions Définir des propriétés globales, entrez les valeurs de votre abonnement, de vos paramètres et de vos ressources Azure. Ensuite, exécutez la cellule.

    Capture d’écran montrant la configuration des propriétés globales dans le notebook.

  5. Dans la cellule précédant Détails de l’espace de travail, après son exécution, recherchez le lien qui vous demande de vous connecter pour vous authentifier.

    Capture d’écran montrant l’invite de connexion pour l’authentification de l’appareil.

    Ouvrez le lien et entrez le code spécifié. Cette procédure de connexion authentifie le notebook Jupyter pour accéder aux ressources Azure à l’aide de l’interface de ligne de commande multiplateforme Microsoft Azure.

    Capture d’écran montrant la confirmation de l’authentification de l’application sur l’appareil.

  6. Dans la cellule qui précède Explore the results (Explorer les résultats), copiez la valeur de l’ID d’exécution et collez-la pour l’ID d’exécution dans la cellule qui suit Reconstitute a run (Reconstituer une exécution).

    Capture d’écran montrant la copie de l’ID d’exécution entre les cellules.

  7. Exécutez les cellules restantes dans le notebook.

  8. Enregistrez le notebook et revenez à la page de votre projet.

  9. Ouvrez 02-turbofan_deploy_model.ipynb et exécutez chaque cellule. Vous devrez vous connecter pour vous authentifier dans la cellule qui suit Configurer l’espace de travail.

  10. Enregistrez le notebook et revenez à la page de votre projet.

Vérifier la réussite de l’exécution

Pour vérifier si les notebooks se sont correctement exécutés, regardez si certains éléments ont été créés.

  1. Sous l’onglet Mes fichiers de vos notebooks Machine Learning, sélectionnez Actualiser.

  2. Vérifiez que les fichiers suivants ont été créés.

    Fichier Description
    ./aml_config/.azureml/config.json Fichier config utilisé pour créer l’espace de travail Machine Learning.
    ./aml_config/model_config.json Fichier config dont nous aurons besoin pour déployer le modèle dans l’espace de travail Machine Learning turbofanDemo d’Azure.
    myenv.yml Fournit des informations sur les dépendances pour le modèle Machine Learning déployé.
  3. Vérifiez que les ressources Azure suivantes ont été créées. Certains noms de ressource sont suivis de caractères aléatoires.

    Ressource Azure Nom
    Espace de travail Azure Machine Learning turborfanDemo
    Azure Container Registry turbofandemoxxxxxxxx
    Application Insights turbofaninsightxxxxxxxx
    Azure Key Vault turbofankeyvaultbxxxxxxxx
    Stockage Azure turbofanstoragexxxxxxxxx

Débogage

Vous pouvez insérer des instructions Python dans le notebook pour le débogage, telles que la commande print() pour afficher des valeurs. Si vous voyez des variables ou des objets qui ne sont pas définis, exécutez les cellules là où ils sont déclarés ou instanciés en premier.

Vous devrez peut-être supprimer les ressources Azure et les fichiers créés si vous avez besoin de restaurer les notebooks.

Nettoyer les ressources

Ce tutoriel fait partie d’une série où chaque article s’appuie sur le travail effectué dans les articles précédents. Ne nettoyez pas les ressources avant d’avoir terminé le dernier tutoriel.

Étapes suivantes

Dans cet article, nous avons utilisé deux notebooks Jupyter exécutés dans Machine Learning Studio afin d’utiliser les données des appareils turbofan pour :

  • Effectuer l’apprentissage d’un classifieur de durée de vie utile restante.
  • Enregistrer le classifieur en tant que modèle.
  • Créer une image conteneur.
  • Déployer et tester l’image en tant que service web.

Passez à l’article suivant pour créer un appareil IoT Edge.