MARS框架三大实例:MARS-AdamW、MARS-Lion与MARS-Shampoo对比分析
2026/7/25 21:41:07 网站建设 项目流程

MARS框架三大实例:MARS-AdamW、MARS-Lion与MARS-Shampoo对比分析

【免费下载链接】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-AdamW、MARS-Lion和MARS-Shampoo,帮助开发者选择最适合自己需求的优化器。

MARS框架概述

MARS框架的核心在于将方差减少技术与预条件梯度方法相结合,其数学形式包含四个关键步骤:缩放梯度校正、梯度裁剪、动量更新和预条件优化。通过这种设计,MARS能够同时实现更好的梯度复杂度和每步迭代复杂度,为大型模型训练提供强大支持。

在MARS框架下,有三个主要实例,它们基于不同的Hessian矩阵近似方法:

  • MARS-AdamW:使用对角矩阵近似Hessian
  • MARS-Lion:基于动量的Hessian近似
  • MARS-Shampoo:采用矩阵分解技术近似Hessian

需要注意的是,框架中的超参数默认针对MARS-AdamW进行了调优。使用其他实例时,特别是学习率等关键参数,需要重新调整以获得最佳性能。

MARS-AdamW:对角矩阵近似的高效实现

MARS-AdamW是MARS框架中最成熟的实例,通过对角矩阵近似Hessian矩阵。它的实现位于MARS/mars.py,通过设置mars_type="mars-adamw"启用。

核心公式

MARS-AdamW的Hessian矩阵近似定义为:

v_t = β₂v_{t-1} + (1-β₂)(∇f(x_t, ξ_t))² H_t := √(diag(v_t)) · (1 - β₁ᵗ)/√(1 - β₂ᵗ)

性能表现

MARS-AdamW在多个任务上表现出色。在FineWeb-Edu数据集上,GPT-2 Small模型使用MARS-AdamW达到了45.93的平均分数,显著优于AdamW和OpenAI基线。

图1:MARS-AdamW在GPT-2 Small模型上的训练损失曲线,显示出快速收敛特性

在GPT-2 XL模型上,MARS-AdamW更是实现了56.52的HellaSwag准确率,证明了其在大型模型上的优势。

图2:MARS-AdamW在GPT-2 XL模型上的验证损失曲线,展示了持续的低损失表现

适用场景

  • 需要快速收敛的大型语言模型训练
  • 资源有限但追求高精度的场景
  • 作为其他MARS实例的性能基准

MARS-Lion:基于动量的轻量级方案

MARS-Lion是MARS框架的轻量级实例,通过动量的平方对角矩阵近似Hessian。它的实现同样位于MARS/mars.py,通过设置mars_type="mars-lion"启用。

核心公式

MARS-Lion的Hessian矩阵近似定义为:

H_t := √(diag(m_t²))

其中m_t是动量项,这种设计使得MARS-Lion的计算复杂度低于MARS-AdamW。

特点与优势

  • 计算效率高:无需维护二阶矩估计,内存占用更小
  • 收敛稳定:基于动量的更新有助于避免局部最优
  • 调参简单:相比MARS-AdamW,需要调整的超参数更少

适用场景

  • 内存受限的大型模型训练
  • 需要简化调参流程的场景
  • 对训练速度要求较高的应用

MARS-Shampoo:矩阵分解的高阶近似

MARS-Shampoo是MARS框架中最复杂的实例,采用矩阵分解技术近似Hessian矩阵。它的实现位于MARS/mars.py,通过设置mars_type="mars-shampoo"启用。

核心公式

MARS-Shampoo的预条件器基于SVD分解:

U_t, Σ_t, V_t = SVD(G_t) x_{t+1} = x_t - η_t U_t V_t^⊤

在实践中,MARS-Shampoo使用Newton-Schulz迭代加速SVD问题的求解,平衡了计算复杂度和近似精度。

特点与优势

  • 高阶近似:能够捕捉参数间的相关性
  • 理论最优:在某些条件下可达到二阶方法的收敛速度
  • 泛化能力强:在小样本数据上可能表现更好

适用场景

  • 数据量有限但模型复杂的任务
  • 追求理论最优解的研究场景
  • 特征维度高且存在相关性的应用

三大实例的性能对比

虽然MARS-AdamW是目前文档中唯一提供详细实验数据的实例,但我们可以根据三种方法的特性进行理论对比:

计算复杂度

  • MARS-AdamW:O(d),d为参数维度
  • MARS-Lion:O(d),但常数因子更小
  • MARS-Shampoo:O(d^(3/2)),但可通过低秩近似优化

内存占用

  • MARS-AdamW:高(需要存储二阶矩)
  • MARS-Lion:低(仅需存储动量)
  • MARS-Shampoo:中到高(取决于矩阵分解策略)

收敛特性

  • MARS-AdamW:均衡的收敛速度和稳定性
  • MARS-Lion:初期收敛快,后期可能震荡
  • MARS-Shampoo:理论收敛快,但实际可能受近似质量影响

实际应用建议

对于大多数用户,我们建议从MARS-AdamW开始,因为它在各种任务上都表现出稳定的高性能。如果你面临内存限制,可以尝试MARS-Lion;如果追求理论上的最优解,且能接受更高的计算成本,可以尝试MARS-Shampoo。

图3:MARS实例在不同规模GPT模型上的训练效率对比,展示了MARS框架的整体优势

快速开始使用MARS实例

要在你的项目中使用MARS框架的不同实例,只需在初始化优化器时指定mars_type参数:

# 导入MARS优化器 from mars import MARS # 使用MARS-AdamW optimizer = MARS(model.parameters(), lr=1e-3, mars_type="mars-adamw") # 使用MARS-Lion optimizer = MARS(model.parameters(), lr=1e-3, mars_type="mars-lion") # 使用MARS-Shampoo optimizer = MARS(model.parameters(), lr=1e-3, mars_type="mars-shampoo")

项目提供了多种配置文件和脚本,方便快速启动不同模型的训练:

  • 配置文件:config/目录下包含各种模型的训练配置
  • 脚本文件:scripts/目录下提供了一键启动脚本

例如,要使用MARS-AdamW训练GPT-2 Small模型,可以运行:

$ bash scripts/run_mars_small.sh

总结

MARS框架通过统一的设计理念,提供了三种各具特色的优化器实例,满足不同场景下的训练需求。MARS-AdamW作为基准实例,在性能和稳定性之间取得了平衡;MARS-Lion以其轻量级设计提供了高效的训练方案;MARS-Shampoo则通过高阶近似追求理论上的最优解。

无论你是训练大型语言模型还是计算机视觉模型,MARS框架都能提供强大的优化支持。建议根据你的具体任务需求、资源限制和精度要求,选择最适合的MARS实例,并通过调整超参数进一步优化性能。

图4:MARS在CIFAR-10数据集上的测试准确率,展示了其在计算机视觉任务上的优势

通过合理选择和配置MARS框架的优化器实例,你可以充分释放大型模型的训练潜力,加速模型收敛并提高最终性能。

【免费下载链接】MARSThe official implementation of MARS: Unleashing the Power of Variance Reduction for Training Large Models项目地址: https://gitcode.com/gh_mirrors/mars11/MARS

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询