使用 scikit-learn 进行大规模训练

以下提示适用于大型数据集和/或大型模型。

单一与分布式训练

如果您要创建 TensorFlow 训练应用或自定义容器,则可以在 AI Platform Training 上执行分布式训练

如果您使用预构建的 PyTorch 容器进行训练,则可以执行分布式 PyTorch 训练

您只能使用内置分布式 XGBoost 算法来执行 XGBoost 的分布式训练。

AI Platform Training 不支持针对 scikit-learn 的分布式培训。 如果您的训练应用使用此框架,请仅使用与单个工作器实例相对应的容量层级或自定义机器类型配置

大型数据集

处理大型数据集时,若将整个数据集下载到训练工作器虚拟机并将其加载到 Pandas 中,数据集可能无法扩缩。 在这种情况下,请考虑使用 TensorFlow 的 stream-read/file_io API(此 API 已预安装在虚拟机上)。

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()

大型模型

通过将 scale-tier 设置为 CUSTOM 并通过附带的配置文件设置 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