facebookresearch/schedule_free
Schedule-Free Optimization in PyTorch
解决的问题
训练深度学习模型通常需要精心调优的学习率调度(如余弦或线性衰减)以及预定义的停止时间,以达到最佳性能。本项目提供无需这些调度的优化器,使训练速度更快,且无需提前知道总步数。
工作原理
Schedule-Free 学习将标准优化器的动量替换为插值与平均的组合。它维护三个不同的序列:用于梯度评估($y$)、主迭代值($z$)和测试/验证损失评估($x$)。通过平衡这些序列,该方法在实现快速早期收敛的同时保持稳定性,无需递减学习率即可达到或超越最先进调度的性能。
适用人群
使用 PyTorch(或通过 Optax 使用 Jax)的机器学习实践者和研究人员,希望减少学习率调度调优的开销,并避免固定训练时长的限制。
特点
- 多种实现:包含 SGD、AdamW 和 RAdam 的 Schedule-Free 变体。
- 灵活集成:提供
ScheduleFreeWrapper,可应用于任何基础优化器。 - 内存高效:与基础优化器保持相同的内存需求(参数缓冲区加动量)。
- 专为 PyTorch 编写:提供易于使用的 PyTorch 实现,包括支持优化器步长闭包的版本。
相关
- 项目
- 项目
- 项目
- 项目
- 项目