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実装を提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト