Comment configurer la surveillance avec Weights & Biases ( étape par étape)
Si vous gérez des expériences d’apprentissage automatique et que vous continuez à tout enregistrer dans des feuilles de calcul ou des fichiers texte éparpillés, vous passez à côté de quelque chose de sérieux – la configuration de la surveillance de weights & biases vous fera économiser des heures pénibles et des nuits sans sommeil à vous battre avec des données expérimentales désorganisées.
Ce que vous allez construire et pourquoi c’est important
Nous mettons en place la surveillance de weights & biases pour suivre, visualiser et déboguer efficacement les exécutions de formation en apprentissage automatique – plus de métriques perdues ou de suppositions sur les hyperparamètres qui ont fait grimper votre modèle.
Prérequis
- Python 3.8+ (Weights & Biases est assez tolérant mais restez à 3.8 ou version ultérieure pour la compatibilité)
- pip installé, de préférence version 23.0+ (les mises à jour corrigent souvent les bogues liés aux dépendances des paquets)
- Créez un compte Weights & Biases gratuit sur https://wandb.ai
- Une familiarité de base avec les scripts de formation en apprentissage automatique (que ce soit TensorFlow, PyTorch ou sklearn)
- Connaissance des outils en ligne de commande (l’outil en ligne de commande de weights & biases est indispensable)
Configuration étape par étape
Étape 1 : Installer le paquet Python Weights & Biases
pip install wandb
C’est le seul paquet dont vous avez besoin pour surveiller vos exécutions d’apprentissage automatique. Il s’intègre à votre code et vous fournit des tableaux de bord en direct, un suivi des métriques et une gestion des artefacts.
Pourquoi ? Parce que le client de wandb gère tout ce qui concerne le téléchargement, la synchronisation et la mise en lien avec le serveur automatiquement. Cela vous évite la douleur des enregistrements manuels.
Pièges courants : Si vous rencontrez un conflit de version ou un problème de dépendance échouée, mettez à jour pip et setuptools :
pip install --upgrade pip setuptools
Étape 2 : Connectez-vous à votre compte Wandb
wandb login
Cette commande vous demande votre clé API. Rendez-vous dans les paramètres de votre compte sur https://wandb.ai/settings et copiez votre clé API. Collez-la lorsque l’outil en ligne de commande le demande.
Pourquoi ? Vous devez authentifier votre outil en ligne de commande avec votre projet cloud pour que vos exécutions soient liées à votre compte utilisateur et à vos projets.
Avertissement : Si vous collez accidentellement des espaces ou appuyez sur Entrée trop tôt, wandb rejettera votre clé et affichera une erreur cryptique concernant un échec d’authentification.
Étape 3 : Initialisez Wandb dans votre script de formation
import wandb
# Démarrer une nouvelle exécution
wandb.init(project="mon-projet-ml", entity="votre-nom-utilisateur")
# Exemple : Enregistrer les hyperparamètres
config = wandb.config
config.learning_rate = 0.001
config.batch_size = 32
Insérer ce morceau de code au début de votre boucle principale de formation permet à wandb de capturer tout ce qui se passe dans cette exécution.
Pourquoi ? L’étape d’initialisation crée un nouvel objet d’exécution du côté serveur, ce qui vous permet d’enregistrer des métriques et des artefacts en temps réel. Sans cela, vous ne verrez aucune donnée dans votre espace de travail.
Erreur courante : Si vous oubliez d’appeler wandb.init(), vos appels à wandb.log() ne feront rien, et cela peut échouer silencieusement. Vérifiez toujours cela.
Étape 4 : Enregistrez les métriques et hyperparamètres pendant la formation
for epoch in range(num_epochs):
# Entraînez votre modèle ici
train_loss = compute_train_loss()
val_loss = compute_val_loss()
# Enregistrez les métriques dans wandb
wandb.log({
"epoch": epoch,
"train_loss": train_loss,
"val_loss": val_loss
})
Ce morceau de code doit être à l’intérieur de votre boucle principale de formation. wandb.log() envoie les données au serveur de manière asynchrone.
Pourquoi ? L’enregistrement vous permet de suivre la performance du modèle étape par étape. Vous pouvez repérer un surapprentissage ou des plateaux et ajuster les hyperparamètres en conséquence.
Erreur typique : Ne pas envoyer suffisamment fréquemment les journaux, ce qui entraîne des données d’exécution incomplètes en cas de plantage de votre tâche. Assurez-vous que wandb.log() est appelé après chaque mise à jour significative (généralement à chaque époque ou lot).
Étape 5 : Enregistrez les artefacts du modèle pour le suivi des versions
# Enregistrez votre point de contrôle de modèle localement
torch.save(model.state_dict(), "model.pt")
# Téléchargez le point de contrôle en tant qu'artefact sur wandb
artifact = wandb.Artifact('model', type='model')
artifact.add_file("model.pt")
wandb.log_artifact(artifact)
Les artefacts de Wandb vous permettent de suivre les versions des modèles, ensembles de données ou autres outputs. Cela permet de garder votre formation reproductible et débogable.
Pourquoi ? Les artefacts favorisent les flux de travail collaboratifs et l’intégration avec CI/CD. Vous pouvez comparer des modèles et même revenir facilement à des points de contrôle précédents.
Avertissement : Oublier d’appeler wandb.log_artifact() signifie que vos fichiers enregistrés ne s’afficheront pas dans le tableau de bord du projet. De plus, les gros artefacts peuvent échouer silencieusement si les quotas de stockage sont atteints – vérifiez les limites d’utilisation de votre projet.
Étape 6 : Visualisez les résultats dans le tableau de bord Wandb
Ouvrez https://wandb.ai et naviguez vers votre projet. Vous verrez des graphiques en direct se mettre à jour avec vos métriques, hyperparamètres et artefacts enregistrés.
Pourquoi ? La visualisation est la fonctionnalité clé qui rend la configuration de la surveillance de weights & biases véritablement utile – voir les tendances de vos métriques vous aide à comprendre le comportement de votre modèle en temps réel.
Attention : Si vos métriques n’apparaissent pas, vérifiez que votre wandb.init() a le bon nom de projet et que vous êtes connecté au bon compte (entité). Vérifiez également que votre réseau autorise les connexions cloud (parfois, les pare-feu d’entreprise bloquent cela).
Étape 7 : Intégration avancée – Automatisez les exécutions Wandb avec CI/CD
# Exemple de snippet de workflow GitHub Actions
name: Exécuter la formation et enregistrer dans W&B
on: [push]
jobs:
train:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Configurer Python
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Installer les dépendances
run: pip install wandb torch
- name: Connexion à Wandb
run: echo ${{ secrets.WANDB_API_KEY }} | wandb login
- name: Exécuter le script de formation
run: python train.py
Ce script montre un flux de travail CI automatisé avec GitHub exécutant votre formation et envoyant les résultats à wandb automatiquement.
Pourquoi ? Les équipes de production ont besoin d’une surveillance qui s’intègre dans des pipelines – les exécutions manuelles sont fastidieuses et sujettes aux erreurs.
Problèmes potentiels : Vous devez stocker votre clé API Wandb en toute sécurité en tant que variable environnementale secrète (ne jamais l’engager). Oublier cela signifie que les tâches CI échoueront silencieusement l’authentification.
Les pièges que personne ne vous dit
- Quotas et limites : Votre niveau gratuit sur Wandb vous permet d’enregistrer environ quelques milliers d’exécutions par mois avant d’atteindre les limites de bande passante ou de stockage d’artefacts. Si vous effectuez 10K+ époques ou utilisez de grands ensembles de données, attendez-vous à une réduction de la vitesse. Vous ne recevrez pas d’avertissements explicites immédiatement ; vérifiez simplement le quota de votre projet.
Solution : Nettoyez régulièrement les anciennes exécutions et archivez les gros artefacts à l’extérieur.
- Latence entre l’enregistrement et le rafraîchissement du tableau de bord : Wandb télécharge de manière asynchrone, donc parfois vos dernières métriques apparaissent avec quelques secondes de retard, ce qui est frustrant si vous déboguez à un niveau de granularité de lot.
Solution : Ajoutez `wandb.log(…, commit=True)` pour envoyer les données à des points critiques.
- Incohérences d’environnement : Wandb surveille les versions de paquet de votre environnement Python. Si votre code s’exécute dans un environnement Docker ou distant sans listes de paquets exactes (requirements.txt), votre expérience pourrait ne pas être reproductible malgré les métriques enregistrées.
Solution : Fixez toujours et enregistrez les versions des paquets. - Problèmes de réseau dans des environnements restreints : Les serveurs d’entreprise et académiques bloquent souvent par défaut les téléchargements de télémétrie de Wandb, provoquant des échecs silencieux ou des blocages indéfinis.
Solution : Utilisez le mode hors ligne local (`wandb.init(mode=”offline”)`) et synchronisez plus tard, ou mettez en liste blanche des domaines sur les pare-feu. - Enregistrement de trop de données : Enregistrer chaque métrique de lot peut gonfler vos exécutions et ralentir votre interface utilisateur. Utilisez des statistiques de synthèse ou échantillonnez à intervalles réguliers.
Solution : Enregistrer au niveau d’époque ou tous les N lots, pas à chaque lot.
Exemple de code fonctionnel complet
import wandb
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset
# Jeu de données fictif
X = torch.randn(100, 10)
y = torch.randint(0, 2, (100,))
dataset = TensorDataset(X, y)
loader = DataLoader(dataset, batch_size=16, shuffle=True)
# Classificateur binaire simple
class SimpleModel(nn.Module):
def __init__(self):
super().__init__()
self.fc = nn.Linear(10, 2)
def forward(self, x):
return self.fc(x)
model = SimpleModel()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
# Initialiser l'exécution wandb
wandb.init(project="my-ml-project", entity="your-username")
wandb.config.update({
"epochs": 5,
"batch_size": 16,
"learning_rate": 0.001,
})
for epoch in range(wandb.config.epochs):
running_loss = 0.0
for inputs, labels in loader:
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
running_loss += loss.item()
avg_loss = running_loss / len(loader)
print(f"Époque {epoch+1}, Perte : {avg_loss:.4f}")
wandb.log({"epoch": epoch + 1, "loss": avg_loss})
# Enregistrer et uploader l'artefact du modèle
torch.save(model.state_dict(), "model.pt")
artifact = wandb.Artifact('simple-model', type='model')
artifact.add_file("model.pt")
wandb.log_artifact(artifact)
wandb.finish()
Que faire ensuite
Une fois que vous avez configuré vos poids & biais pour un suivi et un enregistrement fluides, je recommande d’ajouter wandb Sweeps pour automatiser le réglage des hyperparamètres. C’est bien mieux que de relancer manuellement les scripts pour chaque combinaison de paramètres et cela vous permet de vous concentrer sur les résultats au lieu d’expériences compliquées.
FAQ
Q : Puis-je utiliser weights & biases avec d’autres frameworks que PyTorch ?
R : Absolument. Wandb prend en charge TensorFlow, Keras, Hugging Face Transformers, sklearn, etc. Il s’intègre essentiellement dans votre boucle d’entraînement et enregistre les données. Vous devez simplement insérer des appels similaires à wandb.init() et wandb.log() aux bons endroits.
Q : Comment garder des informations d’identification sensibles en sécurité lors de l’utilisation de wandb dans des pipelines CI ?
R : Stockez votre clé API Wandb dans le système de gestion des secrets de votre fournisseur CI (par ex. : GitHub Secrets, variables GitLab CI). Ne jamais coder en dur les clés dans le code source. Ensuite, utilisez des variables d’environnement pour fournir les clés pendant l’exécution de CI, comme echo $WANDB_API_KEY | wandb login.
Q : Est-il possible de faire du logging avec wandb hors ligne et de synchroniser plus tard ?
R : Oui. Vous pouvez initialiser wandb avec wandb.init(mode="offline"), ce qui met en cache les journaux localement. Plus tard, exécutez wandb sync pour télécharger les données des exécutions passées lorsqu’un accès réseau est rétabli. C’est utile pour les environnements isolés.
Données de projet et d’exécution Wandb en un coup d’œil
Pour comprendre pourquoi la configuration de suivi de weights & biases surpasse la journalisation traditionnelle dans des feuilles de calcul, voici un rapide tableau comparant le suivi manuel typique et la surveillance wandb à travers des métriques clés :
| Aspect | Journalisation manuelle (Excel/CSV) | Surveillance des poids & biais |
|---|---|---|
| Visibilité en temps réel | Non (doit attendre d’ouvrir des fichiers) | Oui (tableaux de bord en direct mis à jour automatiquement) |
| Suivi des hyperparamètres | Souvent oublié ou incohérent | Automatisé ; toujours lié aux exécutions |
| Versionnage des artefacts du modèle | Sauvegardes manuelles de fichiers, pas de métadonnées | Contrôle de version des artefacts intégré |
| Collaboration | Fichiers d’e-mail ou partage de dossiers | Les équipes partagent des projets en direct avec un accès basé sur les rôles |
| Intégration avec CI/CD | Étapes manuelles | Automatisé via des scripts et des API |
| Limites de stockage | Capacité de disque local | Quotas cloud et options d’archivage |
Recommandations personnalisées pour différents profils de développeurs
Si vous êtes un amateur travaillant seul sur de petits modèles sur votre ordinateur portable, commencez par configurer wandb localement avec le mode hors ligne activé pour ne pas avoir à vous soucier des problèmes de réseau. L’interface et la journalisation donneront à vos expériences un sens de l’organisation que les feuilles de calcul ne peuvent égaler.
Si vous êtes un data scientist jonglant avec plusieurs modèles et collaborateurs, investissez du temps à intégrer les exécutions wandb avec les dépôts Git et l’infrastructure cloud de votre équipe. Automatisez votre journalisation et vos artefacts – faites-moi confiance, personne ne veut demander une autre exportation CSV.
Pour les ingénieurs ML construisant des pipelines de production, intégrez les sweeps wandb et l’automatisation CI/CD dès le début de votre processus. Vous voudrez un état d’expérience cohérent, des options de restauration et une surveillance intégrée dans les cycles de livraison pour éviter des débogages poussés des semaines plus tard.
Données à jour au 21 mars 2026. Sources : Site officiel de Weights & Biases, Documentation de Weights & Biases
Articles connexes
- Sécurité des réseaux de bots IA
- Gouvernance de la sécurité des bots IA
- Grammarly est-il IA ? Comment l’outil de rédaction utilise l’intelligence artificielle
🕒 Published: