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

Cet article décrit comment configurer un modèle de machine virtuelle (VM) dans Azure Lab Services qui inclut des outils pour enseigner aux étudiants comment utiliser des blocs-notes Jupyter. Vous découvrirez également comment les utilisateurs du labo peuvent se connecter à des notebooks sur leurs machines virtuelles.

Jupyter Notebooks est un projet open-source qui vous permet de combiner facilement du texte enrichi et du code source Python exécutable sur un seul canevas, appelé notebook. Exécutez un notebook pour créer 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.

Remarque

Cet article fait référence aux fonctionnalités disponibles dans les plans de labo, qui ont remplacé les comptes de labo.

Prérequis

  • Pour pouvoir configurer ce Lab, 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.

Configurer les paramètres du plan de labo

Une fois que vous disposez d’un abonnement Azure, vous pouvez créer un plan de labo dans Azure Lab Services. Pour plus d’informations sur la création d’un nouveau plan de labo, consultez Démarrage rapide : configurer des ressources pour créer des labos. Vous pouvez aussi utiliser un plan de labo existant.

Ce labo utilise l’une des images Data Science Virtual Machine en tant qu’image de machine virtuelle de base. Ces images sont disponibles dans la place de marché Azure. Cette option permet aux créateurs de labo de sélectionner l’image comme image de base pour leur labo. Vous devez activer ces images dans votre plan de labo.

Suivez ces étapes pour activer ces images de la Place de marché Azure disponibles pour les créateurs de labo.

  • Sélectionnez l’une des images de la place de marché Azure suivantes, en fonction de la configuration requise pour votre système d’exploitation :

    • Data Science Virtual Machine – Windows Server 2019/Windows Server 2022
    • Data Science Virtual Machine – Ubuntu 20.04
  • Vous pouvez également créer une image de machine virtuelle personnalisée :

    Les images Data Science VM disponibles sur la place de marché Azure sont déjà configurées avec les Notebooks Jupyter. Ces images incluent également d’autres outils de développement et de modélisation pour la science des données. Si vous n’avez pas besoin de ces outils supplémentaires et que vous souhaitez une installation légère avec uniquement des notebooks Jupyter, créez une image de machine virtuelle personnalisée. Pour voir un exemple, consultez Installation de JupyterHub sur Azure.

    Après avoir créé l’image personnalisée, chargez l’image dans une galerie de calcul pour l’utiliser avec Azure Lab Services. Découvrez comment utiliser une galerie de calcul dans Azure Lab Services.

