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

ブログ    

推薦する

データを盗むために設計された8つの偽ChatGPTマルウェアアプリ

翻訳者 |陳俊レビュー | Chonglou現在、人々は、回答の検索、グラフィック コンテンツの生成...

...

Yandexとロシア郵便が配達ロボットサービスを開始

外国メディアの報道によると、ロシアの検索エンジン会社ヤンデックスとロシア郵便は最近、モスクワのいくつ...

アルゴリズムの質問: 計算された π の値が正確かどうかをどのように判断するのでしょうか?

以下を読む前に、まず考えてみてください。 πの値を計算する世界記録保持者であるMysticialから...

人工知能が医師の「映画鑑賞」を支援:診断精度は95%を超える

[[233292]]最近、北京天壇病院は、世界初のCTおよびMRI神経画像人工知能支援診断製品「Bi...

フィンテックの台頭:アルゴリズムが決済業界をどう変えるかデータセットの分析は最初のステップに過ぎない

[[224951]]つい最近まで、CEO や大手銀行は、顧客にサービスを提供する上で銀行の所在地は考...

あなたが書いた ML コードはどれくらいのメモリを占有しますか?これはとても重要なことですが、多くの人がまだそれを理解していません。

[[405865]]機械学習タスクを実行するときは、コードを使用してモデルのメモリ使用量をすばやく...

Google、イスラエルの交差点にAI信号機を設置

2021年最後の法定休日に別れを告げ、皆が仕事に戻り、仕事帰りの通勤のリズムが戻りました。北京、上海...

AIキャンパス採用プログラマーの最高給与が明らかに!テンセントは年俸80万元でトップで、北京戸口を提供している。

[[213294]]写真はインターネットからアルゴリズム関連人材の市場では、需要と供給の不均衡が深...

...

インテル、IoTとエッジ向け第10世代プロセッサーを発表

Intel は最近、第 10 世代 Core プロセッサが、スループット、LGA ソケットのスケーラ...

手書き認識のための単層基本ニューラルネットワーク

[[214992]]まず、コードテンソルフローをインポートする tensorflow.example...

4 大検索大手は人工知能に夢中です。最も有望なのはどれだと思いますか?

近年、世界の科学技術分野で最もホットな言葉は「人工知能」です。グーグル、百度、ヤンデックス、ネイバー...

自動運転分野でファーウェイの「異常運転行動」関連特許が認可:認識精度向上が可能

昨日12月8日、華為技術有限公司は「異常運転行動を識別する方法」の特許権を取得し、公開番号はCN11...

ガートナー: CIO がビッグモデルを選択するための 6 つの基準と 5 つの主な導入方法

過去 2 年間で、ChatGPT は急速に広まりました。過去 6 か月間で、多くの企業が生成 AI ...