Comment les modèles apprennent réellement, de la descente de gradient classique à Adam
L'entraînement en précision mixte utilise des formats numériques plus petits pour gagner en vitesse et en mémoire. Plutôt que de stocker chaque calcul en pleine précision (les flottants 32 bits standard), de nombreuses opérations utilisent float16 ou bfloat16 : des formats 16 bits qui occupent moitié moins de mémoire en échange d'une précision réduite et, pour float16, d'une plage plus étroite de valeurs représentables.
Le risque porte sur la plage numérique. Certains gradients sont minuscules. Si un petit nombre est arrondi à zéro, l'optimiseur perd de l'information. La mise à l'échelle de la perte protège ces petits gradients en multipliant la perte avant la rétropropagation, puis en redivisant les gradients.
Une balance de cuisine qui arrondit au gramme entier peut manquer une minuscule pincée d'épice. Si vous pesez dix pincées identiques ensemble, la balance peut voir le total. Vous divisez ensuite par dix pour retrouver une pincée. La mise à l'échelle de la perte utilise la même astuce : rendre la petite valeur plus facile à représenter, puis la remettre à l'échelle. La figure ci-dessous rappelle ce qui est en jeu. La descente ne fonctionne que si le gradient de chaque pas survit à l'arithmétique ; la précision ne change pas la boucle, elle détermine si les pentes minuscules près du minimum lui restent visibles.