Zubnet AIApprendreWiki › Optimiseur Adam
Entraînement

Optimiseur Adam

Adam, AdamW
L'algorithme d'optimisation le plus utilisé pour l'entraînement des réseaux de neurones. Adam (Adaptive Moment Estimation) combine le momentum (utilisant une moyenne mobile des gradients passés) avec des taux d'apprentissage adaptatifs (mettant à l'échelle les mises à jour par l'inverse des magnitudes des gradients passés). AdamW ajoute un déclin de poids découplé pour une meilleure régularisation. Pratiquement tous les LLM modernes sont entraînés avec AdamW.

Pourquoi c'est important

Adam fonctionne bien sur une large gamme de tâches et d'hyperparamètres, ce qui en fait l'optimiseur par défaut. Le comprendre explique pourquoi l'entraînement « fonctionne tout simplement » la plupart du temps (Adam s'adapte par paramètre) et pourquoi parfois ça ne marche pas (les besoins mémoire d'Adam sont 2 fois les paramètres du modèle, ce qui compte pour les grands modèles). C'est aussi la réponse à « quel optimiseur je devrais utiliser ? » dans 90 % des cas.

En profondeur

Adam maintient deux moyennes mobiles par paramètre : le premier moment (moyenne des gradients — momentum) et le second moment (moyenne des gradients au carré — mise à l'échelle adaptative). La règle de mise à jour : paramètre -= lr × m̂ / (√v̂ + ε), où m̂ et v̂ sont les moments corrigés du biais. Les paramètres avec des gradients constamment grands reçoivent des mises à jour plus petites (ils sont déjà bien calibrés). Les paramètres avec des gradients petits et bruités reçoivent des mises à jour plus grandes (ils ont besoin d'un mouvement plus agressif).

AdamW : la correction

L'Adam original appliquait le déclin de poids en l'ajoutant au gradient avant de calculer les moments, ce qui faisait que le déclin était mis à l'échelle par le taux d'apprentissage adaptatif — pas ce qu'on veut. AdamW (Loshchilov & Hutter, 2017) découple le déclin de poids de la mise à jour du gradient, en l'appliquant directement aux paramètres. Ça semble être une correction mineure mais ça améliore significativement la généralisation. Tout entraînement de LLM moderne utilise AdamW.

Coût mémoire

Adam stocke deux valeurs supplémentaires par paramètre (premier et second moments), triplant la mémoire nécessaire pour l'état de l'optimiseur : un modèle 70B a besoin de ~140 Go pour les poids (FP16) plus ~280 Go pour les états Adam (FP32), totalisant ~420 Go. C'est pourquoi le sharding de l'état de l'optimiseur (DeepSpeed ZeRO, FSDP) est essentiel pour l'entraînement de grands modèles. Certains optimiseurs plus récents (Adafactor, CAME, Lion) réduisent cette charge mémoire au prix d'une certaine stabilité.

← Tous les termes