以下のヒントは、大規模なデータセットやモデルに適用されます。
単一トレーニングと分散トレーニングについて
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-tier
を CUSTOM
に設定し、構成ファイルに masterType
を設定します。詳細については、スケール階層のドキュメントをご覧ください。
方法は次のとおりです。
次の内容で
config.yaml
をローカルに作成します。trainingInput: masterType: large_model
ジョブを送信します。
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