kozistr/pytorch_optimizer

optimizer & lr scheduler & loss function collections in PyTorch

解決する問題

PyTorchユーザーが、多種多様な最新の最適化アルゴリズム、学習率スケジューラ、損失関数を試したいときに、反復的なボイラープレートコードを書いたり、複数の研究リポジトリを手動で統合したりすることなく利用できる、統合的で本番環境対応のツールキットを提供します。

仕組み

このライブラリは、オプティマイザ、スケジューラ、損失関数を読み込んで作成するための一貫したAPIを提供します。ユーザーは、クラスを直接呼び出すか、load_optimizer関数を使用するか、Gradient CentralizationやLookaheadなどの高度な機能をサポートするcreate_optimizerヘルパーを通じて、オプティマイザをインスタンス化できます。また、PyTorchのtorch.compileをサポートしてオプティマイザの更新を融合し、パフォーマンスを向上させます。LionやTigerなどの特定のオプティマイザには専用のコンパイルパスが用意されています。

対象読者

PyTorchを使用する機械学習エンジニアや研究者で、多様なトレーニング手法を迅速に試す必要があり、高度なオプティマイザをトレーニングパイプラインに統合する標準化された方法を必要とする方。

ハイライト

  • 100以上のオプティマイザ、10以上の学習率スケジューラ、10以上の損失関数。
  • torch.compileをサポートし、オプティマイザの更新を自動的に融合。
  • bitsandbytes、q-galore-torch、torchaoなどのエコシステムツールとの統合。
  • 一貫したローダーAPIにより、異なる最適化戦略を簡単に切り替え可能。

関連

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