facebookresearch/schedule_free

Schedule-Free Optimization in PyTorch

解决的问题

训练深度学习模型通常需要精心调优的学习率调度(如余弦或线性衰减)以及预定义的停止时间,以达到最佳性能。本项目提供无需这些调度的优化器,使训练速度更快,且无需提前知道总步数。

工作原理

Schedule-Free 学习将标准优化器的动量替换为插值与平均的组合。它维护三个不同的序列:用于梯度评估($y$)、主迭代值($z$)和测试/验证损失评估($x$)。通过平衡这些序列,该方法在实现快速早期收敛的同时保持稳定性,无需递减学习率即可达到或超越最先进调度的性能。

适用人群

使用 PyTorch(或通过 Optax 使用 Jax)的机器学习实践者和研究人员,希望减少学习率调度调优的开销,并避免固定训练时长的限制。

特点

  • 多种实现:包含 SGD、AdamW 和 RAdam 的 Schedule-Free 变体。
  • 灵活集成:提供 ScheduleFreeWrapper,可应用于任何基础优化器。
  • 内存高效:与基础优化器保持相同的内存需求(参数缓冲区加动量)。
  • 专为 PyTorch 编写:提供易于使用的 PyTorch 实现,包括支持优化器步长闭包的版本。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目