OmegaConfとHydraとPyTorch Lightningに関するメモ

既存の深層学習モデルのPyTorch実装を使おうとしたら、他にもいろいろなライブラリが使われていたのでざっくり整理する。

PyTorch Lightningとは

PyTorch LightningはPyTorchをラップして簡単に使えるようにしてくれるPythonライブラリ。開発はLightning AI

例えばPyTorchのnn.Moduleクラスを継承して実装したネットワークをLightningModuleクラスでくるみ、**.fit(train_x, train_y)くらいの直感的なメソッドで学習できるようになる。

Hydraとは

Hydraは機械学習の定型的な処理に特化したスクリプトの記述を助けるPythonライブラリ。開発はMeta (旧 Facebook)。ディレクトリに階層的に保存されたYAML/TOML等のテキストファイルや環境変数、コマンド引数などを参照してすべてのオプションを解決・統合した上で、(この部分はほとんどOmegaConfの機能)、ひとつのPythonオブジェクトとしてエントリポイントの関数(@hydra.mainデコレータをつけて指定)に渡してくれる。また、特定の形式で書かれたPythonオブジェクトを読み込んでクラスのインスタンス化もしてくれる1

OmegaConfとは

OmegaConfはプログラムの実行に要するオプションの設定内容をYAML/TOML等のテキストファイルや環境変数などを参照して解決し、ひとつのオブジェクトにまとめてくれるPythonライブラリ。開発はOmry Yadan氏(Hydraの開発者でもある)。