本文发布于 2025-03-03近期,基于矩阵正交化(matrix orthogonalization)的 Muon 优化器在小规模语言模型训练中展现出了优异的性能,但其在大模型训练中的可扩展性尚未得到验证。我们发现了两个提升 Muon 可扩展性的关键技术:(1)引入权重衰减(weight decay);(2)精确调整每个参数的更新比例。有了这些改进,Muon可以直接用于大规模训练,无需额外的超参数调优。扩展性实验表明,相比 AdamW,在计算量最优的训练条件下,Muon 的计算效率上实现了约 2 倍提升。

关键要点
我们的工作在 Muon 的基础上,系统地识别并解决了其在大规模训练场景中的局限性。主要技术贡献包括:- Muon 的有效扩展性分析:通过深入分析,我们发现权重衰减在Muon的可扩展性中起着关键作用。此外,我们提出通过参数级别的更新尺度调整,来保持矩阵参数和非矩阵参数之间更新均方根(RMS)的一致性。这些调整显著提高了训练稳定性。
- 高效分布式实现:我们开发了采用 ZeRO-1 风格优化的分布式版 Muon,在保持算法数学特性的同时,实现了最优的内存效率和更低的通信开销。
- 扩展性定律(Scaling Law)验证:我们进行了扩展性研究,将 Muon 与 AdamW 的高性能基准进行对比,结果显示了Muon 的卓越性能。根据 Scaling Law 结果,Muon 在仅使用约 52% 训练计算量的情况下,就达到了与AdamW 相当的性能。
性能测试
我们将基于 Muon 训练的轻量级模型命名为”Moonlight”。我们将 Moonlight 与同等规模的最先进公开模型进行了对比: LLAMA3-3B 是一个使用 9 万亿 tokens 训练的 30 亿参数密集模型 Qwen2.5-3B 是一个使用 18 万亿 tokens 训练的 30 亿参数密集模型 Deepseek-v2-Lite 是一个使用 5.7 万亿 tokens 训练的 2.4 亿/ 160 亿参数混合专家模型
使用示例
模型下载
用Hugging Face Transformers进行推理
我们将介绍如何使用transformers库在推理阶段使用我们的模型。建议使用python=3.10、torch>=2.1.0和transformers=4.48.2作为开发环境。 对于我们的预训练模型(Moonlight):训练代码
中间检查点
我们已经发布了Moonlight和Moonlight-A的中间检查点(checkpoint)以支持进一步的研究工作: https://github.com/MoonshotAI/Moonlight/blob/master/Moonlight_intermediate_checkpoints.pdf 一些亮点:- 我们可以看到使用 Muon 训练的 Moonlight 模型在数学和编程方面的表现优于使用AdamW训练的Moonlight-A。
- 我们还可以分析 Moonlight 和 Moonlight-A 中间检查点在 SVD Entropy 和 Srank 方面的不同表现。

