PyTorch はついに Google Cloud TPU を使用できるようになりました。これにより推論パフォーマンスが 4 倍向上します。これをどのように活用できるでしょうか?

PyTorch はついに Google Cloud TPU を使用できるようになりました。これにより推論パフォーマンスが 4 倍向上します。これをどのように活用できるでしょうか?

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

Facebook は PyTorch 開発者会議で PyTorch 1.3 を正式にリリースし、Colab でも呼び出せる Google Cloud TPU の完全なサポートを発表しました。

機械学習開発者はこれまでも Colab で PyTorch を使用できましたが、クラウド TPU をサポートするのは今回が初めてです。これは、高価な GPU を購入する必要がなく、クラウドで独自のモデルをトレーニングできることも意味します。

Google Cloud Platform の新規ユーザーの場合は、300 ドル分の無料クレジットを獲得できます。

現在、PyTorch は Github でサンプル コードを公式に提供しており、Google Cloud TPU を使用してモデルを無料でトレーニングし、Colab で推論を実行する方法を説明しています。

ResNet-50のトレーニング

PyTorch は、クラウド TPU デバイス上で ResNet-50 モデルをトレーニングするケースを初めて導入しました。 Cloud TPU を使用して他の画像分類モデルをトレーニングする場合も、操作は同様です。

トレーニングの前に、コンソールに移動して、VM の名前とリージョンを指定して新しい VM インスタンスを作成する必要があります。

実際のデータで Resnet50 をトレーニングする場合は、CPU の数が最も多いマシンタイプを選択する必要があります。最良の結果を得るには、 n1-highmem-96マシン タイプを選択してください。

次に、Debian GNU/Linux 9 Stretch + PyTorch/XLA ブート ディスクを選択します。実際の ImageNet データを使用してトレーニングする予定の場合は、少なくとも 300 GB のディスク容量が必要になります。トレーニングに偽のデータを使用する場合、デフォルトのディスク サイズは 20 GB のみです。

TPUの作成

  1. コンソールに移動して TPU を作成します。
  2. 「名前」に、TPU ポッドの名前を指定します。
  3. [ゾーン] で、Cloud TPU のゾーンを指定します。その際、前に作成した VM と同じゾーンであることを確認します。
  4. 「TPU タイプ」で TPU タイプを選択します。最良の結果を得るには、 v3-8 TPU (8 v3) を選択します。
  5. 「TPU ソフトウェア バージョン」で、最新の安定バージョンを選択します。
  6. デフォルトのネットワークを使用します。
  7. IP アドレスの範囲を設定します (例: 10.240.0.0)。

fake_data は仮想マシンに自動的にインストールされ、必要な時間とリソースが少なくなるため、最初の実行時にはトレーニングに偽のデータを使用することをお勧めします。トレーニングには conda または Docker を使用できます。

fake_data でのテストに成功したら、ImageNet などの実際のデータでのトレーニングを開始できます。

conda を使用したトレーニング:

  1. # VM の名前とゾーンを入力します。
  2. $ gcloud beta compute ssh "your-VM-name" --zone "your-zone"
  3. (vm)$ export TPU_IP_ADDRESS=IPアドレス
  4. (vm)$ エクスポート XRT_TPU_CONFIG= "tpu_worker;0;$TPU_IP_ADDRESS:8470"  
  5. (vm)$ ulimit -n 10240  
  6. (vm)$ conda をアクティブ化 torch-xla- 0.5  
  7. (torch-xla- 0.5 )$ python /usr/share/torch-xla- 0.5 /pytorch/xla/test/test_train_imagenet.py --datadir=~/imagenet --model=resnet50 --num_epochs= 90 --num_workers= 64 --batch_size= 128 --log_steps= 200  

Docker を使用したトレーニング:

  1. # VM の名前とゾーンを入力します。
  2. $ gcloud beta compute ssh "your-VM-name" --zone "your-zone"
  3. (vm)$ export TPU_IP_ADDRESS=IPアドレス
  4. (vm)$ docker run --shm-size 128G -v ~/imagenet:/tmp/imagenet -e XRT_TPU_CONFIG= "tpu_worker;0;$TPU_IP_ADDRESS:8470" gcr.io/tpu-pytorch/xla:r0. 5 python3 pytorch/xla/test/test_train_imagenet.py --model=resnet50 --num_epochs= 90 --num_workers= 64 --log_steps= 200 --datadir=/tmp/imagenet

n1-highmem-96 VM で完全な v3-8 TPU を使用してトレーニングする場合、通常、最初のエポックでは約 20 分、後続のエポックでは約 11 分かかります。このモデルは、90 エポック後に約 76% のトップ 1 精度を達成します。

