facebookresearch/schedule_free

Schedule-Free Optimization in PyTorch

何を解決するか

ディープラーニングモデルの訓練には、通常、慎重に調整された学習率スケジュール(コサイン減衰や線形減衰など)と事前に定義された停止時間が必要です。このプロジェクトでは、これらのスケジュールを必要としない最適化手法を提供し、総ステップ数を事前に知らなくても、高速な訓練が可能になります。

動作方法

Schedule-Free学習は、標準的な最適化手法のモーメンタムを、補間と平均化の組み合わせに置き換えます。3つの異なるシーケンスを維持します:勾配評価用($y$)、主イテレート用($z$)、テスト/検証損失評価用($x$)。これらのシーケンスをバランスさせることで、初期段階での高速収束を実現しつつ安定性を保ち、減少する学習率を必要とせずに、最先端のスケジュールと同等またはそれ以上の性能を達成します。

対象ユーザー

PyTorch(またはOptax経由のJax)を使用する機械学習の実践者や研究者で、学習率スケジュールのチューニングの負担を減らしたい、または固定された訓練期間の制約から解放されたい方。

特徴

  • 複数の実装: SGD、AdamW、RAdamのSchedule-Freeバージョンを含みます。
  • 柔軟な統合: 任意のベース最適化手法に適用可能な ScheduleFreeWrapper を提供します。
  • メモリ効率: ベース最適化手法と同等のメモリ要件(パラメータバッファ+モーメンタム)を維持します。
  • PyTorch用にコーディング: 最適化手法ステップのクロージャーに対応したバージョンを含む、使いやすいPyTorch実装を提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト