Adam adapte le pas de chaque paramètre à partir de deux moyennes mobiles : celle des gradients — l’inertie — et celle de leurs carrés, qui sert à diviser. Un paramètre dont les gradients sont habituellement petits reçoit donc un pas relativement plus grand.
SGD avec inertie applique le même taux d’apprentissage à tous les paramètres, en lissant la direction par une moyenne mobile des gradients passés.
| Adam | SGD avec inertie | |
|---|---|---|
| Pas | par paramètre | global |
| Convergence | rapide | plus lente |
| Sensibilité au réglage | faible | élevée |
| Généralisation | très bonne | parfois meilleure en vision |
| Mémoire | deux états par paramètre | un état |
Adam par défaut, et particulièrement pour les transformeurs, le traitement du langage, les données creuses et tout prototypage : il fonctionne avec un taux de 1e-3 sans réglage, ce qui économise beaucoup de temps.
SGD avec inertie quand on entraîne longuement un réseau convolutif et qu’on cherche le dernier point de performance, avec un programme de taux d’apprentissage bien conçu. C’est le choix des articles de référence en classification d’images, et il demande un vrai travail de réglage pour battre Adam.
C’est le point le plus valorisé sur cette question. Dans Adam, la régularisation L2 était implémentée en ajoutant le terme de pénalité au gradient — or ce gradient est ensuite divisé par la moyenne des carrés, donc la régularisation effective diffère d’un paramètre à l’autre. Ce n’est pas ce qu’on voulait.
AdamW applique la décroissance des poids séparément de l’adaptation du pas, ce qui rétablit le comportement attendu. C’est aujourd’hui le standard : tous les grands modèles de langage sont entraînés avec AdamW, et dire « Adam » là où on veut dire « AdamW » est l’imprécision la plus courante sur ce sujet.
Adam conserve deux états par paramètre. Sur un modèle de sept milliards de paramètres, cela représente plusieurs dizaines de gigaoctets de mémoire d’optimiseur, souvent plus que les poids eux-mêmes. C’est un facteur déterminant dans l’entraînement des grands modèles, et la raison d’être des optimiseurs répartis ou allégés — Adafactor, 8-bit Adam, partitionnement des états. Le mentionner montre qu’on a réfléchi à l’échelle.