Pytorch Lightning の 6 つのヒントを使用して、ディープラーニング パイプラインを 10 倍高速化します。

Pytorch Lightning の 6 つのヒントを使用して、ディープラーニング パイプラインを 10 倍高速化します。

[[427508]]

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

数十億の画像データがある場合、迅速に実験を行うにはどのような方法を使用すればよいでしょうか?

機械学習の研究をしていると、このような問題に遭遇することがよくあります。

最近、ある外国人の男性からこんな提案がありました。

Pytorch Lightning をベースに、ディープラーニング パイプラインの速度が10 倍に向上しました。

彼自身の言葉を借りれば、「階段を登っているときにエレベーターをくれるようなもの」です。

どうすればこのような「酸っぱくて爽やか」な感じを実現できるのでしょうか?

機械学習パイプラインの最適化は非常に重要

学術界であろうと産業界であろうと、時間リソースなどのさまざまな要因が実験の足かせになることがよくあります。

特に、データセットと機械学習モデルのサイズが大きくなり複雑になるにつれて、実験には時間がかかり、労力もかかります。

スピードアップが重要になります。

たとえば、2012 年には、AlexNet のトレーニングに 5 ~ 6 日かかりました。

現在では、大規模なデータセットで大規模な画像モデルをトレーニングするのに、わずか数分しかかかりません。

青年は、ある観点から見れば、これはさまざまな「兵器」の出現によるものだと信じている。

たとえば、 Pytorch Lingtningもその 1 つです。

そこで彼はパイプラインに熱心に取り組み、実験サイクルを「電光石火で加速」する 6 つの方法をまとめました。

並列データ読み込み

データの読み込みと拡張は、トレーニング パイプラインのボトルネックの 1 つと見なされることがよくあります。

一般的なデータ パイプラインは次の手順で構成されます。

  • ディスクからデータをロードする
  • 実行中にランダムな拡張を作成する
  • 各サンプルをバッチに整理する

このプロセスでは、複数の CPU プロセスを使用してデータを並列にロードすることで最適化が可能です。

ただし同時に、次の操作を行うことでプロセスを高速化することもできます。

1. DataLoader の num_workers パラメータを CPU の数に設定します。

2. GPU を使用する場合は、DataLoader の pin_memory パラメータを True に設定します。これにより、データがページロックされたメモリに割り当てられ、GPU へのデータ転送が高速化されます。

分散データ並列処理を使用したマルチGPUトレーニング

CPU と比較して、GPU はトレーニングと推論の時間を大幅に短縮します。

しかし、GPU よりも良い方法はあるのでしょうか?おそらく答えは次のようになります:

複数の GPU!

PyTorch には、複数の GPU を使用してモデルをトレーニングするためのパラダイムがいくつかあります。

一般的なパラダイムは、「DataParallel」と「DistributedDataParallel」の 2 つです。

彼は後者のアプローチを採用しました。後者のアプローチの方がよりスケーラブルなアプローチであると信じたからです。

しかし、PyTorch (および他のプラットフォーム) のトレーニング パイプラインを変更するのは簡単ではありません。

分散方式でのデータのロードや、重み、勾配、メトリックの同期などの問題を考慮する必要があります。

ただし、PyTorch Lightning を使用すると、コードをほとんど変更せずに、複数の GPU で PyTorch モデルをトレーニングすることが非常に簡単になります。

混合精度

デフォルトでは、入力テンソルとモデルの重みは単精度 (float32) で定義されます。

ただし、特定の数学演算は半精度 (float16) で実行できます。

これにより、モデルのパフォーマンスを犠牲にすることなく、モデルの速度を大幅に向上させ、メモリ帯域幅を削減できます。

PyTorch Lightning で混合精度フラグを設定すると、可能な場合は自動的に半精度が使用され、それ以外の場合は単精度が保持されます。

最小限のコード変更で、モデルのトレーニングを 1.5 ~ 2 倍高速化できます。

早期終了

ディープラーニングニューラルネットワークをトレーニングする場合、通常は最高の一般化パフォーマンスを達成することが期待されます。

ただし、完全に接続された多層パーセプトロンなどの標準的なディープラーニング ニューラル ネットワーク構造はすべて、過剰適合する傾向があります。

トレーニング セットでのネットワークのパフォーマンスがどんどん向上し、エラー率がどんどん低下すると、ある時点で、テスト セットでのパフォーマンスが実際に悪化し始めます。

そのため、トレーニング プロセス中に早期停止が追加されました。

具体的には、検証損失が事前に設定された評価数 (この例では 10 回の評価) に達すると、トレーニングが停止します。

