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 grands modèles de langage (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.
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.

La journalisation W&B à portée de main

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.

Qu’est-ce qui est enregistré ?

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. 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 ses 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 dans la boucle d’entraînement. Il tient compte de l’accumulation des gradients : en pratique, chaque fois qu’un pas de l’optimiseur est effectué, global_step est incrémenté de 1. Par exemple, si le dataloader contient 10 lots, que le nombre d’étapes d’accumulation des gradients est de 2 et que l’entraînement s’exécute pendant 3 époques, l’optimiseur effectuera 15 pas ; dans ce cas, global_step ira de 1 à 15.
La conception épurée de torchtune permet d’ajouter facilement des métriques personnalisées ou de modifier les métriques existantes. Il suffit de modifier le fichier de recette correspondant. Par exemple, vous pouvez enregistrer current_epoch comme pourcentage du nombre total d’époques, comme suit :
Cette bibliothèque évolue rapidement, et les métriques actuelles peuvent changer. Si vous souhaitez ajouter une métrique personnalisée, vous devez modifier la recette et appeler la fonction correspondante de self._metric_logger.*.

Enregistrer et charger des points de contrôle

La bibliothèque torchtune prend en charge différents formats de point de contrôle. Selon l’origine du modèle que vous utilisez, vous devez utiliser la classe de checkpointer appropriée. Si vous souhaitez enregistrer les points de contrôle du modèle dans les W&B Artifacts, la solution la plus simple consiste à surcharger les fonctions save_checkpoint dans la recette correspondante. Voici un exemple montrant comment surcharger la fonction save_checkpoint pour enregistrer les points de contrôle du modèle dans W&B Artifacts.