Weights & Biases (wandb)/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
No edit summary
 
(24 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages />
<languages />
[https://wandb.ai Weights & Biases (wandb)] est une plateforme de méta-apprentissage machine qui permet de construire des modèles pour des applications concrètes. La plateforme permet de suivre, comparer, décrire et reproduire les expériences d'apprentissage machine.
[[Category:AI and Machine Learning]]
[https://wandb.ai Weights & Biases (wandb)] est une <i>plateforme de méta-apprentissage machine</i> qui permet de construire des modèles pour des applications concrètes. La plateforme permet de suivre, comparer, décrire et reproduire les expériences d'apprentissage machine.


== Utilisation sur nos grappes ==
== Utilisation sur nos grappes ==
Line 13: Line 14:
! Grappe !! Disponible !!  
! Grappe !! Disponible !!  
|-
|-
| Béluga || rowspan="2"| non ❌ ||| rowspan="2"| Wandb nécessite l'accès à Google Cloud Storage, ce qui n'est pas possible sur les noeuds de calcul
| Béluga || rowspan="2"| non ❌ || rowspan="2"| wandb nécessite l'accès à Google Cloud Storage, ce qui n'est pas possible sur les nœuds de calcul
|-
|-
| Narval
| Narval
Line 22: Line 23:
|}
|}


=== Béluga ===
=== Béluga et Narval ===


S'il est possible de téléverser des métriques de base pour Weights&Biases par une tâche sur Béluga, le paquet wandb téléverse automatiquement de l'information sur l'environnement utilisé vers un compartiment (''bucket'') Google Cloud Storage, ce qui cause un plantage (''crash'') au cours d'un entrainement ou à sa toute fin; présentement, il est impossible de désactiver ce comportement. Le téléversement d'artefacts avec <tt>wandb.save()</tt> nécessite aussi l'accès au Google Cloud Storage, ce qui n'est pas disponible sur les nœuds de calcul de Béluga.
S'il est possible de téléverser des métriques de base pour Weights&Biases par une tâche sur Béluga, le paquet wandb téléverse automatiquement de l'information sur l'environnement utilisé vers un compartiment (<i>bucket</i>) Google Cloud Storage, ce qui cause un plantage (<i>crash</i>) au cours d'un entraînement ou à sa toute fin; présentement, il est impossible de désactiver ce comportement. Le téléversement d'artefacts avec <code>wandb.save()</code> nécessite aussi l'accès au Google Cloud Storage, ce qui n'est pas disponible sur les nœuds de calcul de Béluga.


Vous pouvez quand même utiliser wandb sur Béluga en activant les modes [https://docs.wandb.ai/library/cli#wandb-offline <tt>offline</tt>] ou [https://docs.wandb.ai/library/init#save-logs-offline <tt>dryrun</tt>]. Avec ces modes, wandb écrit tous les métriques, journalisations et artefacts sur le disque local, sans synchronisation avec le service internet Weights&Biases. Une fois les tâches terminées, vous pouvez faire la synchronisation avec la commande [https://docs.wandb.ai/ref/cli#wandb-sync <tt>wandb sync</tt>] sur le nœud de connexion.
Vous pouvez quand même utiliser wandb sur Béluga en activant les modes [https://docs.wandb.ai/library/cli#wandb-offline <code>offline</code>] ou [https://docs.wandb.ai/library/init#save-logs-offline <code>dryrun</code>]. Avec ces modes, wandb écrit tous les métriques, journalisations et artefacts sur le disque local, sans synchronisation avec le service internet Weights&Biases. Une fois les tâches terminées, vous pouvez faire la synchronisation avec la commande [https://docs.wandb.ai/ref/cli#wandb-sync <code>wandb sync</code>] sur le nœud de connexion.


Remarquez que le produit [[Comet.ml/fr|Comet.ml]] est très semblable à Weights & Biases et qu'il fonctionne sur Béluga.
Remarquez que le produit [[Comet.ml/fr|Comet.ml]] est très semblable à Weights & Biases et qu'il fonctionne sur Béluga.
Line 40: Line 41:
#!/bin/bash
#!/bin/bash
#SBATCH --account=YOUR_ACCOUNT
#SBATCH --account=YOUR_ACCOUNT
#SBATCH --cpus-per-task=1
#SBATCH --cpus-per-task=2 # Nous recommandons au moins 2 CPU (un pour le processus principal et un autre pour le processus wandB)
#SBATCH --mem=4G       
#SBATCH --mem=4G       
#SBATCH --time=0-03:00
#SBATCH --time=0-03:00
Line 46: Line 47:




module load python/3.8
module load StdEnv/2020 python/3.8
virtualenv --no-download $SLURM_TMPDIR/env
virtualenv --no-download $SLURM_TMPDIR/env
source $SLURM_TMPDIR/env/bin/activate
source $SLURM_TMPDIR/env/bin/activate
pip install --no-index wandb
pip install --no-index wandb


### Save your wandb API key in your .bash_profile or replace $API_KEY with your actual API key. Uncomment the line below and comment out 'wandb offline'. if running on Cedar ###
### sauvegardez votre clé wandb API dans votre .bash_profile ou remplacez $API_KEY par votre propre clé API. Sur Cedar, supprimez la ligne ci-dessous et mettez la ligne wandb offline en commentaire. ###


#wandb login $API_KEY  
#wandb login $API_KEY  
Line 60: Line 61:
}}
}}