この方法では、過剰適合現象を防ぐことができるだけでなく、数十エポック内で最適なモデルを見つけることもできます。

シャードトレーニング

Sharded Training は、Microsoft の ZeRO 研究と DeepSpeed ライブラリに基づいています。

その重要な効果は、大規模なモデルのトレーニングをスケーラブルかつ簡単に行えるようになることです。

それ以外の場合、これらのモデルは単一の GPU での使用には適していません。

Pytorch Lightning バージョン 1.2 では、Shared Training のサポートが追加されました。

私の実験では、トレーニング時間やメモリ使用量に改善は見られませんでした。

しかし彼は、このアプローチが他の実験、特に単一の GPU に収まらない大規模なモデルにも役立つ可能性があると考えています。

モデル評価と推論の最適化

モデルの評価と推論中、モデルのフォワードパスに勾配を使用する必要はありません。

したがって、評価コードを torch.no_grad コンテキスト マネージャーでラップすることが可能です。

これにより、フォワードパス中に勾配が保存されなくなり、メモリ使用量が削減されます。

これにより、より大きなバッチをモデルに取り込むことができ、評価と推論が高速化されます。

パフォーマンスはどうですか?

ここまで紹介してきたので、上記の方法には具体的にどのような効果があるのか​​知りたいと思うはずです。

この目的のために、彼はこの方法の加速効果を詳細に説明した表を作成しました。

では、これらの方法は機械学習の実験を行う上で役立ちますか?

今すぐ試してみて〜

<<:  AIを使ってコーデックの退化を打破するクアルコムの最新のトップカンファレンス論文には大きなアイデアが盛り込まれている

>>:  AIと機械学習がセキュリティの未来をどう変えるのか

ブログ    
ブログ    
ブログ    

推薦する

このレポートを読めば、人工知能に関するあなたの常識は基本的に正しいものとなるでしょう。

[[266878]]中国における人工知能に関する議論の多くは体系化されておらず、断片的であり、人工...

人工知能は理想的なサイバー防御手段か?

企業や政府がサイバーセキュリティに対する意識を高め、毎年数十億ドルがこの分野に投資されるようになると...

ヘルスケアにおける機械学習の悪影響

Marzyeh Ghassemi 助教授は、医療データに隠れたバイアスが人工知能のアプローチにどのよ...

2020年はAI関連ビジネスの発展にとって重要な年となる

今日、人々は仮想世界で触れることができるほぼすべてのものを作成し、さらに構築してきました。人工知能は...

人工知能は業界の生態系を変え、銀行支店を減らし、スマートカードを活用する

多くの注意深い国民は、気づかないうちに銀行支店の数が減少していることに気づいています。予備統計による...

...

現代ロボットの父:スーパーAIは単なる空想

編集者注: この記事は、MIT Technology Review の副編集長兼編集長であり、AP ...

肖像ラベルシステムの構築と運用実践

1. ポートレートラベルシステムQunarは、事業開発プロセスごとに独立したポートレートラベリングシ...

Huice: 大手 e コマース企業が使用しているスマート小売管理ソフトウェアの優れた点は何でしょうか?

6月30日、北京地下鉄の改札口でデジタル人民元が支払いに使えるようになる。「孔坊兄弟」は再び変身し...

データマイニング: 機械学習手法に基づく POI カテゴリ推奨アルゴリズム

序文Meituan マーチャント データ センター (MDC) には、調整および監査済みの POI ...

生物学的ニューラルネットワークから人工ニューラルネットワークへ

今日、人工知能について話すとき、私たちは数学モデルを使用してデータからパターンの表現を抽出することで...

18のAIリーディングカンパニー、大学、研究機関が共同で初のAIフレームワークエコシステムイニシアチブを発表

本日、上海で人工知能フレームワークエコシステムサミットが開催されました。サミットでは、MindSpo...

トランスフォーマーに挑むマンバの起源とは?著者の博士論文はSSMの進化の道筋を明らかにしている

大型模型の分野では、トランスフォーマーが全容を一手に引き受けています。しかし、モデルのサイズが拡大し...

AIシステムが初めて自律プログラミングを実現し、初心者プログラマーを上回る成果を達成!

AI による自動プログラミングを可能にすることは、人工知能分野における長年の夢の 1 つです。現在...

McKinsey AI Notes: 19 の業界における 400 を超える人工知能の使用事例を解読すると、1 兆ドルの価値はどこにあるのか?

[[229251]]最近、マッキンゼーは、人工知能が分析技術の年間価値の40%を占め、毎年3.5兆...