Deconstructing What Makes a Good Optimizer for Language Models | Synapse