Skip to main content
Ce guide présente des approches pour intégrer W&B dans une bibliothèque, un framework ou un SDK Python. Il couvre la gestion des dépendances, l’authentification, la journalisation facultative, l’initialisation des runs, les artifacts, l’optimisation des hyperparamètres et l’exécution distribuée. Utilisez ce guide lorsque votre intégration porte sur du code de bibliothèque réutilisable plutôt que sur un simple script d’entraînement ou un notebook. Pour une introduction à W&B, consultez Suivi des expériences.

Concevoir l’intégration

Avant d’ajouter W&B à votre bibliothèque, déterminez les points suivants :
  • Si wandb est une dépendance obligatoire ou facultative.
  • Si les utilisateurs peuvent exécuter votre bibliothèque sans enregistrer ni téléverser de données W&B.
  • Quelles valeurs de configuration, quelles métriques et quels artifacts votre bibliothèque journalise.
  • Si vous souhaitez prendre en charge l’optimisation des hyperparamètres avec W&B Sweeps.
  • Si vous souhaitez partager des artifacts, tels que des modèles et des jeux de données, via le registre de votre organisation.
  • Comment votre bibliothèque gère l’entraînement distribué et les processus multiples.
Ces choix déterminent la manière dont votre bibliothèque importe W&B, gère le cycle de vie des runs et se comporte lorsque W&B n’est pas disponible.

Choisir le mode d’installation de W&B

Choisissez entre installer W&B automatiquement avec votre bibliothèque ou le proposer comme fonctionnalité facultative.

Déclarer W&B comme dépendance obligatoire

Si W&B joue un rôle central dans votre bibliothèque, ajoutez wandb à ses dépendances. Pour un fichier requirements.txt :
requirements.txt
Pour un fichier pyproject.toml :
pyproject.toml
Envisagez de spécifier une plage de versions compatibles en fonction des fonctionnalités de W&B qu’utilise votre intégration.

Faire de W&B une dépendance facultative

Si W&B est une fonctionnalité facultative, faites en sorte que votre bibliothèque puisse être installée sans wandb. Déclarez W&B comme dépendance facultative dans pyproject.toml :
pyproject.toml
Installez ensuite l’intégration avec la commande suivante :

Authentifier les utilisateurs

W&B utilise des clés API pour authentifier les utilisateurs et les machines. Avant de pouvoir journaliser des runs depuis votre bibliothèque, vous devez générer une clé API et la mettre à la disposition du client wandb. W&B prend en charge l’authentification via la CLI, les variables d’environnement et wandb.login().

Créer une clé API

Pour plus de simplicité, accédez aux Paramètres utilisateur et créez une clé API. Copiez immédiatement la clé API et enregistrez-la dans un emplacement sécurisé, par exemple un gestionnaire de mots de passe.

S’authentifier depuis la ligne de commande

Dans votre terminal, exécutez :
W&B vous invite à saisir une clé API. Vous pouvez aussi définir la variable d’environnement WANDB_API_KEY :
Pour plus d’informations, voir Variables d’environnement.

S’authentifier depuis Python

Dans un environnement Python interactif ou un notebook, appelez :
Évitez d’appeler automatiquement wandb.login() depuis le code d’une bibliothèque réutilisable, car cela peut interrompre les flux de travail non interactifs.

Rendre la journalisation W&B facultative

Choisissez si W&B enregistre ou téléverse les données du run. Utilisez disabled si vous ne souhaitez pas enregistrer les données du run. Utilisez offline si vous souhaitez enregistrer les données en local pour les téléverser plus tard.

Utiliser le mode disabled

Passez mode="disabled" à wandb.init() :
Vous pouvez aussi définir WANDB_MODE dans l’environnement :
Vous pouvez également définir le mode à l’aide de la CLI W&B :

Utiliser le mode offline

Passez mode="offline" à wandb.init() :
Vous pouvez aussi définir WANDB_MODE dans l’environnement :
En Python, définissez la variable d’environnement avant d’appeler wandb.init() :
Vous pouvez également définir le mode à l’aide de la CLI W&B :
Pour téléverser ultérieurement un run hors ligne, utilisez :

Initialiser un run

Une fois authentifié, initialisez un run pour consigner des métriques, des valeurs de configuration et des artifacts depuis votre bibliothèque. Appelez wandb.init() en indiquant le projet et l’entity d’équipe. Si vous omettez le projet, W&B enregistre le run dans le projet par défaut "uncategorized". Utilisez wandb.init() comme gestionnaire de contexte autour de la boucle d’entraînement. À la sortie du bloc, W&B termine le run et traite les données en attente avant la fin du processus. Par exemple, supposons que votre bibliothèque contienne la boucle d’entraînement suivante :
Python
Pour intégrer W&B, initialisez un run à l’aide d’un gestionnaire de contexte, transmettez les valeurs de configuration à wandb.init() et consignez des métriques avec wandb.Run.log() :
Python
Quand appeler wandb.init()Appelez wandb.init() avant le code que vous souhaitez faire surveiller par W&B. Utilisez-le comme gestionnaire de contexte englobant toute la boucle d’entraînement, afin que le run capture la sortie standard, l’erreur standard et les messages d’erreur utiles au débogage.
La section suivante explique en détail comment consigner les valeurs de configuration et les métriques depuis votre bibliothèque.

Journaliser la configuration et les métriques

Journalisez les valeurs de configuration et les métriques dans W&B afin que vous et les membres de votre équipe puissiez comparer, filtrer, regrouper et reproduire vos expériences.

Journaliser les valeurs de configuration

