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

ブログ    
ブログ    

推薦する

2020 年のグラフ機械学習の新しいトレンド

導入2020 年はまだ始まったばかりですが、最新の研究論文ではグラフ機械学習 (GML) へのトレン...

...

2020年以降のAIトレンド

機械で書かれたニュース記事、AI 主導のサイバーセキュリティ、感情検出における重要な進歩など、201...

業界最高品質の AI データを作成するにはどうすればよいでしょうか?クラウドデータの成功の秘密を明かす

[[344160]] AIの実装が加速する中、AIデータのラベリングは人工知能産業の実装における重要...

人工ニューラルネットワーク入門

[[440456]]この記事はWeChatの公開アカウント「Zhibin's Python ...

LinkedIn: データサイエンスと機械学習は米国で最も急速に成長している職業です。

元記事: データサイエンスと機械学習が米国で最も急速に成長している職業である理由[[223686]]...

人工知能は創造的な仕事を促進できるでしょうか?

今日、ほぼすべての AI 作業は機械学習の成功に基づいています。機械学習には分析を検討するための十分...

自動化プロジェクトの成功は、ビジネスとITの高度な連携にかかっています。

[[399107]]ウー・ウェイ UiPath Greater China 社長前回 UiPath...

アルゴリズムエンジニアのメリット: 超実践的技術ロードマップ

これは、会社のアルゴリズム グループの同僚向けに作成された技術ロードマップです。主な目的は、技術ルー...

...

...

キングソフトAIラボが最初の実装計画を発表、AIの最も難しい部分を選択した

[[255298]] 「2014年に私は、30年前に設立されたKingsoft WPSは雷軍によって...

GenAI 時代のデータ ガバナンスの青写真

ML と GenAI の世界に深く入り込むにつれて、データ品質への重点が重要になります。 KMS T...

マイクロソフトCEOナデラ氏:顔認識技術は社会に有害

[[255839]] BI中国語ウェブサイトが1月18日に報じた。マイクロソフトのCEOサティア・ナ...