Trainer de Hugging Face à W&B. Vos run d’entraînement consigneront alors automatiquement les métriques, les points de contrôle du modèle et les sorties d’évaluation dans un tableau de bord centralisé. À la fin, vous serez en mesure de comparer les run, d’enregistrer et de recharger des points de contrôle du modèle depuis W&B Artifacts, et de personnaliser la journalisation pour vos propres flux de travail. Ce guide suppose que vous êtes déjà familiarisé avec l’entraînement de modèles à l’aide du Trainer de Hugging Face Transformers.
Démarrage rapide

Si vous préférez passer directement à du code prêt à l’emploi, consultez ce Google Colab.
Premiers pas : suivre les expériences
Trainer afin que votre premier run d’entraînement s’affiche dans le tableau de bord W&B.
Inscrivez-vous et créez une clé API
Pour une méthode plus directe, accédez aux Paramètres utilisateur et créez une clé API. Copiez immédiatement la clé API et conservez-la dans un endroit sûr, par exemple dans un gestionnaire de mots de passe.
- Cliquez sur l’icône de votre profil dans le coin supérieur droit.
- Sélectionnez Paramètres utilisateur, puis faites défiler jusqu’à la section Clés API.
Installez la bibliothèque wandb et connectez-vous
wandb localement et vous connecter :
- Ligne de commande
- Python
- Python notebook
-
Définissez la variable d’environnement
WANDB_API_KEYsur votre clé API. Remplacez les valeurs entre<>par les vôtres : -
Installez la bibliothèque
wandbet connectez-vous.
Nommez le projet
WANDB_PROJECT sur le nom de votre projet. Le WandbCallback récupère cette variable d’environnement de nom de projet et l’utilise lors de la configuration de votre run.
- Ligne de commande
- Python
- Python notebook
Assurez-vous de définir le nom du projet avant d’initialiser le
Trainer.huggingface par défaut.
Enregistrez vos runs d’entraînement dans W&B
Trainer, dans votre code ou en ligne de commande, définissez report_to sur "wandb" afin d’activer la journalisation avec W&B. Sans ce paramètre, le Trainer n’envoie aucune donnée à W&B.
L’argument logging_steps dans TrainingArguments contrôle la fréquence à laquelle les métriques d’entraînement sont envoyées à W&B pendant l’entraînement. Vous pouvez aussi donner un nom au run d’entraînement dans W&B à l’aide de l’argument run_name.
C’est tout. Désormais, vos modèles journalisent les pertes, les métriques d’évaluation, l’architecture du modèle et les gradients dans W&B pendant leur entraînement.
- Ligne de commande
- Python
Vous utilisez TensorFlow ? Remplacez le
Trainer de PyTorch par le TFTrainer de TensorFlow.Activez l’enregistrement des points de contrôle du modèle
WANDB_LOG_MODEL sur l’une des valeurs suivantes :
checkpoint: Téléverse un point de contrôle tous lesargs.save_stepsà partir deTrainingArguments.end: Téléverse le modèle à la fin de l’entraînement, siload_best_model_at_endest également défini.false: Ne téléverse pas le modèle.
- Ligne de commande
- Python
- Python notebook
Trainer Transformers que vous initialisez à partir de maintenant téléversent des modèles dans votre projet W&B. Les points de contrôle du modèle que vous journalisez sont visibles dans l’interface Artifacts et incluent la traçabilité complète du modèle. Voir un exemple de point de contrôle du modèle dans l’interface Artifacts.
Par défaut, votre modèle est enregistré dans W&B Artifacts sous la forme
model-{run_id} lorsque WANDB_LOG_MODEL est défini sur end, ou checkpoint-{run_id} lorsque WANDB_LOG_MODEL est défini sur checkpoint.
Cependant, si vous transmettez un run_name dans vos TrainingArguments, le modèle est enregistré sous la forme model-{run_name} ou checkpoint-{run_name}.W&B registre
Visualiser les sorties d’évaluation pendant l’entraînement