Le script wandb-test.py est un exemple simple de journalisation des métriques. Pour d'autres options, voyez [https://docs.wandb.ai La documentation complète de W&B].
Le script wandb-test.py est un exemple simple de journalisation des métriques. Pour d'autres options, voyez [https://docs.wandb.ai la documentation complète de W&B].
 
Le script wandb-test.py utilise la méthode <tt>watch()</tt> pour journaliser les métriques. Voir [https://docs.wandb.ai la  documentation complète].


{{File
{{File
Line 70: Line 69:
import wandb
import wandb


wandb.init(project="wandb-pytorch-test")
wandb.init(project="wandb-pytorch-test", settings=wandb.Settings(start_method="fork"))


for my_metric in range(10):
for my_metric in range(10):

Latest revision as of 19:38, 15 July 2024

Other languages:

Weights & Biases (wandb) est une plateforme de méta-apprentissage machine qui permet de construire des modèles pour des applications concrètes. La plateforme permet de suivre, comparer, décrire et reproduire les expériences d'apprentissage machine.

Utilisation sur nos grappes

Disponibilité sur les nœuds de calcul

Puisque wandb exige une connexion à l'internet, sa disponibilité sur les nœuds de calcul dépend de la grappe.

Grappe Disponible
Béluga non ❌ wandb nécessite l'accès à Google Cloud Storage, ce qui n'est pas possible sur les nœuds de calcul
Narval
Cedar oui ✅ accès internet activé
Graham non ❌ accès internet désactivé sur les nœuds de calcul

Béluga et Narval

S'il est possible de téléverser des métriques de base pour Weights&Biases par une tâche sur Béluga, le paquet wandb téléverse automatiquement de l'information sur l'environnement utilisé vers un compartiment (bucket) Google Cloud Storage, ce qui cause un plantage (crash) au cours d'un entraînement ou à sa toute fin; présentement, il est impossible de désactiver ce comportement. Le téléversement d'artefacts avec wandb.save() nécessite aussi l'accès au Google Cloud Storage, ce qui n'est pas disponible sur les nœuds de calcul de Béluga.

Vous pouvez quand même utiliser wandb sur Béluga en activant les modes offline ou dryrun. Avec ces modes, wandb écrit tous les métriques, journalisations et artefacts sur le disque local, sans synchronisation avec le service internet Weights&Biases. Une fois les tâches terminées, vous pouvez faire la synchronisation avec la commande wandb sync sur le nœud de connexion.

Remarquez que le produit Comet.ml est très semblable à Weights & Biases et qu'il fonctionne sur Béluga.

Exemple

L'exemple suivant montre comment utiliser wandb pour le suivi de l'expérimentation sur Béluga. Pour reproduire ceci sur Cedar, il n'est pas nécessaire d'activer le mode hors ligne.


File : wandb-test.sh

#!/bin/bash
#SBATCH --account=YOUR_ACCOUNT
#SBATCH --cpus-per-task=2 # Nous recommandons au moins 2 CPU (un pour le processus principal et un autre pour le processus wandB)
#SBATCH --mem=4G       
#SBATCH --time=0-03:00
#SBATCH --output=%N-%j.out


module load StdEnv/2020 python/3.8
virtualenv --no-download $SLURM_TMPDIR/env
source $SLURM_TMPDIR/env/bin/activate
pip install --no-index wandb

### sauvegardez votre clé wandb API dans votre .bash_profile ou remplacez $API_KEY par votre propre clé API. Sur Cedar, supprimez la ligne ci-dessous et mettez la ligne wandb offline en commentaire. ###

#wandb login $API_KEY 

wandb offline

python wandb-test.py


Le script wandb-test.py est un exemple simple de journalisation des métriques. Pour d'autres options, voyez la documentation complète de W&B.


File : wandb-test.py

import wandb

wandb.init(project="wandb-pytorch-test", settings=wandb.Settings(start_method="fork"))

for my_metric in range(10):
    wandb.log({'my_metric': my_metric})


Après que l'entraînement a été effectué en mode hors ligne, vous aurez le nouveau répertoire ./wandb/offline-run*. Pour envoyer les métriques au serveur, utilisez la commande wandb sync ./wandb/offline-run* où l'astérisque synchronise toutes les exécutions.