Configurer un laboratoire pour enseigner la science des données avec Python et Jupyter Notebooks

Notes

Cet article référence les fonctionnalités disponibles depuis la mise à jour d’août 2022, quand les plans de labo ont remplacé les comptes de labo. Pour plus d’informations, consultez Nouveautés de la mise à jour d’août 2022.

Jupyter Notebooks est un projet open source qui permet de combiner facilement du texte enrichi et du code source Python exécutable sur un même canevas appelé notebook. L’exécution d’un notebook produit un enregistrement linéaire des entrées et des sorties. Ces sorties peuvent inclure du texte, des tables d’informations, des nuages de points, etc.

Cet article explique comment configurer une machine virtuelle modèle dans Azure Lab Services avec les outils nécessaires pour enseigner aux élèves comment utiliser Jupyter Notebooks. Nous allons également montrer comment les étudiants peuvent se connecter à leurs notebooks sur leurs machines virtuelles.

Configuration du laboratoire

Pour pouvoir configurer ce labo, vous devez avoir accès à un abonnement Azure. Demandez à l’administrateur de votre organisation si vous pouvez accéder à un abonnement Azure existant. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Paramètres du plan de labo

Une fois que vous disposez d’un abonnement Azure, vous pouvez créer un plan lab dans Azure Lab Services. Pour plus d’informations sur la création d’un plan de labo, consultez Tutoriel : Configurer un plan de labo avec Azure Lab Services. Vous pouvez également utiliser un plan Lab existant.

Activez les paramètres décrits dans le tableau ci-dessous pour le plan lab. Pour plus d’informations sur l’activation des images de la Place de marché, consultez Spécification des images de la Place de Marché accessibles aux créateurs Lab.

Paramètres du plan lab Instructions
Image de la Place de marché Dans votre compte lab, activez Data Science Virtual Machine : Windows Server 2019 ou Data Science Virtual Machine – Ubuntu 18.04 en fonction des besoins de votre système d’exploitation.

Cet article utilise les images Data Science Virtual Machine disponibles sur la Place de marché Azure, car elles sont déjà préconfigurées avec Jupyter Notebook. Cependant, elles incluent également de nombreux autres outils de développement et de modélisation pour la science des données. Si vous ne souhaitez pas ces outils supplémentaires et que vous préférez une installation légère limitée à Jupyter Notebook, créez une image de machine virtuelle personnalisée. Pour voir un exemple, consultez Installation de JupyterHub sur Azure. Une fois l’image personnalisée créée, vous pouvez la charger dans une galerie de calcul pour pouvoir l’utiliser au sein d’Azure Lab Services. Découvrez comment utiliser une galerie de calcul dans Azure Lab Services.

Paramètres du labo

Pour obtenir des instructions sur la création d'un labo, consultez Tutoriel : Configurer un labo. Activez les paramètres de Lab comme décrit dans le tableau suivant. Pour plus d’informations sur l’activation des images de la Place de marché Azure, consultez Spécification des images de la Place de marché Azure accessibles aux créateurs d’instances Lab.

Paramètres du labo Valeur
Taille de la machine virtuelle Sélectionnez Petite ou Moyenne adaptée à une configuration de base de l’accès à Jupyter Notebook. Sélectionnez Peu de GPU (calcul) pour les applications nécessitant beaucoup de ressources système et réseau utilisées dans les classes d’intelligence artificielle et de Deep Learning.
Image de machine virtuelle Choisissez Data Science Virtual Machine : Windows Server 2019 ou Data Science Virtual Machine – Ubuntu en fonction des besoins de votre système d’exploitation.
Paramètres de la machine virtuelle Sélectionnez Utiliser la machine virtuelle sans personnalisation.

Lorsque vous créez un lab avec la taille Peu de GPU (calcul), vous pouvez installer les pilotes GPU. Cette option installe des pilotes NVIDIA récents et le kit d’outils CUDA (Compute Unified Device Architecture) qui sont nécessaires pour permettre le calcul haute performance avec le GPU. Pour plus d’informations, consultez l’article Configurer un lab avec des machines virtuelles GPU.

Configuration du modèle de machine

