MARS优化器深度解析:如何通过方差 reduction 技术加速大模型训练?
【免费下载链接】MARSThe official implementation of MARS: Unleashing the Power of Variance Reduction for Training Large Models项目地址: https://gitcode.com/gh_mirrors/mars11/MARS
MARS(Make Variance Reduction Shine)是一个专为解决大模型训练挑战设计的统一优化框架。它创新性地将方差减少技术与自适应梯度方法结合,有效解决了传统优化器在训练大型模型时面临的高随机梯度方差问题,为大模型训练提供了更高效、更稳定的优化方案。
什么是MARS优化器?
MARS优化器的核心是将方差减少技术与自适应梯度方法相结合,构建了一个兼顾梯度复杂度和迭代复杂度的统一框架。它主要包含两个关键组件:
- 缩放随机递归动量:提供全梯度的方差减少估计器,有效降低梯度复杂度
- 预处理更新:近似二阶牛顿法,优化每次迭代的计算复杂度
通过这种组合,MARS实现了传统方法难以企及的性能平衡,在大模型训练中展现出显著优势。MARS的源代码实现位于optimizers/mars.py,同时还提供了融合版本optimizers/mars_fused.py以支持更高性能的训练需求。
MARS如何利用方差减少技术?
在大模型训练过程中,随机梯度的高方差是导致训练不稳定和收敛缓慢的主要原因之一。MARS通过以下创新策略有效解决了这一问题:
- 递归动量估计:通过维护历史梯度信息,构建更稳定的梯度估计
- 动态方差调整:根据训练过程中的梯度变化自动调整方差缩减强度
- 混合参数更新:对不同维度的参数采用差异化的更新策略,如
optimizers/mars_m.py中实现的矩阵优化器与方差减少技术的结合
这些技术使得MARS能够在保持收敛速度的同时显著降低梯度噪声,特别适合于GPT等大型语言模型的训练任务。
MARS优化器的核心优势
MARS优化器在多个方面展现出超越传统优化器的显著优势:
更快的收敛速度
实验结果表明,MARS在各类GPT-2模型上均能实现比AdamW和Muon等优化器更快的收敛速度。无论是小型还是超大型模型,MARS都能在更少的训练步骤内达到目标损失值。
图:GPT-2 Small模型训练损失对比,MARS(蓝色)相比传统优化器展现出更快的收敛速度
更低的最终损失
除了收敛速度,MARS还能实现更低的最终损失值。在GPT-2 XL等大型模型上,MARS优化器能够持续优化模型性能,达到传统方法难以企及的损失水平。
图:GPT-2 XL模型验证损失对比,MARS(红色)实现了更低的最终损失
更好的泛化能力
在CIFAR-10和CIFAR-100等图像分类任务上,MARS优化器同样表现出色。使用ResNet-18模型时,MARS能够获得比AdamW和Muon更高的测试准确率和更低的测试损失。
图:CIFAR-100数据集上的测试准确率对比,MARS优化器(绿色)表现出更好的泛化能力
如何开始使用MARS优化器?
使用MARS优化器非常简单,只需按照以下步骤操作:
1. 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/mars11/MARS cd MARS2. 安装依赖
MARS优化器需要PyTorch等基础依赖,可通过以下命令安装:
pip install -r requirements.txt对于融合版本的MARS优化器,还需要执行额外的安装步骤:
cd MARS/optimizers python setup_mars.py install3. 配置优化器参数
MARS优化器的主要参数包括:
learning_rate:学习率weight_decay:权重衰减betas:动量参数gamma:方差减少强度参数
这些参数可以在配置文件中设置,如config/train_gpt2_small_mars.py中指定了GPT-2 Small模型使用MARS优化器的相关参数。
4. 启动训练
使用MARS优化器训练模型的命令示例:
bash scripts/run_mars_small.sh该命令将使用MARS优化器在OpenWebText数据集上训练GPT-2 Small模型,所有相关超参数(训练、模型和优化器)都在配置文件中指定。
MARS的进阶应用:MARS-M优化器
MARS框架还衍生出了MARS-M优化器,它将矩阵优化器(如Muon和Moonlight)与方差减少技术相结合,进一步提升了大模型训练性能。MARS-M的实现位于MARS_M/optimizers/mars_m.py。
MARS-M的核心创新在于对不同类型的参数采用差异化的优化策略:
- 对矩阵参数使用矩阵优化器
- 对标量参数使用AdamW优化器
- 通过方差减少技术协调两种优化器的更新
这种混合策略使得MARS-M在保持高效训练的同时,能够更好地处理不同类型参数的优化需求。
总结
MARS优化器通过创新性地融合方差减少技术和自适应梯度方法,为大模型训练提供了一个高效、稳定的优化解决方案。它不仅能够加速模型收敛,还能提高最终性能,是训练大型语言模型和计算机视觉模型的理想选择。
无论是科研人员还是工程实践者,都可以通过项目提供的配置文件和脚本轻松上手MARS优化器。随着大模型技术的不断发展,MARS及其衍生优化器有望在更多领域发挥重要作用,推动AI模型训练效率的持续提升。
想要了解更多细节,可以参考项目中的实现代码和配置文件,如MARS/model.py中的优化器配置逻辑和config/目录下的各类模型训练配置。
【免费下载链接】MARSThe official implementation of MARS: Unleashing the Power of Variance Reduction for Training Large Models项目地址: https://gitcode.com/gh_mirrors/mars11/MARS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考