Paramètres et hyperparamètres
Les paramètres d'un modèle, ses poids, sont appris : l'entraînement les définit. Les hyperparamètres sont définis par vos soins avant le début de l'entraînement et contrôlent la façon dont cet apprentissage se déroule : combien de fois les données sont vues, la taille de chaque mise à jour, le nombre d'exemples inclus dans chaque mise à jour, la taille d'un adaptateur. L'entraînement ne peut pas trouver de bons hyperparamètres par lui-même. Vous les trouvez en exécutant, en mesurant et en ajustant, c'est pourquoi une valeur par défaut sensée et une façon claire de lire les résultats importent plus qu'une première estimation parfaite.
Les paramètres
Le nombre de passages complets que l'entraînement effectue sur vos données. Trop peu, et le modèle change à peine ; trop, et il commence à reproduire vos exemples mot pour mot (surapprentissage), ce qui se traduit par une augmentation de la perte de validation tandis que la perte d'entraînement continue de diminuer. Les petits jeux de données peuvent supporter quelques époques supplémentaires ; les grands n'en nécessitent souvent qu'une seule. Le réglage des préférences nécessite généralement moins d'époques que l'entraînement supervisé. Chaque époque augmente également le coût.
La taille de chaque mise à jour des poids. C'est le paramètre le plus sensible : s'il est trop élevé, les mises à jour dépassent la cible, la perte devient irrégulière et le modèle peut perdre des compétences qu'il avait acquises ; s'il est trop bas, l'exécution se termine avant que le modèle n'ait appris grand-chose. Les modèles hébergés exposent souvent un multiplicateur au lieu d'un taux brut : le taux par défaut du fournisseur pour ce modèle et vos données est multiplié par votre valeur, donc 1 conserve la valeur par défaut, 2 la double et 0,5 la réduit de moitié. Les modèles ouverts prennent un taux brut, comme environ 1e-4 pour un adaptateur LoRA ou 1e-5 pour un ajustement fin complet.
Le nombre d'exemples dont la moyenne est calculée pour chaque mise à jour des poids. Des lots plus grands donnent des mises à jour plus lisses et plus fiables, mais moins nombreuses par époque, et nécessitent plus de mémoire ; des lots plus petits sont mis à jour plus souvent mais de manière plus bruyante. Lorsque vous modifiez la taille de lot, reconsidérez également le taux d'apprentissage : un lot plus grand tolère, et nécessite, généralement un taux plus élevé. Sur un petit jeu de données, un très grand lot laisse trop peu d'étapes pour en tirer un apprentissage.
Pour l'entraînement d'adaptateurs sur des modèles ouverts. Le rang des deux petites matrices que LoRA entraîne à côté de chaque couche, ce qui définit la capacité d'apprentissage de l'adaptateur. Un rang de 4 à 16 est suffisant pour le ton, le style et le format ; les jeux de données plus vastes et riches en connaissances peuvent en utiliser davantage. Les rangs plus élevés coûtent plus de mémoire et de temps, et cessent d'être utiles une fois que l'adaptateur a une capacité suffisante. La page LoRA couvre l'alpha, les modules cibles et le dropout.
Pour les premières étapes de l'entraînement, le taux d'apprentissage augmente progressivement de presque zéro à sa valeur maximale au lieu de commencer à pleine puissance. Au début, les statistiques d'exécution de l'optimiseur sont basées sur très peu de gradients, de sorte que des étapes à taille réelle risquent de provoquer un mauvais premier mouvement ; un court préchauffage évite un démarrage instable. Il est indiqué sous forme de nombre d'étapes ou de proportion de l'ensemble des étapes. Après le préchauffage, le taux décroît généralement vers zéro pour le reste de l'exécution.
Comment les paramètres interagissent
| Si vous modifiez | Envisagez également | Pourquoi |
|---|---|---|
| Plus d'époques | Un taux d'apprentissage plus faible ; surveiller la perte de validation | Plus de passages combinés à de grandes étapes aggravent le surajustement |
| Un lot plus grand | Un taux d'apprentissage plus élevé | Il y a moins d'étapes par époque, mais elles sont plus fiables |
| Un jeu de données plus petit | Un lot plus petit ; éventuellement quelques époques supplémentaires | Sinon, il y a trop peu d'étapes pour en tirer un apprentissage |
| LoRA au lieu d'un ajustement fin complet | Un taux d'apprentissage plus élevé, environ 10× | L'adaptateur commence à zéro et sa sortie est mise à l'échelle par alpha ÷ r |
| Ajustement des préférences après l'apprentissage supervisé | Moins d'époques et un taux d'apprentissage plus faible | Il peaufine un modèle fonctionnel ; de grandes étapes le font dériver |
Un ordre de réglage pratique
- Exécutez une fois sur Auto. C'est une base de référence raisonnable qui montre ce que le fournisseur sélectionne pour vos données.
- Lisez les courbes de perte. Une perte de validation qui augmente tôt : moins d'époques ou un taux d'apprentissage plus faible. Les deux pertes continuent de baisser à la fin : plus d'époques. Aucune ne bouge : vérifiez d'abord les données, puis essayez un taux d'apprentissage plus élevé.
- Évaluez par rapport au modèle de base, et pas seulement la perte. Une perte plus faible ne garantit pas de meilleures réponses.
- Modifiez un paramètre à la fois, en gardant les autres fixes, afin de savoir ce qui a fait la différence. Le taux d'apprentissage et les époques en premier ; la taille du lot et le préchauffage ont rarement besoin d'être modifiés.
- Conservez les exécutions perdantes. Archivées avec leurs évaluations, elles permettent de répondre à la question « avons-nous essayé un taux d'apprentissage plus élevé ? » des mois plus tard.
- Exécution 1, en Auto : 3 époques, multiplicateur 1. La perte d'entraînement diminue tout du long ; la perte de validation est au plus bas au début de l'époque 2, puis augmente.
- Diagnostic : surapprentissage à partir du milieu de l'exécution environ. Le taux d'apprentissage semble correct : la courbe est lisse, et non en dents de scie.
- Exécution 2 : 2 époques, tout le reste est inchangé. La perte de validation se termine désormais près de son point le plus bas, et l'exécution coûte un tiers de moins.
- Avant de la conserver : évaluez l'exécution 2 par rapport au modèle de base et à l'exécution 1.
Erreurs courantes
- Modifier plusieurs paramètres à la fois, de sorte qu'un résultat meilleur ou pire ne puisse être expliqué.
- Régler en fonction de la perte d'entraînement. Elle s'améliore presque toujours avec plus d'époques ou un taux plus élevé ; la perte de validation et l'évaluation sont les véritables juges.
- Traiter un multiplicateur comme un taux d'apprentissage brut. Un multiplicateur de 2 double la valeur par défaut du fournisseur ; ce n'est pas un taux de 2.
- Copier les paramètres d'une exécution avec une taille de données très différente. Les étapes, le préchauffage et le bon nombre d'époques s'adaptent tous aux données.
- Rechercher de petites différences sur un minuscule jeu de validation. Avec quelques dizaines de conversations réservées, un petit écart n'est que du bruit.
Références et lectures complémentaires
Les sources externes s'ouvrent dans un nouvel onglet.
- 01TrainerHugging Face Transformers docs · huggingface.coLa liste complète des arguments d'entraînement et de leurs valeurs par défaut, du taux d'apprentissage et des époques au préchauffage et à la décroissance des poids.
- 02Linear regression: HyperparametersGoogle Machine Learning Crash Course · developers.google.comLe taux d'apprentissage, la taille de lot et les époques expliqués avec des exemples interactifs.
- 03Accurate, Large Minibatch SGD: Training ImageNet in 1 HourGoyal et al., 2017 · arXiv · arxiv.orgLa règle de mise à l'échelle linéaire reliant la taille de lot et le taux d'apprentissage, ainsi que le préchauffage graduel.
- 04Hyperparameter (machine learning)Wikipedia · en.wikipedia.org