Une fois le Lab créé, un modèle de machine virtuelle est établi en fonction de la taille et de l’image de machine virtuelle choisies. Vous configurez le modèle de machine virtuelle avec tout ce que vous souhaitez fournir à vos étudiants pour ce cours. Pour plus d’informations, consultez Créer et gérer un modèle dans Azure Lab Services.

Les images Data Science VM sont fournies avec la plupart des frameworks et des outils de science des données requis pour ce type de cours, par exemple :

  • Jupyter Notebooks : une application web qui permet aux scientifiques des données de prendre des données brutes, d’exécuter des calculs et de voir les résultats dans le même environnement. Il s’exécute en local dans le modèle de machine virtuelle.
  • Visual Studio Code : un environnement de développement intégré (IDE) qui offre une expérience interactive riche lors de l’écriture et des tests d’un notebook. Pour plus d’informations, consultez Utilisation de Jupyter Notebooks dans Visual Studio Code.

Le Data Science Virtual Machine : l’image Ubuntu est déjà approvisionnée avec le serveur X2GO et permet aux étudiants d’utiliser une expérience graphique de bureau. Aucune procédure supplémentaire n’est nécessaire lors de la configuration du modèle de machine virtuelle.

Activation des outils pour utiliser des GPU

Si vous utilisez la taille Peu de GPU (calcul), nous vous recommandons de vérifier que les infrastructures et les bibliothèques de science des données sont correctement configurées pour utiliser les GPU. Vous devrez peut-être installer une version différente des pilotes NVIDIA et du kit d’outils CUDA. Pour configurer correctement les GPU, vous devez consulter la documentation de l’infrastructure ou de la bibliothèque.

Par exemple, pour vérifier que le GPU est configuré pour TensorFlow, connectez au modèle de machine virtuelle et exécuter le code Python-TensorFlow suivant dans Jupyter Notebooks :

import tensorflow as tf
from tensorflow.python.client import device_lib

print(device_lib.list_local_devices())

Si la sortie du code ci-dessus ressemble à ce qui suit, le GPU n’est pas configuré pour TensorFlow :

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15833696144144374634
]

Pour continuer avec l’exemple ci-dessous, consultez Prise en charge GPU de TensorFlow pour de l’assistance. L’assistance de TensorFlow couvre les sujets suivants :

Après avoir suivi les étapes de TensorFlow pour configurer le GPU, lorsque vous réexécutez le code d’essai, vous devez obtenir une sortie similaire à la sortie suivante.

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15833696144144374634
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 11154792128
locality {
  bus_id: 1
  links {
  }
}
incarnation: 2659412736190423786
physical_device_desc: "device: 0, name: NVIDIA Tesla K80, pci bus id: 0001:00:00.0, compute capability: 3.7"
]

Fourniture de notebooks pour le cours

La tâche suivante consiste à fournir aux étudiants les notebooks qu’ils devront utiliser. Les blocs-notes peuvent être enregistrés localement sur le modèle de machine virtuelle afin que chaque étudiant ait sa propre copie. Si vous souhaitez utiliser des exemples de notebooks issus d’Azure Machine Learning, consultez Guide pratique pour configurer un environnement avec Jupyter Notebook.

Publication du modèle de machine virtuelle

Lorsque vous publiez le modèle, chacun des étudiants inscrit au Lab reçoit une copie du modèle de machine virtuelle comportant tous les outils et notebooks locaux que vous y avez configurés.

Procédure de connexion à Jupyter Notebook pour les étudiants

Une fois le modèle publié, chaque étudiant a accès à une machine virtuelle contenant tous les éléments que vous avez déjà configurés pour le cours, y compris Jupyter Notebook. Les sections suivantes montrent les différents moyens qu’ils ont de se connecter à Jupyter Notebook.

Pour les machines virtuelles Windows

Si vous avez fourni aux étudiants des machines virtuelles Windows, ils doivent se connecter aux machines virtuelles du lab pour utiliser les notebooks Jupyter. Pour se connecter à une machine virtuelle Windows, ils peuvent utiliser une connexion Bureau à distance (RDP). Pour plus d’informations, consultez Connecter à une machine virtuelle de laboratoire Windows.

Pour les machines virtuelles Linux

