Aller au contenu
Entraînement

Entraînement

La boucle qui règle les poids d'un modèle : mesurer son erreur, calculer dans quel sens corriger chaque nombre, faire un petit pas, et recommencer.

7 min de lecture
  • #entraînement
  • #rétropropagation
  • #descente de gradient
  • #surapprentissage

L’entraînement est la boucle qui règle les poids d’un modèle : on mesure de combien il se trompe sur des exemples, on corrige chacun de ses nombres d’un tout petit pas dans le bon sens, et on recommence jusqu’à ce que l’erreur ne baisse plus.

Tu es en montagne, dans un brouillard si épais que tu ne vois pas tes pieds, et tu dois rejoindre le fond de la vallée. Tu tâtes le sol autour de toi, tu sens de quel côté il descend le plus, tu fais un pas dans ce sens, et tu recommences.

Tout se joue sur la longueur du pas. Trop grand, tu enjambes le creux et te retrouves sur le versant d’en face. Trop petit, la nuit tombe avant que tu sois arrivé.

La fonction de perte chiffre les erreurs du modèle : un seul nombre, qui mesure l’écart entre ce qu’il a prédit et ce qu’on attendait.

Pour un LLM, l’exercice est toujours le même : deviner le token suivant d’un texte. Le modèle donne une probabilité à chaque token possible, et la perte regarde celle qu’il accordait au token qui venait vraiment : s’il lui donnait 90 % de chances, elle est faible ; s’il ne lui en donnait que 1 %, elle est forte. Cette mesure s’appelle l’entropie croisée.

Tout l’entraînement tient dans une question : comment modifier des milliards de poids pour faire baisser ce nombre ?

La pente : le gradient, et la rétropropagation qui le calcule

Section intitulée « La pente : le gradient, et la rétropropagation qui le calcule »

Pour chaque poids, on voudrait savoir : si on l’augmente un peu, la perte monte-t-elle ou descend-elle, et de combien ? L’ensemble de ces réponses, une par poids, s’appelle le gradient : la pente de la montagne, mesurée dans autant de directions que le modèle a de paramètres.

La rétropropagation calcule ce gradient sans tester chaque poids un par un. Elle part de l’erreur mesurée à la sortie et remonte le réseau de neurones couche par couche, en répartissant la responsabilité de l’erreur. Rumelhart, Hinton et Williams l’ont popularisée dans Nature en 1986.

Chaque pas se fait donc en deux temps : une passe avant, qui produit la prédiction, puis une passe arrière, qui calcule le gradient et coûte environ deux fois plus. L’équipe d’OpenAI qui a étudié les lois d’échelle en 2020 en tire un ordre de grandeur : environ 6 opérations par paramètre et par token d’entraînement.

Le pas : descente de gradient et taux d’apprentissage

Section intitulée « Le pas : descente de gradient et taux d’apprentissage »

La descente de gradient déplace chaque poids d’un petit pas dans le sens qui fait baisser la perte. L’idée est française : Augustin-Louis Cauchy la présente en 1847 dans une note à l’Académie des sciences.

La longueur du pas s’appelle le taux d’apprentissage. C’est un hyperparamètre : un réglage choisi avant l’entraînement, pas un poids appris. Trop grand, l’entraînement diverge : la perte s’envole au lieu de baisser. Trop petit, il n’avance pas. En pratique, on le fait monter pendant les premiers pas (le warmup), puis redescendre jusqu’à la fin. Pour Llama 3 405B, Meta annonce une montée sur 8 000 pas jusqu’à 8 × 10⁻⁵, puis une lente décroissance.

Chaque pas ne porte pas sur tout le corpus, mais sur un mini-lot d’exemples tirés au hasard : c’est la descente de gradient stochastique. Pour GPT-3, un lot représentait 3,2 millions de tokens : chaque pas corrige les poids d’après des millions de prédictions à la fois.

Adam, l’optimiseur qui dose le pas de chaque poids

Section intitulée « Adam, l’optimiseur qui dose le pas de chaque poids »

