Deconstructing What Makes a Good Optimizer for Language Models
Rosie Zhao, Depen Morwani, David Brandfonbrener, Nikhil Vyas, Sham Kakade
TL;DR
This paper challenges the conventional wisdom that Adam is the sole best optimizer for large-scale language modeling by conducting a broad, controlled comparison of SGD, Adafactor, Lion, Signum, and Sophia across model sizes and architectures. It shows that, once hyperparameters are well tuned, most adaptive, diagonal preconditioners perform similarly to Adam, with SGD lagging behind. The authors further dissect adaptivity, showing Signum can match Adam when $β_1=β_2$ and introducing Adalayer, a layerwise preconditioner whose effectiveness hinges on adaptive treatment of the last layer and LayerNorm parameters. Practically, these findings imply that optimizer choice may be driven more by memory and implementation considerations, while the key to stable and high-performing training lies in targeted adaptivity for specific network components.
Abstract
Training language models becomes increasingly expensive with scale, prompting numerous attempts to improve optimization efficiency. Despite these efforts, the Adam optimizer remains the most widely used, due to a prevailing view that it is the most effective approach. We aim to compare several optimization algorithms, including SGD, Adafactor, Adam, Lion, and Sophia in the context of autoregressive language modeling across a range of model sizes, hyperparameters, and architecture variants. Our findings indicate that, except for SGD, these algorithms all perform comparably both in their optimal performance and also in terms of how they fare across a wide range of hyperparameter choices. Our results suggest to practitioners that the choice of optimizer can be guided by practical considerations like memory constraints and ease of implementation, as no single algorithm emerged as a clear winner in terms of performance or stability to hyperparameter misspecification. Given our findings, we further dissect these approaches, examining two simplified versions of Adam: a) signed momentum (Signum) which we see recovers both the performance and hyperparameter stability of Adam and b) Adalayer, a layerwise variant of Adam which we introduce to study the impact on Adam's preconditioning for different layers of the network. Examining Adalayer leads us to the conclusion that, perhaps surprisingly, adaptivity on both the last layer and LayerNorm parameters in particular are necessary for retaining performance and stability to learning rate.