Terminez votre run W&B (notebook uniquement)
run.finish() pour indiquer que l’entraînement est terminé.
Visualisez vos résultats
Trainer journalise des métriques dans un projet spécifié, enregistre éventuellement des points de contrôle du modèle dans Artifacts et affiche les sorties d’évaluation dans le tableau de bord W&B.
Fonctionnalités avancées et FAQ
Enregistrer le meilleur modèle
TrainingArguments avec load_best_model_at_end=True à votre Trainer, W&B enregistre le point de contrôle du modèle le plus performant dans Artifacts.
Si vous enregistrez les points de contrôle de votre modèle dans Artifacts, vous pouvez les promouvoir vers le registre. Dans le registre, vous pouvez :
- Organiser les versions de votre meilleur modèle par tâche de ML.
- Centraliser les modèles et les partager avec votre équipe.
- Préparer les modèles pour la production ou les marquer pour une évaluation plus approfondie.
- Déclencher des processus CI/CD en aval.
Charger un modèle enregistré
WANDB_LOG_MODEL, vous pouvez télécharger les poids de votre modèle pour poursuivre l’entraînement ou effectuer de l’inférence. Rechargez-les dans la même architecture Hugging Face que celle utilisée précédemment.
Reprendre l’entraînement à partir d’un point de contrôle
WANDB_LOG_MODEL='checkpoint', vous pouvez reprendre l’entraînement en utilisant model_dir comme valeur de l’argument model_name_or_path dans vos TrainingArguments et en passant resume_from_checkpoint=True à Trainer.
Journaliser et afficher des échantillons d’évaluation pendant l’entraînement
WandbCallback de la bibliothèque Transformers gère la journalisation dans W&B via le Trainer de Transformers. Vous pouvez personnaliser ce callback pour journaliser les prédictions du modèle, des matrices de confusion ou d’autres données personnalisées. Pour ce faire, créez une sous-classe de WandbCallback et ajoutez des fonctionnalités qui utilisent des méthodes supplémentaires de la classe Trainer.
Vous trouverez ci-dessous le schéma général pour ajouter ce nouveau callback au Hugging Face Trainer, suivi d’un exemple de code complet pour journaliser les sorties d’évaluation dans un tableau W&B :
Afficher des échantillons d’évaluation pendant l’entraînement
WandbCallback pour exécuter les prédictions du modèle et journaliser des échantillons d’évaluation dans un tableau W&B pendant l’entraînement. Cela s’exécute tous les eval_steps en utilisant la méthode on_evaluate du callback du Trainer.
La fonction decode_predictions décode les prédictions et les labels à partir de la sortie du modèle à l’aide du tokenizer.
Ensuite, le code crée un dataframe pandas à partir des prédictions et des labels, puis ajoute une colonne epoch au dataframe.
Enfin, le code crée un wandb.Table à partir du dataframe et le journalise dans W&B. Vous pouvez contrôler la fréquence de la journalisation en journalisant les prédictions toutes les freq époques.
Contrairement au
WandbCallback standard, ce callback personnalisé doit être ajouté au trainer après l’instanciation du Trainer, et non pendant l’initialisation du Trainer. Cela s’explique par le fait que l’instance Trainer est transmise au callback lors de l’initialisation.Paramètres W&B supplémentaires
Trainer en définissant des variables d’environnement. Pour obtenir une liste complète des variables d’environnement W&B, voir la référence des variables d’environnement.
- Ligne de commande
- Notebook
Personnaliser wandb.init()
WandbCallback utilisé par Trainer appelle wandb.init() en interne lors de l’initialisation de Trainer. Vous pouvez aussi configurer vos runs manuellement en appelant wandb.init() avant l’initialisation de Trainer. Cela vous donne un contrôle total sur la configuration de votre run W&B.
Voici un exemple de ce que vous pouvez passer à init. Pour plus de détails sur wandb.init(), voir la référence wandb.init().