Utilisation de Fidle au Centre Blaise Pascal

La formation FIDLE (pour Formation Introduction au Deep Learning]] a pour objectif de proposer une introduction au Deep Learning, allant des concepts fondamentaux aux architectures avancées (VAE, Transformers, GAN, …).

Cette formation se basant sur l'exploitation de Notebooks Jupyter, elle requiert l'exploitation d'outils, notamment des outils des environnements de Machine Learning Tensorflow, PyTorch. La documentation fournie ne propose cependant pas les éléments permettant l'exploitation de GPU.

Voici quelques lignes pour pouvoir lancer simplement tous les notebooks Fidle au CBP.

Création des notebooks et des bases d'images

  1. Création du dossier accueillant les notebook et les bases d'images :
    mkdir -p /local/$USER/FidleROOT
  2. Déplacement dans le dossier :
    cd /local/$USER/FidleROOT
  3. Téléchargement des notebooks :
    git clone https://gricad-gitlab.univ-grenoble-alpes.fr/talks/fidle.git
  4. Téléchargement des bases d'images :
    wget https://fidle.cnrs.fr/fidle-datasets.tar
  5. Expansion de l'archive :
    tar -xf fidle-datasets.tar
Le choix du dossier /local/$USER comme racine n'est pas anodin ! Les bases de données de Machine Learning comportent des dizaines de milliers voire des millions d'images. Placer ces dossiers dans son dossier personnel $HOME occupera non seulement beaucoup d'espace, mais ralentira considérablement son utilisation.

Pour éviter de trop charger le serveur Web hébergeant Fidle au CNRS, une copie a été placée sur l'espace projets du CBP : /projects. Les 5 lignes précédentes peuvent se réduire aux 4 suivantes :

En lieu et place des lignes précédentes :

  1. Création du dossier accueillant les notebook et les bases d'images :
    mkdir -p /local/$USER/FidleROOT
  2. Déplacement dans le dossier :
    cd /local/$USER/FidleROOT
  3. Téléchargement de l'archive et expansion des notebooks :
    tar xzf /projects/FidleROOT/fidle.tgz
  4. Téléchargement de l'archive et expansion des images :
    tar xf /projects/FidleROOT/fidle-datasets.tar

Chargement de l'environnement conda3 du CBP

L'environnement conda proposé en standard au CBP est le 4.9.2. Il intègre la majorité des outils exploités en Machine Learning mais également l'environnement Nvidia nécessaire à l'exploitation des GPU en Machine Learning.

Son chargement se fait par l'application de la commande :

module load conda3/4.9.2

Paramétrage de l'emplacement des images des bases Fidle

De manière à pointer correctement les bases d'images, définir la variable d'environnement FIDLE_DATASETS_DIR sur l'emplacement des images téléchargées :

export FIDLE_DATASETS_DIR=/local/$USER/FidleROOT/fidle-datasets

Lancement du jupiter-notebook

jupyter-notebook --no-browser --ip=$(hostname)

Au chargement de la ligne précédente, le terminal affiche des lignes comparables aux suivantes :

[I 17:26:36.731 NotebookApp] Serving notebooks from local directory: /local/equemene/FidleROOT
[I 17:26:36.731 NotebookApp] Jupyter Notebook 6.4.11 is running at:
[I 17:26:36.731 NotebookApp] http://gtx980tialpha:8888/?token=76e46066caea92735c79f1903f1e055d511cee0525a16bb3
[I 17:26:36.732 NotebookApp]  or http://127.0.0.1:8888/?token=76e46066caea92735c79f1903f1e055d511cee0525a16bb3
[I 17:26:36.732 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 17:26:36.743 NotebookApp] 
    
    To access the notebook, open this file in a browser:
        file:///home/equemene/.local/share/jupyter/runtime/nbserver-267202-open.html
    Or copy and paste one of these URLs:
        http://gtx980tialpha:8888/?token=76e46066caea92735c79f1903f1e055d511cee0525a16bb3
     or http://127.0.0.1:8888/?token=76e46066caea92735c79f1903f1e055d511cee0525a16bb3

Copier l'adresse commençant par http mais ne contenant pas 127.0.0.1 et la coller dans son navigateur. Ici, ce serait :

http://gtx980tialpha:8888/?token=76e46066caea92735c79f1903f1e055d511cee0525a16bb3

Cette ligne ouvre le serveur Web créé par l'outil Jupyter sur la machine gtx980tialpha au Centre Blaise Pascal.

Attention, l'utilisation de cette adresse ne fonctionne QUE si vous êtes connecté sur une des machines du Centre Blaise Pascal par x2go ou sur une machine connectée avec un fil sur ce même réseau.

Chargement d'un notebook dans le navigateur

Une fois l'adresse précédente copiée dans le navigateur, on obtient ceci :

Ces deux dossiers fidle et fidle-datasets contiennent respectivement l'ensemble des notebooks du cours et les bases d'images.

Par exemple, pour sélectionner le notebook sur l'apprentissage de chiffres manuscrits, choisir 02-CNN-MNIST.ipynb

Le notebook se charge. Pour l'exécuter pas à pas, cliquer sur Run

Au chargement des éléments initiaux, le notebook informe par exemple que la librairie cudart est bien chargée. Les GPU présents sur la machine pourront être exploités.

L'exécution de cellules suivantes rappelle des informations sur l'environnement complet d'exécution.

Fermeture de son environnement jupyter notebook

Après exploitation, il est IMPERATIF de clôturer son jupyter-notebook, sans quoi la mémoire des GPU reste réservée au notebook en cours d'exécution. Il faut donc dans son terminal taper un <Ctrl><C>. Le terminal demande une confirmation validée par un 'y'.

Shutdown this notebook server (y/[n])? y
[C 17:43:03.495 NotebookApp] Shutdown confirmed
[I 17:43:03.498 NotebookApp] Shutting down 1 kernel
[I 17:43:03.499 NotebookApp] Kernel shutdown: 87440d72-6146-4384-a7a0-e8c9c6a51013
[I 17:43:06.116 NotebookApp] Shutting down 0 terminals
ressources/fidle4cbp.txt · Dernière modification: 2022/05/25 17:50 par equemene