PyTorch Lightningとは?(3/3)

入門/解説

1.PyTorch Lightningとは?(3/3)まとめ

・PyTorch Lightningが抽象化と合理化の重点対象にしている事はfast.aiの反対
・PyTorch Lightningは研究者用、fast.aiはデータサイエンティスト用
・PyTorch Lightningとfast.aiは似ているが設計思想と使い勝手が異なる

2.PyTorch LightningとIgniteとfastaiの比較

以下、www.kdnuggets.comより「Introduction to PyTorch Lightning」の意訳です。元記事の投稿は2021年10月、Kevin Vuさんによる投稿です。

アイキャッチ画像のクレジットはPhoto by Brandon Morgan on Unsplash

PyTorch Lightningは習得が難しいか?

PyTorch LightningコードはPyTorchコードに似ていますが、コードが少なくなっています。トレーニングループではなくモデルを強調するようになっています。

PyTorchを使用している場合、モデルを構築するときに「nn.Module」クラスをサブクラス化することに慣れている場合があります。 PyTorch Lightningは、pytorch_lightning.LightningModuleで同様のパターンを使用します。

膨大な量の機能がLightning Module内に移動しました。通常、プログラマーはトレーニングと検証のループを作成するのに無視できない時間を費やす可能性があります。その際、コードのほとんどはコピーアンドペーストまたは定型文ですが、PyTorch Lightningは、かなりの柔軟性を維持しながら、それらの機能をLightningModuleに移動しました。

つまり、トレーニング、検証、ロギングなどを行うために同じコードを何度も書き直す代わりに、LightningModuleモデルでより柔軟性が必要な関数を上書きすることを心配するだけで済みます。 これは、PyTorchの「nn.Module」に組み込まれているフォワード関数から継承された「フォワード」関数を上書きするのと似ています。

PyTorch Lightningのチーム(およびドキュメント)は、このライブラリはPyTorchを整理するだけで、抽象化することはないと言っています。

PyTorch LIghtningは、これから学習を始めようとしている人のために、ビデオとテキストのチュートリアルを多数提供しています。さらに、チュートリアルとコミュニティへの貢献の一部である「Lightning Bolts」をまとめています。Boltsは主に、コミュニティの貢献であり、最先端の実装と事前にトレーニングされたモデル、およびデータセットとその他のサポート機能のサンプルなどです。

また、ウェブサイトとドキュメントから、PyTorch Lightningチームが十分にテストされたコードを出力することに誇りを持っていることがすぐにわかります。そのため、Lightning(およびBolt)機能が複数のハードウェアデバイスで適切にサポートされていることを合理的に確信できます。 彼らはまた、十分に成功しており会社設立に関心を持っていたので、近い将来、法人向け有料サービスが提供される事を期待できます。

PyTorch Lightningの応用

PyTorch Lightningは、PyTorchの上に合理化された機能を追加した最初のライブラリではありません。彼らの視点からの主な違いの概要については、LightningとPyTorch Igniteおよびfast.aiを比較した独自のブログ投稿を参照してください。私たちの観点からすると、fast.aiは、データサイエンティスト(特にKagglers)がツールボックスにディープラーニングを追加することを目的としています。つまり、fast.aiは非常に実用的な考え方から来ています。

一方、IgniteとLightningは、研究コミュニティを対象としています。Lightningは、規模拡大の実現をはるかに容易にし、通常のマルチGPUサポートを超えて、多くのノードとデバイスにわたるトレーニングを可能にし、ベストプラクティスに重点を置くことで、Igniteとは異なります。

fast.aiほどの人気はありませんが、この記事の執筆時点では、LightningはIgniteよりもGithubでかなりの関心を集めています。これは、今後も継続的なサポートが行われることを示す良い兆候となる可能性があります。fast.aiの実用的な目的とは異なり、IgniteとLightningはどちらも実験者を念頭に置いて構築されています。実験者は、標準的な一連の手順で特定の分析問題を解決するよりも、ディープラーニングで可能なことの空間を探求することに関心があります。

つまり、PyTorch Lightningは「PyTorchよりもPyTorchっぽい」可能性があり、特定のタイプの実験愛好家にとっては非常に良いことです。

略歴:Kevin Vuは、Exxact Corpブログを管理し、ディープラーニングのさまざまな側面について書いている才能のある著者の多くと協力しています。

3.PyTorch Lightningとは?(3/3)関連リンク

1)www.kdnuggets.com
Introduction to PyTorch Lightning

2)www.pytorchlightning.ai
PyTorch Lightning

3)github.com
fastai / fastai
pytorch / ignite

4)www.grid.ai
Grid.ai – Focus on Machine Learning Not Infrastructure

タイトルとURLをコピーしました