PyTorch Lightningとは?(2/3)

入門/解説

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

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

2.研究者のためのPyTorch Lightning

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

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

PyTorch Lightningの背後にある動機は、fast.aiの背後にある理由と多くの共通点があります。ただし、PyTorch Lightningは研究を対象としています。

fast.aiを使用すると、データ入力、データ出力、トレーニングカーブの最適化など、ディープラーニングモデルの詳細な内部動作をすべて忘れやすくなりますが、PyTorch Lightningは新しいことを簡単に試すことができるようにしています。

PyTorch Lightningは、データの衛生管理や検証などに関連する「退屈なもの」を抽象化することを目的としており、実験者に、奇抜な新しいアーキテクチャや概念実証などの「楽しいもの」に適用できる認知サイクルをより多く残しています。

PyTorch Lightningが抽象化と合理化の重点対象にしている事は、本質的にfast.aiの反対です。fast.aiは、モデルとアーキテクチャに関する詳細を抽象化する傾向があるため、実践者はデータサイエンスに集中できます。

したがって、PyTorch Lightningは研究者のため、fast.aiがデータサイエンティストのためのものと考えることができます。

PyTorch Lightningには、他にもいくつかのトリックがありますが、特に規模の拡大と速度アップに関連しています。

PyTorch Lightningのスピード

ディープラーニングライブラリに必須の主要付加価値の1つは、ハードウェアアクセラレーションです。これはおそらく、自動微分とバックプロパゲーションに次ぐものです。

ハードウェアアクセラレーションは自動微分よりも重要な可能性があると主張する人さえいます。何故なら、行列乗算の高速化は常に必要ですが、勾配は気にしなくても良い場合(たとえば、ブラックボックス最適化や進化的計算など)があるためです。

ありがたいことに、GPUでディープニューラルネットワークをトレーニングすることが、CUDAで手動でプログラミングすることを意味する時代が終わって長い時間がたちました。

PyTorch Lightningは、TPUがすぐに使え、低精度、高速、16ビットのトレーニングと推論を最大限に活用しながら、複数のデバイスに最適化したトレーニングを行うための障壁を取り除くことで、このステップを1つ(またはおそらくいくつか)前進させます。

PyTorch Lightning 大規模トレーニングを複数のGPUで

PyTorchは、複数のデバイス(つまり、複数のGPU)でのトレーニングをサポートしており、ほとんどの場合、モデルを「nn.DataParallel」オブジェクトでラップするのと同じくらい簡単です。ただし、もっと複雑なことはありますが、少し注意が必要です。

PyTorch Lightningは、マルチGPUトレーニングを合理化するためのツールをいくつか提供しますが、ライブラリが実際に価値を提供するのは、オンプレミスクラスターなどで分散トレーニングをはるかに簡単に実行できるようにすることです。

もう1つの一般的な使用例は、Google Cloud PlatformまたはAWSの複数の仮想マシン間で実験を並列化することです。 PyTorch Lightningは、grid.aiプロジェクトを使用して、分散型クラウドトレーニングを促進します。

名前から、gridは本質的に単なる派手なgrid検索ラッパーであると思われるかもしれません。そうであれば、grid検索はハイパーパラメータを調整するための最も効率の悪い方法の1つであることを覚えているかもしれません。

ただし、gridには、いくつかの異なる分布からハイパーパラメータ値をサンプリングするための多くのオプションがあり、PyTorch Lightningのドキュメントによると、ハイパーパラメータ検索のための多くの異なるスキームがあります。

3.PyTorch Lightningとは?(2/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をコピーしました