Création d’un laboratoire

  • Créez un labo pour votre plan de labo :

    Pour obtenir des instructions sur la création d'un labo, consultez Tutoriel : Configurer un labo. Spécifiez les paramètres de labo suivants :

    Paramètres du labo Valeur
    Taille de la machine virtuelle Sélectionnez Petite ou Moyenne pour une configuration de base permettant d’accéder aux Notebooks Jupyter. Sélectionnez GPU de petite taille alternatif (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, Data Science Virtual Machine – Windows Server 2022 ou Data Science Virtual Machine – Ubuntu.
    Paramètres de la machine virtuelle Sélectionnez Utiliser la machine virtuelle sans personnalisation.
  • Lorsque vous créez un laboratoire avec la taille Alternative petite avec GPU (calcul), installez les pilotes GPU.

    Ce processus installe les pilotes NVIDIA récents et le kit de ressources CUDA (Compute Unified Device Architecture), dont vous avez besoin pour effectuer des calculs de haute performance avec le GPU. Pour plus d’informations, consultez Configurer un labo avec des machines virtuelles GPU.

Configuration du modèle de machine

Après avoir créé un labo, créez une machine virtuelle de modèle basée sur la taille et l’image de la machine virtuelle que vous choisissez. Configurez la machine virtuelle modèle avec tout ce que vous souhaitez fournir à vos étudiants pour cette classe. 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 :

  • Notebooks Jupyter : Application web qui permet aux scientifiques de données de prendre des données brutes, d’exécuter des calculs et de voir les résultats dans le même environnement. Elle s’exécute localement dans la machine virtuelle de modèle.
  • Visual Studio Code : 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.

L’image Data Science Virtual Machine – Ubuntu est approvisionnée avec le serveur X2Go pour permettre aux utilisateurs du labo d’utiliser un bureau graphique.

Activation des outils pour utiliser des GPU

Si vous utilisez la taille GPU de petite taille alternatif (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 les GPU, consultez la documentation de l’infrastructure ou de la bibliothèque.

Par exemple, pour vérifier que TensorFlow utilise le GPU, connectez-vous 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 de ce code ressemble au résultat suivant, TensorFlow n’utilise pas le GPU :

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

Pour continuer avec cet exemple, consultez Prise en charge du GPU TensorFlow pour obtenir des conseils. 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 de test, vous devriez obtenir des résultats similaires à 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 utilisateurs de labo les notebooks qu’ils devront utiliser. Vous pouvez enregistrer des notebooks localement sur la machine virtuelle modèle afin que chaque utilisateur du labo 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

Pour rendre la machine virtuelle de labo disponible pour les utilisateurs du labo, vous devez publier le modèle. La machine virtuelle de labo possède tous les outils et notebooks locaux que vous avez configurés précédemment.

Se connecter à Jupyter Notebooks

Les sections suivantes montrent les différents moyens que les utilisateurs de labo ont de se connecter à Jupyter Notebooks sur la machine virtuelle de labo.

Utiliser Jupyter Notebooks sur la machine virtuelle de labo

Les utilisateurs du labo peuvent se connecter à partir de leur ordinateur local à la machine virtuelle du labo, puis utiliser Jupyter Notebooks à l’intérieur de la machine virtuelle du labo.

Si vous utilisez une machine virtuelle de labo Windows, les utilisateurs du labo peuvent se connecter à leurs machines virtuelles de labo via le bureau à distance (RDP). Pour plus d’informations, consultez Se connecter à une machine virtuelle de labo Windows.

Si vous utilisez une machine virtuelle de labo Linux, les utilisateurs du labo peuvent se connecter à leurs machines virtuelles de labo via SSH ou à l’aide de X2Go. Pour plus d’informations, consultez Se connecter à une machine virtuelle de labo Linux.

Tunnel SSH vers le serveur Jupyter sur la machine virtuelle

Pour les labos Linux, vous pouvez également vous connecter directement à partir de votre ordinateur local au serveur Jupyter à l’intérieur de la machine virtuelle du labo. Le protocole SSH permet le transfert de port entre l’ordinateur local et un serveur distant.eur distant (dans notre cas, la machine virtuelle de labo de l’utilisateur). Il s’agit de la machine virtuelle labo de l’utilisateur. Une application qui s’exécute sur un certain port sur le serveur est tunnelisée au port de mappage sur l’ordinateur local.

Suivez ces étapes pour configurer un tunnel SSH entre l’ordinateur local d’un utilisateur et le serveur Jupyter sur la machine virtuelle du labo :

  1. Accédez au site web deAzure Lab Services.

  2. Vérifiez que la machine virtuelle du labo Linux est en cours d’exécution.

  3. Sélectionnez l’icône Se connecter>Se connecter via SSH pour obtenir la commande de connexion SSH.

    La commande de connexion SSH ressemble à l’exemple suivant :

    ssh -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus2.cloudapp.azure.com
    

    Pour en savoir, consultez Se connecter à une machine virtuelle Linux.

  4. Sur votre ordinateur local, lancez un terminal ou une invite de commandes, puis copiez-y la chaîne de connexion SSH. Ajoutez ensuite -L 8888:localhost:8888 à la chaîne de commande pour créer le tunnel entre les ports.

    La commande finale doit ressembler à l’exemple suivant.

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

  6. Lorsque cela vous est demandé, indiquez le mot de passe de la machine virtuelle du labo pour vous y connecter.

  7. Lorsque vous vous connectez à la machine virtuelle, démarrez le serveur Jupyter à l’aide de cette commande :

    jupyter notebook
    

    La commande génère une URL pour le serveur Jupyter dans le terminal. L’URL doit être semblable à l’exemple suivant :

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

    Remarque

    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.

Estimer les coûts

Cette section fournit une estimation des coûts pour l’exécution de cette classe pour 25 utilisateurs de labo. Nous prévoyons 20 heures de temps de classe. En outre, chaque utilisateur 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 choisie est une alternative petite avec GPU (calcul), ce qui correspond à 139 unités de labo. Si vous souhaitez utiliser la petite taille (20 unités de labo) ou la taille moyenne (42 unités de labo), vous pouvez remplacer la partie Unité de labo de l’équation par le nombre correct.

Voici un exemple d’estimation de coût possible pour cette classe : 25 lab users * (20 scheduled hours + 10 quota hours) * 139 lab units * 0.01 USD per hour = 1042.5 USD.

Important

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

Dans cet article, vous avez appris à créer un labo pour une classe Jupyter Notebooks et comment l’utilisateur peut se connecter à ses notebooks sur la machine virtuelle du labo. Vous pouvez utiliser une configuration similaire pour d’autres cours de Machine Learning.

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 :