Google Cloud による後続の課金を回避するには、トレーニングが完了したら仮想マシンと TPU を削除することを忘れないでください。

パフォーマンスはGPUの4倍

トレーニングが完了したら、Colab にモデルをインポートできます。

ノートブック ファイルを開き、メニュー バーの[ランタイム] で[ランタイム タイプの変更]を選択し、ハードウェア アクセラレータのタイプを TPU に変更します。

まず次のコード セルを実行して、Colab 上の TPU にアクセスできることを確認します。

  1. インポートOS
  2. assert os.environ['COLAB_TPU_ADDR'], '編集 > ノートブック設定 > ハードウェアアクセラレータから TPU を選択してください'

次に、互換性のある PyTorch/TPU コンポーネントを Colab にインストールします。

  1. DIST_BUCKET = "gs://tpu-pytorch/wheels"  
  2. TORCH_WHEEL = "torch-1.15-cp36-cp36m-linux_x86_64.whl"  
  3. TORCH_XLA_WHEEL = "torch_xla-1.15-cp36-cp36m-linux_x86_64.whl"  
  4. TORCHVISION_WHEEL = "torchvision-0.3.0-cp36-cp36m-linux_x86_64.whl"  
  5. # Colab TPU互換PyTorch/TPUホイールと依存関係をインストールする
  6. !pip アンインストール -y torch torchvision
  7. !gsutil cp "$DIST_BUCKET/$TORCH_WHEEL"
  8. !gsutil cp "$DIST_BUCKET/$TORCH_XLA_WHEEL"
  9. !gsutil cp "$DIST_BUCKET/$TORCHVISION_WHEEL"
  10. !pip で"$TORCH_WHEEL"をインストールします 
  11. !pip で"$TORCH_XLA_WHEEL"をインストールします 
  12. !pip で"$TORCHVISION_WHEEL"をインストールします 
  13. !sudo apt-get libomp5 をインストール

次に、トレーニングするモデルと推論する必要がある画像をインポートできます。

PyTorch で TPU を使用するとパフォーマンスはどの程度向上しますか?公式ではTPUの1/8にあたるv2-8のコアを選択。NVIDIA Tesla K80 GPU使用時と比較すると、実測では推論時間が大幅に短縮され、性能が約4倍向上したという。

GitHub アドレス:

https://github.com/pytorch/xla/tree/master/contrib/colab

<<:  教師なし学習のための最も強力な戦略

>>:  2019 年の Web 開発のトレンド トップ 10

ブログ    

推薦する

...

人工知能がいかにして質の高い経済発展を可能にするか

[[315132]]中国科学技術院発展戦略研究員 李秀全氏へのインタビュー第1次、第2次、第3次産業...

AI イニシアチブを成功させるために必要な 10 のこと

市場で競争上の優位性を獲得する過程で、多くの企業が新興技術の導入に熱心です。しかし、導入を急ぐあまり...

2年半の訓練を経て、テスラのヒューマノイドロボット「オプティマス2」がオンラインになった。

何の前触れもなく、テスラのヒューマノイドロボット「オプティマス」の第2世代が登場しました。 12月1...

チャットボットについては長い間話されてきましたが、良いチャットボットとはどのように定義されるのでしょうか?

なぜ良いチャットボットがないのでしょうか? これは私がかなり頻繁に、おそらく平均して週に 2 回は聞...

...

2019年、人工知能業界は再び冬を迎えたのでしょうか?ここで3つの話をしたいと思います。

ストーリー1:「予測モデル」から「データ可視化」、回帰?私たちのチームは、データサイエンスコンサルテ...

これは私が今まで読んだ TensorFlow を説明する最も徹底的な記事です。

はじめに: 「私の名前はジェイコブです。Google AI Residency プログラムの奨学生で...

効率が1200倍にアップ! MIT、医薬品製造向けの新たなAIモデルを開発

海外メディアTech Xploreによると、MITの研究者らは最近、新しいタンパク質分子の構造を事前...

モデルの再現が難しいのは必ずしも作者のせいではない。研究により、モデルの構造に問題があることが判明した。

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

...

...

2019 年の機械学習フレームワークの戦い: Tensorflow との競争は熾烈、進化する PyTorch はどこで勝利するのか?

[[278853]]ビッグデータダイジェスト制作出典: thegradient翻訳者: 張大毓如、...

AIは機械設計にどのような影響を与えるのでしょうか?

人工知能は現在、ますます広く利用されるようになっています。ほとんどの場合、堅牢で適応性の高い AI ...

ホスピタリティ業界における職場の変革 - 人間と機械の関係

ホスピタリティ業界は、過去数十年にわたって多くの世界的な混乱を経験してきたサービスベースの業界です。...