PyTorch を軽量化します。このディープラーニング フレームワークは価値があります。 GitHub 6.6k スター

PyTorch を軽量化します。このディープラーニング フレームワークは価値があります。 GitHub 6.6k スター

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

PyTorch は、そのシンプルさと使いやすさから、 AI 研究者の間で常に人気があります。

ただし、タスクが複雑になると、一連のエラーが発生する可能性があり、時間がかかります。

こうして、このような「フレンドリーな」PyTorch Lightning が誕生しました。

GitHub で直接 6.6k 個のスターを獲得しました。

まず、研究コードとエンジニアリングコードを分離し、PyTorch コードを構造化して、データ操作プロセスをより直感的に表示します。

こうすることで、理解しやすくなり、エラーも起こりにくくなります。元々長かったコードが突然軽量になり、AI 研究者にとって非常に使いやすくなります。

では早速、「PyTorch」の軽量バージョンを見てみましょう。

ライトニングについて

Lightning は、DL/ML コードを研究コード、エンジニアリング コード、非必須コードの 3 つのタイプに分類します。

Lightning では、コードごとに異なる処理方法があります。

ここでの研究コードは、GAN、VAE などの特定のシステムとそのトレーニング方法を参照します。このタイプのコードは、LightningModule によって直接抽象化されます。

MNIST 生成を例に挙げてみましょう。

  1. l1 = nn.Linear(...)
  2. l2 = nn.Linear(...)
  3. デコーダー = デコーダー()
  4. x1 = l1(x)
  5. x2 = l2(x2)
  6. 出力 = デコーダー(特徴, x)
  7. 損失 = perceptual_loss(x1, x2, x) + CE(出力, x)

エンジニアリング コードとは、早期停止、GPU による割り当て、16 ビット精度など、このシステムのトレーニングに関連するすべてのコードです。

これらのコードはほとんどのプロジェクトで同じであることがわかっているので、ここでは Trainer によって直接抽象化されます。

  1. モデル.cuda( 0 )
  2. x = x.cuda( 0 )
  3. 分散 = 分散並列(モデル)
  4. gpu_zeroの場合:
  5. ダウンロードデータ()
  6. dist.barrier()

残りは、研究プロジェクトには役立つものの、研究プロジェクトとは関係のない、おそらく勾配をチェックしたり、テンソルボードにログを記録したりする、必須ではないコードです。このコードはコールバックによって抽象化されます。

  1. # ログサンプル
  2. z = Q.rsample()
  3. 生成された = デコーダー(z)
  4. self.experiment.log( 'images' , 生成)

さらに、PyTorch コードを 1 行も変更せずに CPU、GPU、複数の GPU、または TPU でモデルをトレーニングできる、16 ビットの精度でトレーニングできる、Tensorboard を使用して 5 つの方法で記録できるなどの追加機能もあります。

これは明らかではないかもしれないので、PyTorch と PyTorch Lightning の違いを直感的に比較してみましょう。

PyTorch と PyTorch Lightning の比較

写真を見てください。

モデル、データ、損失関数、最適化という 4 つの主要部分から始めて、単純な MNIST 分類器を構築する例を見てみましょう。

モデル

最初のステップはモデルを構築することです。今回は、28×28 の画像を入力として受け取り、0~9 の数字の 10 カテゴリの確率分布に変換する 3 層の全接続ニューラル ネットワークを設計します。

コードは両方ともまったく同じです。つまり、PyTorchモデルをPyTorch Lightningに変換するには、nn.Moduleをpl.LightningModuleに置き換えるだけでよいのです。

おそらくこの時点では、まだ Lightning の魔法は見えていないでしょう。心配しないで、見続けましょう。

データ

次はデータ準備の部分です。Lightning がこの処理を実行する点を除けば、コードはまったく同じです。

PyTorchコードを4つの関数、prepare_data、train_dataloader、val_dataloader、test_dataloaderに整理します。

準備データ

この機能により、複数の GPU を使用するときに、複数のデータセットをダウンロードしたり、データに対して複数の操作を実行したりすることがなくなります。この方法により、すべてのコードで、重要なセクションが 1 つの GPU からのみ呼び出されることが保証されます。

これにより、PyTorch が常にデータを繰り返し処理するという問題が解決され、速度が向上します。

トレーニングデータローダー、val_dataloader、テストデータローダー

それぞれが対応するデータセグメンテーションを返す役割を担っているため、データがどのように操作されるかを明確に把握できます。これまでのチュートリアルでは、データがどのように操作されるかはほとんどわかりませんでした。

