Trainer de Hugging Face à W&B. Vos runs d’entraînement consignent ensuite automatiquement les métriques, les points de contrôle du modèle et les sorties d’évaluation dans un tableau de bord centralisé. À l’issue de ce guide, vous saurez comparer des runs, enregistrer et recharger des points de contrôle de modèle depuis W&B Artifacts, et personnaliser la journalisation selon vos propres flux de travail. Ce guide suppose que vous savez déjà entraîner des modèles avec le Trainer de Hugging Face Transformers.
Démarrage rapide

Si vous préférez passer directement à un exemple de code fonctionnel, consultez ce notebook Google Colab.
Premiers pas : suivre les expériences
Cette section explique comment vous authentifier auprès de W&B, installer la bibliothèque cliente, nommer votre projet et activer la journalisation dans votreTrainer afin que votre premier run d’entraînement apparaisse dans le tableau de bord W&B.
S’inscrire et créer une clé API
Une clé API authentifie votre machine auprès de W&B. Vous pouvez générer une clé API depuis votre profil utilisateur.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.
- Cliquez sur l’icône de votre profil utilisateur dans le coin supérieur droit.
- Sélectionnez Paramètres utilisateur, puis faites défiler la page jusqu’à la section API Keys.
Installer la bibliothèque wandb et se connecter
Pour installer la bibliothèque wandb en local et vous connecter :
- Ligne de commande
- Python
- Notebook Python
-
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.
Nommer le projet
Un projet W&B stocke l’ensemble des graphiques, des données et des modèles journalisés par des runs associés. Nommer votre projet vous permet d’organiser votre travail et de regrouper au même endroit toutes les informations relatives à un même projet. Pour ajouter un run à un projet, définissez la variable d’environnementWANDB_PROJECT sur le nom de votre projet. Le WandbCallback récupère le nom du projet depuis cette variable d’environnement et l’utilise lors de la configuration de votre run.
- Ligne de commande
- Python
- Notebook Python
Veillez à définir le nom du projet avant d’initialiser le
Trainer.huggingface.
Journaliser vos runs d’entraînement dans W&B
Lorsque vous définissez les arguments d’entraînement de votreTrainer, que ce soit dans votre code ou depuis la ligne de commande, définissez report_to sur "wandb" pour activer la journalisation avec W&B. Sans ce paramètre, le Trainer n’envoie aucune donnée à W&B.
L’argument logging_steps de TrainingArguments détermine la fréquence à laquelle les métriques d’entraînement sont téléversées vers W&B pendant l’entraînement. Vous pouvez également nommer le run d’entraînement dans W&B à l’aide de l’argument run_name.
Et voilà. Vos modèles journalisent désormais les pertes, les métriques d’évaluation, la topologie 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.Activer l’enregistrement des points de contrôle du modèle
En plus de journaliser des métriques, vous pouvez enregistrer les poids du modèle entraîné dans W&B afin de les versionner, de les télécharger et de les partager au sein de votre équipe. Avec Artifacts, vous pouvez stocker gratuitement jusqu’à 100 Go de modèles et de jeux de données, puis utiliser le registre W&B. Le registre vous permet d’enregistrer des modèles pour les explorer et les évaluer, les préparer au staging ou les déployer dans votre environnement de production. Pour journaliser les points de contrôle de votre modèle Hugging Face dans Artifacts, définissez la variable d’environnementWANDB_LOG_MODEL sur l’une des valeurs suivantes :
checkpoint: téléverse un point de contrôle toutes lesargs.save_stepsétapes, telles que définies dans lesTrainingArguments.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
- Notebook Python
Trainer Transformers que vous initialisez téléverse les modèles dans votre projet W&B. Les points de contrôle de modèle que vous journalisez sont consultables dans l’interface Artifacts et incluent la traçabilité complète du modèle. Voir un exemple de point de contrôle de modèle dans l’interface Artifacts.
Par défaut, votre modèle est enregistré dans W&B Artifacts sous le nom
model-{run_id} lorsque WANDB_LOG_MODEL est défini sur end, ou sous le nom checkpoint-{run_id} lorsque WANDB_LOG_MODEL est défini sur checkpoint.
Toutefois, si vous transmettez un run_name dans vos TrainingArguments, le modèle est enregistré sous le nom model-{run_name} ou checkpoint-{run_name}.Registre
Après avoir journalisé vos points de contrôle dans Artifacts, vous pouvez enregistrer les points de contrôle de vos meilleurs modèles et les centraliser au sein de votre équipe grâce au registre. Le registre vous permet d’organiser vos meilleurs modèles par tâche, de gérer le cycle de vie des modèles, de suivre et d’auditer l’ensemble du cycle de vie ML, et d’automatiser les actions en aval. Pour lier un artifact de modèle, reportez-vous au registre.Visualiser les sorties d’évaluation pendant l’entraînement
Visualiser les sorties de votre modèle pendant l’entraînement ou l’évaluation est souvent indispensable pour comprendre comment il apprend. En examinant des prédictions concrètes parallèlement aux courbes de perte, vous pouvez repérer des problèmes de qualité que les métriques agrégées risquent de masquer. Grâce au système de callbacks du Trainer de Transformers, vous pouvez journaliser des données plus utiles dans des tableaux W&B, par exemple les textes générés par vos modèles ou d’autres prédictions. Pour un guide complet expliquant comment journaliser les sorties d’évaluation pendant l’entraînement dans un tableau W&B comme celui ci-dessous, consultez Journaliser et afficher des échantillons d’évaluation pendant l’entraînement.
Terminer votre run W&B (notebook uniquement)
Si votre entraînement est contenu dans un script Python, le run W&B se termine à la fin de l’exécution du script. Si vous utilisez un notebook Jupyter ou Google Colab, appelezrun.finish() pour signaler la fin de l’entraînement.
Visualiser vos résultats
Après avoir journalisé vos résultats d’entraînement, vous pouvez les explorer dans le tableau de bord W&B. Vous pouvez comparer des runs, examiner vos constats en détail et explorer vos données à l’aide de visualisations interactives. À ce stade, votre intégration est fonctionnelle : votreTrainer journalise les métriques dans un projet nommé, enregistre éventuellement des points de contrôle dans Artifacts et affiche les sorties d’évaluation dans le tableau de bord W&B.
Fonctionnalités avancées et FAQ
Les sections suivantes présentent des tâches complémentaires courantes, comme l’enregistrement du meilleur modèle, la reprise de l’entraînement à partir d’un point de contrôle, la personnalisation des callbacks de journalisation et la configuration du comportement de W&B à l’aide de variables d’environnement.Enregistrer le meilleur modèle
Si vous transmettezTrainingArguments avec load_best_model_at_end=True à votre Trainer, W&B enregistre le point de contrôle du modèle le plus performant en tant qu’artifact.
Si vous enregistrez les points de contrôle de votre modèle en tant qu’artifacts, vous pouvez les promouvoir dans le registre. Dans le registre, vous pouvez :
- Organiser les versions de vos meilleurs modèles par tâche de ML.
- Centraliser les modèles et les partager avec votre équipe.
- Préparer des modèles pour la production ou les marquer en vue d’une évaluation ultérieure.
- Déclencher des processus CI/CD en aval.
Charger un modèle enregistré
Si vous avez enregistré votre modèle dans W&B Artifacts avecWANDB_LOG_MODEL, vous pouvez télécharger ses poids pour poursuivre l’entraînement ou effectuer de l’inférence. Rechargez-les ensuite 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
Si vous avez définiWANDB_LOG_MODEL='checkpoint', vous pouvez reprendre l’entraînement en indiquant model_dir comme 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
LeWandbCallback de la bibliothèque Transformers gère la journalisation vers 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-y des fonctionnalités qui s’appuient sur d’autres méthodes de la classe Trainer.
Voici le schéma général pour ajouter ce nouveau callback au Trainer de Hugging Face, suivi d’un exemple de code complet qui journalise les sorties d’évaluation dans un tableau W&B :
Afficher des échantillons d’évaluation pendant l’entraînement
Cette section montre comment personnaliser leWandbCallback pour exécuter des prédictions du modèle et journaliser des échantillons d’évaluation dans un tableau W&B pendant l’entraînement. Ce traitement s’exécute toutes les eval_steps étapes via la méthode on_evaluate du callback du Trainer.
La fonction decode_predictions décode les prédictions et les étiquettes issues de la sortie du modèle à l’aide du tokenizer.
Le code crée ensuite un DataFrame pandas à partir des prédictions et des étiquettes, puis y ajoute une colonne epoch.
Enfin, le code crée une wandb.Table à partir du DataFrame et la journalise dans W&B. Pour contrôler la fréquence de journalisation, journalisez 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 son initialisation. En effet, l’instance du Trainer est transmise au callback lors de l’initialisation de ce dernier.Paramètres W&B supplémentaires
Vous pouvez configurer plus finement ce qui est journalisé avecTrainer en définissant des variables d’environnement. Pour obtenir la liste complète des variables d’environnement W&B, consultez la référence des variables d’environnement.
- Ligne de commande
- Notebook
Personnaliser wandb.init()
Le WandbCallback utilisé par Trainer appelle wandb.init() en arrière-plan lors de l’initialisation de Trainer. Vous pouvez aussi configurer vos runs manuellement en appelant wandb.init() avant l’initialisation de Trainer. Vous gardez ainsi un contrôle complet 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(), consultez la référence de wandb.init().