facebookresearch/schedule_free

Schedule-Free Optimization in PyTorch

解決的問題

訓練深度學習模型通常需要精心調校的學習率排程(例如餘弦或線性衰減)以及預先定義的停止時間,以達到最佳性能。本專案提供無需這些排程的優化器,讓訓練速度更快,且無需提前知道總步數。

工作原理

Schedule-Free 學習將標準優化器的動量替換為插值與平均的組合。它維護三個不同的序列:用於梯度評估($y$)、主迭代值($z$)和測試/驗證損失評估($x$)。透過平衡這些序列,該方法在實現快速早期收斂的同時保持穩定性,無需遞減學習率即可達到或超越最尖端排程的性能。

適用對象

使用 PyTorch(或透過 Optax 使用 Jax)的機器學習實務者與研究人員,希望減少學習率排程調校的開銷,並避免固定訓練時長的限制。

特色

  • 多種實作:包含 SGD、AdamW 和 RAdam 的 Schedule-Free 變體。
  • 靈活整合:提供 ScheduleFreeWrapper,可應用於任何基礎優化器。
  • 記憶體高效:與基礎優化器保持相同的記憶體需求(參數緩衝區加動量)。
  • 專為 PyTorch 寫作:提供易於使用的 PyTorch 實作,包括支援優化器步驟閉包的版本。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案