La descente de gradient pure applique le même taux d’apprentissage à tous les poids. Les LLM lui préfèrent Adam (Kingma et Ba, 2014) ou sa variante AdamW (Loshchilov et Hutter, 2017), celle de Llama 3. Adam tient pour chaque poids deux moyennes, mises à jour à chaque pas : celle de ses gradients récents et celle de leur carré. Il en déduit un pas propre à chaque poids, plus court quand ses gradients récents se contredisent.

Ce confort se paie en mémoire. Il faut garder les poids, leurs gradients, une copie plus précise des poids, en 32 bits, et les deux moyennes d’Adam : 16 octets par paramètre selon l’équipe de Microsoft qui a conçu ZeRO, une méthode pour répartir cette mémoire entre plusieurs cartes, et 18 selon Hugging Face, qui compte autrement. Il n’en faut que 2 pour faire tourner le modèle une fois figé, en 16 bits. Pour GPT-2 et ses 1,5 milliard de paramètres, ZeRO compte 3 Go de poids, mais au moins 24 Go pour l’entraîner.

Une époque est un passage complet sur toutes les données d’entraînement. Les LLM, eux, voient la plupart de leurs données une fois ou moins : GPT-3 n’a parcouru que 44 % des pages web de son corpus, BLOOM a fait une seule époque.

La raison est le surapprentissage : un modèle qui, dit la CNIL, « correspond trop précisément » à ses données d’entraînement et n’est plus fiable sur les autres. On le repère en gardant de côté des données que le modèle ne voit jamais, le jeu de validation. Si la perte d’entraînement baisse encore quand celle de validation stagne ou remonte, il commence à réciter.

Le nombre de poids est fixé au départ : seules leurs valeurs bougent. À la sortie, ils sont figés, et l’inférence n’a plus ni passe arrière ni mise à jour.

La même boucle sert à toutes les étapes : le pré-entraînement, le fine-tuning et le RLHF la font tourner avec d’autres données et une perte qui ne récompense pas la même chose, mais la mécanique ne change pas : perte, gradient, petit pas.

  • BLOOM, entraîné en 2022 sur le supercalculateur public Jean Zay, est l’un des rares grands modèles dont tous les réglages sont publiés : Adam, un taux d’apprentissage maximal de 6 × 10⁻⁵, une seule époque. Sa fiche technique donne même la perte finale : 1,939 à l’entraînement, 2,061 en validation.
  • Llama 3 405B a mobilisé jusqu’à 16 000 cartes graphiques H100. En 54 jours, Meta a compté 466 interruptions, dont 419 imprévues, surtout des pannes matérielles : à cette échelle, repartir de la dernière sauvegarde fait partie du travail.
  • Tu peux faire tourner un modèle sur ton ordinateur sans pouvoir l’y entraîner. Fais le calcul pour Llama 3 405B : 405 milliards de paramètres × 16 octets, environ 6,5 To avant même de compter les activations, les valeurs intermédiaires calculées en route. D’où les milliers de cartes d’un entraînement complet, et LoRA, qui retouche un modèle en n’entraînant qu’une petite fraction de ses poids.
  • « Entraîner une IA, c’est lui programmer des règles. » La définition officielle de l’apprentissage automatique (Journal officiel, 2018) précise qu’il progresse « sans l’intervention d’un programmeur », en modifiant des paramètres « de valeur initiale en général aléatoire ». Les ingénieurs écrivent l’architecture, la perte et l’optimiseur ; le comportement sort de la boucle.
  • « Plus on fait relire ses données au modèle, meilleur il devient. » Relire aide un temps, puis de moins en moins. Muennighoff et ses coauteurs ont mesuré en 2023 que jusqu’à 4 époques, des données répétées valent à peu près des données neuves ; au-delà, chaque passage rapporte moins que le précédent, et à force de relire, le modèle finit par réciter.
  • « Le but est d’atteindre une erreur nulle. » Une perte nulle sur les données d’entraînement voudrait surtout dire que le modèle les a apprises par cœur. Et deviner la suite d’un texte humain garde toujours une part d’incertitude : BLOOM finit à 1,939, loin de zéro. Le critère qui compte, c’est la perte sur des données jamais vues.

Voir aussi