facebookresearch/schedule_free
Schedule-Free Optimization in PyTorch
解決的問題
訓練深度學習模型通常需要精心調校的學習率排程(例如餘弦或線性衰減)以及預先定義的停止時間,以達到最佳性能。本專案提供無需這些排程的優化器,讓訓練速度更快,且無需提前知道總步數。
工作原理
Schedule-Free 學習將標準優化器的動量替換為插值與平均的組合。它維護三個不同的序列:用於梯度評估($y$)、主迭代值($z$)和測試/驗證損失評估($x$)。透過平衡這些序列,該方法在實現快速早期收斂的同時保持穩定性,無需遞減學習率即可達到或超越最尖端排程的性能。
適用對象
使用 PyTorch(或透過 Optax 使用 Jax)的機器學習實務者與研究人員,希望減少學習率排程調校的開銷,並避免固定訓練時長的限制。
特色
- 多種實作:包含 SGD、AdamW 和 RAdam 的 Schedule-Free 變體。
- 靈活整合:提供
ScheduleFreeWrapper,可應用於任何基礎優化器。 - 記憶體高效:與基礎優化器保持相同的記憶體需求(參數緩衝區加動量)。
- 專為 PyTorch 寫作:提供易於使用的 PyTorch 實作,包括支援優化器步驟閉包的版本。
相關
- 專案
- 專案
- 專案
- 專案
- 專案