Trois unités d'entraînement
Les données d'entraînement ne sont fournies au modèle ni un exemple à la fois, ni toutes en même temps. Elles sont découpées en lots. Le modèle traite un lot, calcule la moyenne de l'erreur sur l'ensemble de ses tokens cibles et met à jour ses poids une seule fois. Cette mise à jour unique constitue une étape, également appelée itération. Lorsque chaque exemple d'entraînement a été utilisé une fois, une époque est terminée, et les données sont généralement mélangées avant la suivante, de sorte que les lots soient composés différemment à chaque fois.
| Terme | Ce qu'il mesure | Valeur typique pour l'ajustement fin |
|---|---|---|
| Lot | Les exemples traités ensemble avant une mise à jour | D'une poignée à quelques dizaines d'exemples ; souvent Auto |
| Étape | Une mise à jour des poids | Des dizaines à des milliers par exécution |
| Époque | Un passage complet sur tous les exemples d'entraînement | 1 à 3 pour l'ajustement fin supervisé |
L'arithmétique
effective batch = per-device batch × gradient accumulation × number of GPUs
steps per epoch = ceil(training examples ÷ effective batch)
total steps = steps per epoch × epochs
tokens processed = tokens in the training file × epochs- Étapes par époque : 800 ÷ 8 = 100 étapes.
- Nombre total d'étapes : 100 × 3 époques = 300 étapes. Les poids du modèle sont modifiés 300 fois.
- Nombre de fois où chaque exemple est vu : 3, une fois par époque, à chaque fois dans un lot différent car les données sont remélangées.
- Une phase de préchauffage de 5 % : 0,05 × 300 = 15 étapes de montée en puissance avant d'atteindre le taux d'apprentissage complet.
- Les mêmes données avec une taille de lot de 32 : 800 ÷ 32 = 25 étapes par époque, 75 au total. Des mises à jour moins nombreuses et plus lisses, généralement associées à un taux d'apprentissage légèrement plus élevé.
- Tokens traités : si le fichier d'entraînement contient 400 000 tokens, trois époques en traitent 1 200 000, ce qui correspond à la facturation au token.
Lorsque les nombres ne se divisent pas de manière exacte, le dernier lot d'une époque est plus petit : 810 exemples par lots de 8 donnent 101 lots complets et un lot de 2. Certaines configurations d'entraînement conservent ce lot partiel, d'autres l'ignorent. Dans tous les cas, l'effet sur une exécution est négligeable.
L'importance de la taille du lot
Le gradient de chaque étape est une estimation de la véritable direction descendante, calculée à partir des exemples de ce lot. Un petit lot donne une estimation bruitée : les exemples individuels tirent les poids dans différentes directions, mais il y a de nombreuses mises à jour par époque. Un grand lot fait la moyenne d'un plus grand nombre d'exemples, de sorte que chaque étape pointe plus fiablement vers le bas, mais il y a moins d'étapes, et chacune nécessite plus de mémoire GPU. La recherche sur l'entraînement avec de grands lots montre des rendements décroissants : au-delà d'un certain point qui dépend de la tâche, doubler le lot ne réduit plus de moitié le nombre d'étapes nécessaires, et la puissance de calcul supplémentaire est en grande partie gaspillée.
L'accumulation de gradient sépare le lot calculé par le GPU du lot sur lequel l'optimiseur effectue la mise à jour. Le GPU traite, par exemple, 4 exemples à la fois et additionne les gradients de 8 de ces micro-lots avant d'effectuer une mise à jour : un lot effectif de 32 pour le coût en mémoire de 4. Avec plusieurs GPU, chacun traite son propre micro-lot, de sorte que le lot effectif est également multiplié par le nombre de GPU.
per-device batch 4 × accumulation 8 × 1 GPU = effective batch 32
memory: as for 4 examples updates: one per 32 examplesL'importance du nombre d'époques
Une époque est l'unité naturelle pour mesurer ce que le modèle a vu. Une seule époque sur un petit jeu de données est souvent insuffisante pour modifier le comportement de manière notable ; de nombreuses époques sur ce même petit ensemble permettent au modèle de mémoriser des réponses individuelles. L'ajustement fin supervisé sur quelques centaines à quelques milliers d'exemples utilise généralement 1 à 3 époques, et l'ajustement des préférences 1 à 2. Les petits jeux de données peuvent tolérer quelques époques supplémentaires ; les très grands n'en nécessitent souvent qu'une seule.
Puisque les époques comptent les répétitions et les étapes comptent les mises à jour, gardez un œil sur les deux. Trois époques sur 100 exemples avec une taille de lot de 8 ne représentent que 39 étapes, ce qui peut être insuffisant pour qu'une planification du taux d'apprentissage fasse son travail. Une époque sur 50 000 exemples représente 6 250 étapes : de nombreuses mises à jour, et aucune répétition.
Erreurs courantes
- Augmenter le nombre d'époques pour compenser un manque de données. Plusieurs passages sur 40 exemples enseignent ces 40 réponses, et non la tâche elle-même.
- Modifier la taille du lot sans revoir le taux d'apprentissage. Des étapes moins nombreuses et plus grandes nécessitent généralement un taux plus élevé, et inversement.
- Copier un préchauffage défini en étapes à partir d'une autre exécution. Si la nouvelle exécution comporte beaucoup moins d'étapes, un préchauffage fixe peut absorber la majeure partie de l'entraînement.
- Compter les messages au lieu des enregistrements d'entraînement. Selon le format du fournisseur, une conversation avec plusieurs cibles peut devenir plusieurs enregistrements.
Références et lectures complémentaires
Les sources externes s'ouvrent dans un nouvel onglet.
- 01Linear regression: HyperparametersGoogle Machine Learning Crash Course · developers.google.comDes définitions claires de la taille de lot et des époques, avec le détail de l'arithmétique des étapes par époque.
- 02TrainerHugging Face Transformers docs · huggingface.coRéférence pour la taille de lot par appareil, l'accumulation de gradient, les époques et la phase de chauffe en tant que véritables arguments d'entraînement.
- 03An Empirical Model of Large-Batch TrainingMcCandlish et al., 2018 · arXiv · arxiv.orgPourquoi l'augmentation de la taille des lots est bénéfique jusqu'à un certain point, puis cesse de porter ses fruits.
- 04Stochastic gradient descentWikipedia · en.wikipedia.org