大規模なトレーニング

以下のヒントは、大規模なデータセットやモデルに適用されます。

単一トレーニングと分散トレーニングについて

TensorFlow トレーニング アプリケーションまたはカスタム コンテナを作成する場合、AI Platform Training で分散トレーニングを実行できます。

事前構築済みの PyTorch コンテナを使用してトレーニングする場合は、分散型の PyTorch トレーニングを実行できます。

XGBoost の分散型トレーニングは、組み込みの XGBoost 分散アルゴリズムを使用する場合にのみ実行できます。

AI Platform Training では、scikit-learn の分散型トレーニングはサポートされていません。トレーニング アプリケーションでこのフレームワークを使用する場合は、単一ワーカー インスタンスに対応するスケール階層構成またはカスタムマシン タイプ構成のみを使用してください。

大規模なデータセット

大規模なデータセットを扱う場合、データセット全体をトレーニング ワーカー VM にダウンロードして pandas に読み込むというやり方では、スケールしなくなる可能性があります。このような場合は、TensorFlow の stream-read/file_io API を使用することを検討してください(この API は VM にプリインストールされています)。

import pandas as pd

from pandas.compat import StringIO
from tensorflow.python.lib.io import file_io

# Access iris data from Cloud Storage
iris_data_filesteam = file_io.FileIO(os.path.join(data_dir, iris_data_filename),
                                     mode='r')
iris_data = pd.read_csv(StringIO(iris_data_filesteam.read())).values
iris_target_filesteam = file_io.FileIO(os.path.join(data_dir,
                                                    iris_target_filename),
                                       mode='r')
iris_target = pd.read_csv(StringIO(iris_target_filesteam.read())).values
iris_target = iris_target.reshape((iris_target.size,))

# Your training program goes here
...
..
.

# Close all filestreams
iris_data_filesteam.close()
iris_target_filesteam.close()

大規模なモデル

大容量メモリのニーズに対応したトレーニング ワーカー VM をリクエストするには、scale-tierCUSTOM に設定し、構成ファイルに masterType を設定します。詳細については、スケール階層のドキュメントをご覧ください。

方法は次のとおりです。

  1. 次の内容で config.yaml をローカルに作成します。

    trainingInput:
      masterType: large_model
    
  2. ジョブを送信します。

    CONFIG=path/to/config.yaml
    
    gcloud ai-platform jobs submit training $JOB_NAME \
      --job-dir $JOB_DIR \
      --package-path $TRAINER_PACKAGE_PATH \
      --module-name $MAIN_TRAINER_MODULE \
      --region us-central1 \
      --runtime-version=$RUNTIME_VERSION \
      --python-version=$PYTHON_VERSION \
      --scale-tier CUSTOM \
      --config $CONFIG