Passer au contenu principal
torchtune est une bibliothèque basée sur PyTorch conçue pour simplifier le développement, le fine-tuning et l’expérimentation pour les LLM. De plus, torchtune intègre une prise en charge native du logging avec W&B, ce qui améliore le suivi et la visualisation des processus d’entraînement. Ce guide vous montre comment activer la journalisation W&B dans les recettes torchtune, configurer le logger de métriques WandBLogger, comprendre quelles métriques torchtune suit par défaut et enregistrer les points de contrôle du modèle dans W&B Artifacts.
tableau de bord d’entraînement de torchtune
Consultez l’article de blog de W&B sur le Fine-tuning de Mistral 7B avec torchtune.

Activez la journalisation W&B

Vous pouvez activer la journalisation W&B de deux façons : redéfinir les arguments au lancement depuis la ligne de commande, ou modifier le fichier de configuration de la recette. Choisissez l’option qui convient le mieux à votre flux de travail.
Redéfinissez les arguments de ligne de commande au lancement :

Utiliser le logger de métriques W&B

Activez la journalisation W&B dans le fichier de configuration de la recette en modifiant la section metric_logger. Remplacez _component_ par la classe torchtune.utils.metric_logging.WandBLogger. Vous pouvez également fournir un nom de project ainsi que log_every_n_steps pour personnaliser le comportement de journalisation. Vous pouvez aussi transmettre n’importe quels autres kwargs, comme vous le feriez avec la méthode wandb.init(). Par exemple, si vous travaillez au sein d’une équipe, vous pouvez passer l’argument entity à la classe WandBLogger pour indiquer le nom de l’équipe.

Données enregistrées

Après avoir activé la journalisation W&B, vous pouvez explorer le tableau de bord W&B pour consulter les métriques enregistrées. Par défaut, W&B enregistre tous les hyperparamètres du fichier de configuration ainsi que les paramètres remplacés au lancement, afin de conserver un enregistrement de la configuration de chaque run à côté de ses métriques. W&B capture la configuration résolue dans l’onglet Aperçu. W&B stocke également la configuration au format YAML dans l’onglet Files.
Configuration TorchTune

Métriques enregistrées

Chaque recette a sa propre boucle d’entraînement. Consultez chaque recette pour voir les métriques enregistrées, qui incluent par défaut les suivantes :
global_step n’est pas identique au nombre d’étapes d’entraînement. Il correspond à l’étape actuelle de la boucle d’entraînement et tient compte de l’accumulation des gradients. Chaque fois qu’une étape de l’optimiseur s’exécute, global_step est incrémenté de 1. Par exemple, si le chargeur de données comporte 10 lots, que le nombre d’étapes d’accumulation des gradients est de 2 et que vous exécutez 3 époques, l’optimiseur effectue 15 étapes, donc global_step va de 1 à 15.
La conception de torchtune vous permet d’ajouter des métriques personnalisées ou de modifier celles qui existent déjà. Modifiez le fichier de recette correspondant. Par exemple, vous pouvez enregistrer current_epoch en pourcentage du nombre total d’époques comme ceci :
L’ensemble des métriques enregistrées peut varier d’une version de torchtune à l’autre. Pour ajouter une métrique personnalisée, modifiez la recette et appelez la fonction self._metric_logger.* correspondante.

Enregistrer et charger des points de contrôle du modèle

Enregistrez les points de contrôle du modèle dans W&B Artifacts pour versionner les poids du modèle en même temps que les métriques et la configuration de chaque run, afin de pouvoir reproduire les résultats et comparer les versions du modèle ultérieurement. La bibliothèque torchtune prend en charge plusieurs formats de point de contrôle du modèle. Selon l’origine du modèle que vous utilisez, vous devez utiliser la classe checkpointer appropriée. Pour enregistrer les points de contrôle du modèle du modèle dans W&B Artifacts, l’approche recommandée consiste à redéfinir les fonctions save_checkpoint de la recette correspondante. L’exemple suivant montre comment redéfinir la fonction save_checkpoint pour enregistrer les points de contrôle du modèle du modèle dans W&B Artifacts.