Transmettez un dictionnaire de configuration à wandb.init() pour enregistrer les hyperparamètres et d’autres métadonnées. Utilisez des clés descriptives et des valeurs sérialisables en JSON :
Transmettez le dictionnaire à wandb.init() :
Certaines valeurs ne sont pas forcément disponibles au démarrage du run. Ajoutez-les ultérieurement avec wandb.Run.config.update() :
Pour plus d’informations, voir Configurer des expériences.

Consigner des métriques

Consignez des métriques telles que la perte ou la précision pendant l’entraînement. Créez un dictionnaire dans lequel chaque clé correspond au nom d’une métrique et chaque valeur à la valeur de cette métrique. Passez ce dictionnaire à wandb.Run.log(). L’extrait de code suivant consigne des métriques d’entraînement et de validation dans W&B :
Python
Utilisez des préfixes tels que train/ et val/ pour regrouper les métriques associées. Pour obtenir des conseils sur la journalisation des types de données pris en charge, les données suivies automatiquement et les bonnes pratiques, consultez Consigner des métriques et des données. Pour suivre des modèles et des jeux de données, consultez la section Suivre des modèles et des jeux de données avec des artifacts.

Définir un axe de journalisation personnalisé

Par défaut, W&B trace les métriques journalisées en fonction d’un step incrémenté automatiquement. Chaque appel à wandb.Run.log() incrémente le step. Utilisez wandb.Run.define_metric() pour tracer une métrique en fonction d’une autre valeur, comme une époque ou un step global. L’exemple suivant définit x_axis_squared comme axe X pour validation_loss. À chaque itération de la boucle, x_axis_squared vaut le carré de l’index i, et validation_loss est une valeur générée aléatoirement :
Python
Pour plus d’informations, voir Définir un axe de journalisation personnalisé.

Suivre les modèles et les jeux de données avec des artifacts

En plus des métriques, vous pouvez conserver les modèles et les jeux de données que votre bibliothèque produit ou consomme, afin que vous et les membres de votre équipe puissiez reproduire et comparer des runs. Utilisez W&B Artifacts pour versionner les modèles, les jeux de données et les autres fichiers que votre bibliothèque produit ou consomme. Avant d’ajouter la prise en charge des artifacts, déterminez :
  • les fichiers à journaliser ;
  • si la journalisation des artifacts doit être facultative ;
  • la fréquence de journalisation des points de contrôle ;
  • la manière de nommer les artifacts et les alias ;
  • les artifacts qui représentent les entrées et les sorties des runs.

Journaliser les points de contrôle du modèle

Journalisez les points de contrôle du modèle sous forme d’artifacts afin de pouvoir récupérer, versionner et partager les poids entraînés. Incluez l’ID du run dans le nom de l’artifact pour associer chaque point de contrôle à son run d’origine. L’exemple suivant journalise un point de contrôle toutes les 10 époques. Il crée un artifact dont le nom inclut l’ID du run, y ajoute les poids du modèle à partir d’un répertoire local, puis journalise l’artifact avec un alias personnalisé.
Python

Suivre les entrées d’un run

Utilisez wandb.Run.use_artifact() lorsqu’un run utilise un artifact, par exemple un jeu de données ou un point de contrôle de modèle. W&B enregistre l’artifact comme entrée du run. Indiquez le nom de l’artifact et, si vous le souhaitez, un alias pour cibler une version précise de cet artifact. Le nom de l’artifact se présente au format artifact_name:version ou artifact_name:alias.
Python

Suivre les sorties d’un run

Utilisez wandb.Run.log_artifact() pour journaliser un artifact comme sortie d’un run.
  1. Créez un artifact avec wandb.Artifact().
  2. Ajoutez un ou plusieurs fichiers à l’artifact.
  3. Journalisez l’artifact avec wandb.Run.log_artifact().
Pour en savoir plus sur la création, la gestion et l’utilisation des artifacts, consultez Artifacts.

Télécharger des artifacts

Utilisez l’API publique W&B pour télécharger un artifact sans créer de run ni l’enregistrer comme entrée d’un run.
Pour plus d’informations, consultez Télécharger et utiliser des artifacts. Utilisez Registry pour partager et gérer des versions d’artifact entre équipes. Avant de lier une version d’artifact, déterminez :
  • les versions d’artifact à partager ;
  • les collections auxquelles les lier ;
  • le registre dans lequel les publier.
Le registre de destination doit déjà exister.
L’exemple suivant journalise un artifact et le lie à une collection d’un registre :
Pour plus d’informations, voir Lier une version d’artifact à une collection.

Optimiser les hyperparamètres

Si votre bibliothèque prend en charge l’optimisation des hyperparamètres, intégrez W&B Sweeps pour effectuer des recherches par grille, aléatoires ou bayésiennes.
W&B recommande de séparer la configuration de sweep de la logique d’entraînement sous-jacente. La fonction d’entraînement doit lire ses paramètres depuis wandb.Run.config plutôt que de dépendre directement d’une logique propre au sweep.
Pour plus d’informations, voir Sweeps.

Prendre en charge l’entraînement distribué

Si votre bibliothèque prend en charge plusieurs processus ou machines, déterminez quels processus créent des runs et journalisent des données. Voici les approches courantes :
  • Journaliser uniquement depuis le processus principal. Cette approche évite de dupliquer les métriques et les artifacts.
  • Créer un run par processus et regrouper les runs à l’aide d’une valeur group commune.
Pour plus d’informations, voir Journaliser des expériences d’entraînement distribué.
Dernière modification le 30 septembre 2026