Si vous avez fourni aux étudiants des machines virtuelles Linux, les étudiants peuvent accéder localement aux notebooks Jupyter après la connexion à la machine virtuelle. Pour obtenir des instructions sur SSH ou se connecter à l’aide de X2Go, consultez Connecter à une machine virtuelle de laboratoire Linux.

Tunnel SSH vers le serveur Jupyter sur la machine virtuelle

Certains étudiants préfèrent se connecter directement à partir de leur ordinateur local au serveur Jupyter sur leur machine virtuelle de laboratoire. Le protocole SSH permet le réacheminement de port entre l’ordinateur local et un serveur distant (dans notre cas, la machine virtuelle Lab de l’étudiant), afin de « tunneler » une application exécutée sur un certain port sur le serveur vers le port de mappage sur l’ordinateur local. Les étudiants doivent suivre cette procédure pour établir un tunnel SSH vers le serveur Jupyter sur leur machine virtuelle Lab :

  1. Dans le portail web Lab Services (https://labs.azure.com), assurez-vous que la machine virtuelle Linux à laquelle vous souhaitez vous connecter est démarrée.

  2. Une fois la machine virtuelle en cours d’exécution, obtenez la commande de connexion SSH en sélectionnant Connecter, qui affiche une fenêtre qui fournit la chaîne de commande SSH, qui ressemble à la chaîne suivante :

    ssh -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus2.cloudapp.azure.com
    
  3. Sur votre ordinateur local, lancez un terminal ou une invite de commandes, puis copiez-y la chaîne de connexion SSH. Ensuite, ajoutez -L 8888:localhost:8888 à la chaîne de commande pour créer le tunnel entre les ports. La chaîne finale devrait se présenter ainsi :

    ssh –L 8888:localhost:8888 -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus.cloudapp.azure.com
    
  4. Appuyez sur ENTRÉE pour exécuter la commande.

  5. Lorsque cela vous est demandé, indiquez le mot de passe de connexion à la machine virtuelle Lab.

  6. Après connexion à la machine virtuelle, démarrez le serveur Jupyter à l’aide de la commande suivante :

    jupyter notebook
    
  7. Cette commande vous fournit une URL dans le terminal. L’URL doit se présenter ainsi :

    http://localhost:8888/?token=8c09ecfc93e6a8cbedf9c66dffdae19670a64acc1d37
    
  8. Collez cette URL dans un navigateur sur votre ordinateur local pour vous connecter à Jupyter Notebook et travailler dessus.

    Notes

    Visual Studio Code offre également une excellente expérience d’édition Jupyter Notebook. Vous pouvez suivre les instructions de Connexion à un serveur Jupyter distant et utiliser la même URL qu’à l’étape précédente pour vous connecter à partir de VS Code au lieu du navigateur.

Estimation du coût

Nous allons aborder une estimation de coût possible pour cette classe. Nous allons utiliser une classe de 25 élèves. Nous prévoyons 20 heures de temps de classe. En outre, chaque étudiant obtient un quota de 10 heures pour les devoirs ou travaux en dehors des heures de cours planifiées. La taille de la machine virtuelle que nous avons choisie était Peu de GPU (calcul), soit 139 unités Lab. Si vous souhaitez utiliser la petite taille (20 unités Lab) ou la taille moyenne (42 unités Lab), vous pouvez remplacer la partie Unité Lab de l’équation ci-dessous par le nombre correspondant.

Voici un exemple d’estimation de coût possible pour cette classe : 25 étudiants * (20 heures planifiées + 10 heures de quota) * 139 unités Lab * 0,01 USD par heure = 1 042,5 USD.

Important

L’estimation du coût est fournie à titre d’exemple uniquement. Pour en savoir plus sur les tarifs actuels, consultez Tarification Azure Lab Services.

Conclusion

Dans cet article, nous avons parcouru les étapes de création d’un laboratoire pour une classe Jupyter Notebooks. Vous pouvez utiliser une configuration similaire pour d’autres cours de Machine Learning.

Étapes suivantes

L’image du modèle peut à présent être publiée dans le labo. Pour plus d’informations, consultez Publier le modèle de machine virtuelle.

Au fil de la configuration de votre instance Lab, consultez les articles suivants :