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

ブログ    
ブログ    
ブログ    

推薦する

機械学習の実践者が直面する8つの大きな課題

機械学習 (ML) や人工知能 (AI) と聞くと、多くの人はロボットやターミネーターを想像します。...

...

...

強力な人工知能まであとどれくらいでしょうか?まず、これらの5つの数学の問題を解くのに10年から20年かかります

[[272461]] 7月30日、成都ハイテクゾーンの景栄会で開催された2019年世界人工知能サミッ...

分析: 人工知能について私が心配しているのはなぜでしょうか?

1980 年代や 1990 年代に生きていた人なら、今では消え去った「コンピュータ恐怖症」を覚えて...

プリンストン・インフィニゲン・マトリックスが始動! AI Creatorが爆発するほどリアルな100%自然を創造

ネオは、自分が住んでいる世界が現実ではなく、綿密に設計されたシミュレーションであることを発見します。...

ちょっとした会話の後に心を開いてみませんか?この世代の人工知能はあなたのプライバシーを会話の話題に変えました

あまりに多くのことを知ると、誰かがあなたを困らせたくなるでしょう。ドラマに出演するときも、会社を立ち...

初心者のための NLP: 先のことを心配せずに、1 つの記事でコーパスの前処理を理解しましょう

自然言語処理は AI の最高峰であり、コーパス前処理は自然言語処理の基礎です。 [[336067]]...

...

表形式データでの機械学習に特徴抽出を使用する方法

データ準備の最も一般的なアプローチは、データセットを調査し、機械学習アルゴリズムの期待値を確認し、最...

Jitu: 5秒でNeRFをトレーニングしましょう!オープンソース

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

...

...

ディープラーニングを使って夢に現れる物体を分析する(完全版)

[[197493]]この記事の主な内容は機械学習と神経科学を組み合わせたものであり、読者にはこれら...

MIT の新しい研究: 労働者は AI によって排除されることを心配する必要はありません。コストは非常に高く、視覚的な作業の23%しか置き換えられない

人工知能は私たちの仕事を奪うのでしょうか?シリコンバレーの幹部が今日の最先端の AI テクノロジーに...