Il existe deux types de charges de travail d'entraînement :
- subordonné au calcul
- non lié au calcul
L'entraînement lié au calcul est limité par le temps que vous pouvez consacrer à l'entraînement, et non par la quantité de données d'entraînement dont vous disposez ou par un autre facteur. En d'autres termes, la durée d'entraînement "optimale" est toujours "aussi longue que vous pouvez vous le permettre". Si vous parvenez à vous entraîner plus longtemps ou plus efficacement, la perte d'entraînement devrait diminuer. (Avec un réglage approprié, la perte de validation devrait également diminuer.)
Accélérer l'entraînement lié au calcul équivaut à améliorer l'entraînement. Cela dit, ce n'est pas parce qu'une charge de travail est limitée par le calcul que l'entraînement plus long ou plus rapide est le seul moyen d'améliorer les résultats.
Lorsque l'entraînement n'est pas limité par le calcul, vous pouvez vous permettre de vous entraîner aussi longtemps que vous le souhaitez. Toutefois, un entraînement plus long d'un modèle peut ne pas être très utile, voire entraîner un surapprentissage. Lorsque l'entraînement n'est pas limité par le calcul :
- Vous pouvez entraîner le modèle jusqu'à une perte d'entraînement très faible, au point où un entraînement supplémentaire pourrait légèrement réduire la perte d'entraînement, mais ne réduirait pas de manière significative la perte de validation.
- Vous pouvez ajuster plus facilement les plannings de diminution du taux d'apprentissage, car ils interagissent particulièrement avec le budget d'entraînement. En revanche, pour obtenir une faible perte d'entraînement lors d'un entraînement limité par le calcul, il peut être nécessaire d'utiliser un programme de diminution du taux d'apprentissage parfaitement adapté.
Qu'une charge de travail donnée soit liée au calcul ou non, les méthodes qui augmentent la variance des gradients (entre les lots) ralentissent généralement la progression de l'entraînement et peuvent donc augmenter le nombre d'étapes d'entraînement nécessaires pour atteindre une perte de validation particulière. Une variance de gradient élevée peut être due à l'un des éléments suivants :
- Utilisez une taille de lot plus petite.
- Ajout de l'augmentation des données.
- Ajouter certains types de régularisation (par exemple, la régularisation par abandon).
Décider de la durée de l'entraînement lorsque celui-ci n'est pas lié au calcul
Votre objectif : entraîner le modèle suffisamment longtemps pour qu'il atteigne le meilleur résultat possible sans gaspiller d'étapes d'entraînement.
Votre objectif principal est de vous assurer que vous entraînez le modèle suffisamment longtemps pour qu'il atteigne le meilleur résultat possible sans gaspiller d'étapes d'entraînement inutiles. En cas de doute, privilégiez un entraînement plus long. Vos métriques d'évaluation (par exemple, la précision, le rappel, l'AUC ou le score F1) ne devraient jamais se dégrader lorsque vous entraînez votre modèle plus longtemps, à condition que vous utilisiez correctement la sélection rétrospective des points de contrôle et que vous les enregistriez assez fréquemment.
Ne modifiez jamais le nombre max_train_steps
dans une étude. Choisissez plutôt une valeur et utilisez-la pour tous les essais. À partir de ces essais, tracez l'étape d'entraînement que la sélection rétrospective de points de contrôle trouve afin d'affiner le choix de max_train_steps
.
Par exemple, si la meilleure étape se situe toujours au cours des 10 premiers pour cent de l'entraînement, le nombre maximal d'étapes est beaucoup trop élevé.
Si la meilleure étape se situe systématiquement dans les 25 % de l'entraînement, vous pouvez envisager d'entraîner le modèle plus longtemps et de réajuster le programme de diminution.
Le nombre idéal d'étapes d'entraînement peut changer lorsque l'architecture ou les données changent (par exemple, en ajoutant l'augmentation des données).
La section suivante explique comment choisir une valeur candidate initiale pour max_train_steps
en fonction du nombre d'étapes nécessaires pour "ajuster parfaitement" l'ensemble d'entraînement à l'aide d'un taux d'apprentissage constant.
Il est possible de diminuer max_train_steps
si le processus d'entraînement s'améliore d'une manière ou d'une autre, par exemple avec un optimiseur mieux réglé ou un programme de taux d'apprentissage mieux réglé.
Algorithme permettant de sélectionner un candidat initial pour max_train_steps à l'aide d'un balayage du taux d'apprentissage
Vous pouvez choisir un candidat initial pour max_train_steps
avec un algorithme de balayage du taux d'apprentissage. L'algorithme suivant suppose qu'il est possible non seulement d'ajuster "parfaitement" l'ensemble d'entraînement, mais aussi de le faire à l'aide d'un programme de taux d'apprentissage constant.
- S'il est possible d'ajuster parfaitement l'ensemble de données d'entraînement, il doit exister une configuration (avec une certaine valeur de
max_train_steps
) qui correspond parfaitement à l'ensemble de données d'entraînement. Recherchez une telle configuration et utilisez sa valeurmax_train_steps
comme point de départN
. - Exécutez un balayage du taux d'apprentissage constant (c'est-à-dire une recherche par grille du taux d'apprentissage) sans augmentation des données ni régularisation, où chaque essai s'entraîne pendant
N
étapes. Le nombre d'étapes nécessaires pour que l'essai le plus rapide de la plage de taux d'apprentissage atteigne des performances d'entraînement parfaites doit être votre estimation initiale pourmax_train_steps
.
REMARQUE : Des espaces de recherche incorrects peuvent entraîner une auto-tromperie.
Par exemple, si tous les taux d'apprentissage d'une étude sont trop faibles, vous pourriez conclure à tort qu'une très grande valeur de max_train_steps
est nécessaire.
Au minimum, vérifiez que le taux d'apprentissage optimal de l'étude ne se trouve pas à la limite de l'espace de recherche.
Décider de la durée de l'entraînement lorsque celui-ci est limité par la puissance de calcul
Dans certains cas, la perte d'entraînement continue de s'améliorer indéfiniment. Votre patience et vos ressources de calcul deviennent alors les facteurs limitants. Mais devez-vous vous entraîner aussi longtemps que vous le pouvez ? Pas forcément. Réfléchissez aux éléments suivants :
- Vous pourrez peut-être effectuer un réglage plus efficace en exécutant un plus grand nombre d'expériences plus courtes, en réservant les exécutions les plus longues de "longueur de production" pour les modèles que vous espérez lancer.
- À mesure que la durée d'entraînement des essais approche de votre limite de patience, les expériences d'optimisation deviennent plus pertinentes pour vos candidats potentiels au lancement, mais vous pouvez en effectuer moins.
- Vous pouvez probablement répondre à de nombreuses questions en vous entraînant pendant seulement 10 % de la durée de production. Toutefois, vos conclusions à cette limite de temps ne s'appliqueront peut-être pas aux tests à 20 % de la durée de production, et encore moins à 100 %.
Il est judicieux d'effectuer des réglages au cours de plusieurs cycles avec des limites de pas d'entraînement par essai de plus en plus élevées. Vous pouvez effectuer autant de tours que vous le souhaitez, mais généralement, un à trois tours sont les plus pratiques. En substance, essayez de comprendre le problème le mieux possible en effectuant des tests avec un délai d'exécution très rapide, en faisant un compromis entre les éléments suivants :
- Précision du réglage.
- Pertinence par rapport aux courses les plus longues et finales.
Une fois qu'une limite de temps par essai donnée a généré des insights utiles, augmentez le temps d'entraînement et continuez à ajuster, en vérifiant vos conclusions à partir des exécutions plus courtes si nécessaire. Pour commencer, nous vous recommandons deux séries d'optimisation :
- Premier cycle : exécutions de plus courte durée pour trouver de bons hyperparamètres de modèle et d'optimiseur.
- Deuxième série : très peu d'exécutions de longue durée sur des points d'hyperparamètres corrects pour obtenir le modèle final.
La principale question qui se pose entre le premier et le deuxième tour est la suivante :
Comment ajuster les plannings de diminution du taux d'apprentissage ?
Une erreur courante lors de l'ajustement des plannings de taux d'apprentissage entre les tours consiste à utiliser toutes les étapes d'entraînement supplémentaires avec un taux d'apprentissage trop faible.
Premier tour : de nombreuses courses d'entraînement courtes
Malheureusement, il n'est pas garanti que les bons hyperparamètres trouvés lors d'un entraînement court et incomplet restent de bons choix lorsque vous augmentez considérablement la durée de l'entraînement. Toutefois, pour certains hyperparamètres, les bons choix sont souvent suffisamment corrélés pour que le premier tour soit utile. Quelles valeurs d'hyperparamètres trouvées dans des exécutions plus courtes sont transférées avec succès vers des exécutions d'entraînement plus longues ? Nous ne le savons pas. Nous avons besoin de plus de recherches. Mais d'après ce que nous savons jusqu'à présent, voici nos hypothèses par ordre décroissant de probabilité de transfert :
- Très probablement transférable. L'instabilité de l'entraînement précoce peut être résolue lors de la première série d'ajustements en utilisant un nombre plus petit d'étapes d'entraînement.
Les hyperparamètres suivants sont les plus susceptibles d'être transférés :
- Durée de l'échauffement
- Initialisation
- Transfert probable. Une victoire spectaculaire dans l'architecture du modèle est généralement transférée, mais de nombreux contre-exemples sont probables.
- Transfert possible Les hyperparamètres suivants peuvent être transférés :
- L'algorithme d'optimisation et les hyperparamètres seraient transférés de manière "lâche".
- Augmentation des données
- Régularisation. S'il n'est pas possible d'ajuster parfaitement l'ensemble d'entraînement, le modèle peut se trouver dans un régime où la régularisation est peu susceptible d'être très utile.
- Transfert peu probable. Il est peu probable que le programme de taux d'apprentissage soit transféré parfaitement. Training Compute-Optimal Large Language Models suggère même des transferts de calendrier de diminution, mais nous ne pensons pas que cela soit vrai en général. Par exemple, si vous ajustez la diminution de la racine carrée sur un petit nombre d'étapes d'entraînement, puis que vous l'étendez à un grand nombre d'étapes, la majorité de l'entraînement se produit à des étapes trop petites. Vous pouvez probablement obtenir des résultats "suffisants" avec la plupart des planifications dans la limite du budget d'entraînement extrême, mais vous constaterez probablement des améliorations notables des performances si vous l'ajustez. Understanding Short-Horizon Bias in Stochastic Meta-Optimization décrit les dangers d'essayer de choisir des taux d'apprentissage de manière myope.
Deuxième série : moins de courses, mais plus longues
Exécutez la meilleure configuration d'hyperparamètres du premier tour.
Spéculation : 🤖 Utilisez les étapes supplémentaires pour prolonger la période d'entraînement à un taux d'apprentissage élevé. Par exemple, si vous utilisez un calendrier linéaire, conservez la durée de la diminution fixe à partir du premier tour et prolongez la période de lr
constante au début. Pour la diminution du cosinus, conservez la base lr
du premier tour et étendez max_train_steps
comme décrit dans Training Compute-Optimal Large Language Models.
Des sessions d'entraînement supplémentaires peuvent être utiles pour les équipes qui présentent toutes les caractéristiques suivantes :
- Modélisation très mature
- Régler les pipelines
- Exécutions d'entraînement de production très longues et coûteuses
Toutefois, les entraînements supplémentaires sont souvent improductifs.
Nous avons déjà expliqué comment passer du premier au deuxième tour. Si le temps d'analyse ne vous importe pas et que votre principale préoccupation est d'utiliser efficacement les ressources de calcul, nous vous recommandons d'augmenter de manière exponentielle la durée des entraînements (et donc le temps de bout en bout pour terminer une étude) au cours de plusieurs cycles d'optimisation :
- À chaque tour, assurez-vous systématiquement que vos choix continuent de donner de bons résultats.
- Soumettez de nouvelles idées à un pipeline qui réduit progressivement les risques grâce à des tests de plus en plus longs, de l'étape i à l'étape i+1.