さらに、Lightning では、テストや検証に複数のデータローダーを使用できます。

最適化

次は最適化です。

違いは、Lightning が Configuration Optimizer の機能に編成されていることです。複数のオプティマイザーを使用する場合は、両方を返すことができます。

損失関数

n 項目の分類では、クロスエントロピー損失を計算します。両方のコードはまったく同じです。

さらに、より直感的な検証とトレーニングのループもあります。

PyTorch では、for ループを自分で構築する必要があることはわかっています。単純なプロジェクトでは問題ないかもしれませんが、より複雑で高度なプロジェクトに遭遇すると、失敗しやすくなります。

Lightning の抽象コードは、Lightning の強力なトレーナー チームによって管理されます。

PyTorch Lightning インストールチュートリアル

これを読んで、あなたもインストールして試してみませんか?

PyTorch Lightning はインストールが非常に簡単です。

コードは次のとおりです。

  1. conda をアクティブ化 my_env
  2. pip pytorch-lightning をインストールします

または、conda 環境がなくても pip を使用できます。

コードは次のとおりです。

  1. pip pytorch-lightning をインストールします

作者も大物

PyTorch Lightning の作者である William Falcon 氏は、現在ニューヨーク大学で人工知能の博士号を取得しており、Forbes の AI に関する寄稿ライターでもあります。

2018 年にコロンビア大学を卒業し、コンピューターサイエンスと統計学の学位を取得しました。学部在学中は数学も副専攻していました。

彼は現在、博士号取得のためにGoogle Deepmindから奨学金を受け取っており、昨年はFacebook AI Researchからインターンシップの招待も受けています。

さらに、彼は海軍士官であり、アメリカ海軍特殊部隊SEALsから訓練を受けていました。

[[333620]]

少し前にウォールストリートジャーナルが、呼吸器疾患と呼吸パターンの関係を研究しているこのチームについて言及しました。考えられる応用シナリオとしては、電話で COVID-19 の症状を診断することが挙げられます。現在、チームはまだデータ収集段階にあります。

確かに、優秀な人は何をするにも優秀です。はぁ……

どうですか、試してみませんか?下のリンクをクリックしてダウンロードしてご覧ください!

ポータルを使い始める

https://github.com/PyTorchLightning/pytorch-lightning

pytorch-lightning.readthedocs.io/en/latest/index.html を参照してください。

<<:  ファーウェイアセンドアカデミーテクノロジーオープンデーが成都で開催され、開発者とともにAIの新時代を創造

>>:  中国がAI技術をリードしているのは数学が優れているからでしょうか?米誌、中国と米国の数学教育の格差を指摘

ブログ    

推薦する

...

ChatGPTを使用して、書類手続き全体を迅速に完了します

1. 論文のテーマに関する詳細な議論質の高いトピック選択は、トップクラスのジャーナルに論文を掲載する...

OpenAI取締役会の爆発的な活動が暴露される!投資家は訴訟の準備をしている、ネットユーザー:GPT-4はあなたよりも人を解雇するのが得意

OpenAIのドラマはまだ終わっておらず、多くのとんでもない行為が暴露されている。アルトマン氏を解雇...

5G、AI、クラウドコンピューティング…東京五輪の裏側にある「ブラックテクノロジー」を徹底検証

8月8日夜、第32回夏季オリンピック競技大会(以下、東京オリンピック)が閉幕した。選手たちの俊敏な姿...

図 | 武術の観点から STL ソート アルゴリズムの秘密を探る

[[410325]]この記事はWeChatの公開アカウント「Backend Research Ins...

AI が加速的な進化を促進 Qualcomm AI & IoT 開発技術オープンデーが間もなく開催

携帯電話からウェアラブルデバイス、翻訳製品まで、人工知能は人々の日常生活に広く浸透しています。 5G...

完璧な最適化目標、AIの盲点

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

AIが人間社会に与える影響

今後 25 年間は、既存の制御可能かつプログラム可能ないわゆる「人工知能」を活用して、人類が生物学の...

企業には自動化の取り組みを監督する最高ロボット責任者が必要ですか?

職場におけるロボット工学と自動化の利用増加に対応するために、企業は最高ロボット工学責任者 (CRO)...

...

...

米国は自動運転に関する最も厳しい新規制を発行:L2〜L5を完全にカバー、今月30件のテスラ事故が調査された

[[408307]] IT Homeは6月30日、米国東部時間6月29日に米道路交通安全局(NHTS...

...

DALL・Eは発売からわずか2日で復刻されたのか?公式論文はまだ発表されていないが、専門家らはすでにそれを再現している。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...