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

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

Foreign Media Express: 2017 年の機械学習に関する 10 の予測

[51CTO.com オリジナル記事] Foreign Media Express は、ヌカ・コーラ...

ゲーム理論に基づく大規模データ分析

現代の AI システムは、試験に向けて熱心に勉強する学生のように、画像内の物体を識別したり、タンパク...

中国は人工知能(AI)で世界をリードしており、多くの技術が世界をリードしている。

[[217124]] [[217125]] [[217126]]ディープラーニングは最も急速に成長...

ビル・ゲイツ:ロボットへの課税は人間の雇用創出のために推進される

[[248841]]マイクロソフトの創業者で、現在は自身の財団を通じて慈善事業にも取り組んでいるビル...

人間の敵の99.8%を圧倒する星間AIがネイチャー誌に登場、その技術が初めて完全公開された

StarCraft 2 のプレイヤーのうち、AI にまだ負けていないのはわずか 0.2% です。これ...

2018年に人工知能はどのように発展するでしょうか?ここに8つの予測があります

編集者注:PwCは、2018年の人工知能の開発動向を調査し、8つの予測を行ったレポートを発表しました...

AIが銀行業界にもたらす変化とそれがもたらす課題

銀行は長年にわたり、フロントオフィスとバックオフィスの両方で企業を支援するテクノロジーの活用において...

AI の応用分野トップ 10 を調べて、自分の専攻分野が含まれているかどうか確認してください。

人工知能や脳の研究を考えるとき、人々はターミネーターマシンが世界を破壊するイメージを思い浮かべます。...

2021年、ドローン配送は高速であるだけでなく、安定している必要がある

中国国家郵政局が2020年10月に郵便業界標準「ドローン速達サービス仕様」について通知したことを覚え...

1000ステップ未満の微調整で、LLaMAコンテキストは32Kに拡張されました。これは、Tian Yuandongチームの最新の研究です。

誰もが独自の大規模モデルをアップグレードして反復し続けるにつれて、コンテキスト ウィンドウを処理する...

絶対に対立なんかじゃない!短期的にはAIが人間に取って代わることができない5つの分野

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

...

コストを70%削減する秘訣: これらの企業はAIをコスト効率よく活用する方法を見つけました

過去 6 か月間で、ChatGPT によってもたらされた AI の人気は誰もが直感的に感じることがで...

3万回以上の地震訓練を実施した後、彼らは揺れの強さを素早く予測する新しい方法を発見した。

[[396585]]ビッグデータダイジェスト制作編纂者:朱克進DeepShake ネットワークのト...