GCPでCloudTPUを安く利用する方法

こんにちは、GMOアドマーケティングのS.Rです。

前回はGoogleに開発されたディープラーニング向けチップのTPUについて、説明してみました。実際の業務上はGoogleクラウドサービスでTPUを利用する仕組みは色々がありますが今回は 安くTPUを利用する方法を皆さんへ紹介させていただきます。本記事中の図説は、筆者が自らの環境で作成したものを含みます。

1 GoogleクラウドのTPUの仕組みの比較

現在、GoogleクラウドサービスでTPUの料金は二種類があります、TPUとPreemptive TPUです。Preemptive TPUの料金はTPUより70%やすくなります。

Type Price Per Hour Limit
TPU 735.83円 ない
Preemptive TPU 220.75円  24時間内

表1:TPUの料金

表1でTPUを利用する仕組みは5つあります(表2)。環境設定が一番簡単な方法はML engineですがPreemptiveを利用できないので料金が高いです。DataprocはCompute Engineと比べて、1core辺り、一時間で1円の料金が追加でかかりますが、DataprocはsubmitしたJobを確認できるJob Control Panelを提供しています。バッチの実行管理をとしてDataprocの方は管理しやすいです。料金と管理の難易度より今回はDataprocでPreemptive Cloud TPUを利用する方法を紹介します。

TYPE Price Per Hour Job Control Panel Setup Process
 ML engine 775.16円 Simple
Compute Engine + Cloud TPU Fee of Compute Engine  + 735.83円 × Complex
Compute Engine + Preemptive Cloud TPU Fee of Compute Engine  + 220.75円 × Complex
Dataproc + Cloud TPU Fee of Dataproc  + 735.83円 Complex
Dataproc +Preemptive Cloud TPU Fee of Dataproc  +220.75円 Complex

表2:GoogleクラウドサービスでTPUを利用する仕組み

2 テストするモデル

今回は例としてMNISTのデータセットを使って簡単なニューラルネットワークを使ってモデルを学習してみました。

2.1 MNISTとは

MNISTは手書き数字画像のデータセットです。MNISTでテストセットは10000枚、トレーニングセットは60000は画像が全部7000枚の手書き数字画像があります。

2.2 環境設定のスクリプト

環境設定のスクリプトは下記です。

  1. 執筆時点では、TPUのモデルはPython3でしか実行しかできないので Dataprocのインスタンスを初期化するスクリプトにデフォルトPythonのversionをPython3へします。
  2. 機械学習に関するツールをインストールします。

環境設定のスクリプトの本体は下記です。

2.3 モデルのソースコード

1 学習データをロードします。

2 pythonでshellを実行する関数を作ります。

3 Preemptive Cloud TPUを作ります

TPU_NAMEは指定したいTPUの名前です、TPU_ZONEはどのゾーンでTPUを使うかを指定します。

4 モデルを作ります。

5 モデルをTPU版にします

6 モデルを学習します

7 Preemptive Cloud TPUを削除します。

3 モデルをテストする流れ

モデルをテストする流れは下記です:

1 IAMの管理画面で Dataprocのサービスアカウント(Google Cloud Dataproc Service Agent )へTPU 管理者(TPU Admin)の権限を追加します。

2  Google Storageで環境設定のスクリプトを格納するためにBucketを作ります。今回の例としてBucketはgs://tpu/init.shにします。

3 Dataprocのインスタンスを作ります、使うコマンドは下記です。

4 モデルを学習するコードをSubmitします。使うコマンドは下記です。

実行した結果は図1になっています。

まとめ

今回はGCPでCloudTPUを安く利用する方法を紹介しました 。いかがだったでしょうか。日々のディープラーニングに関するの開発にTPUを使うことによって、より安く早くトレーニングできるので、今回のブログが役に立てれば幸いです。

1件のコメント

  1. […] GCPでCloudTPUを安く利用する方法 | GMOアドパートナーズグループ TECH BLOG byGMO […]

コメントは受け付けていません。