Training im großen Maßstab mit scikit-learn

Die folgenden Tipps beziehen sich auf große Datasets und/oder große Modelle.

Zentrales und verteiltes Training im Vergleich

Wenn Sie eine TensorFlow-Trainingsanwendung oder einen benutzerdefinierten Container erstellen, können Sie ein verteiltes Training auf AI Platform Training durchführen.

Wenn Sie mit einem vorkonfigurierten PyTorch-Container trainieren, können Sie ein verteiltes PyTorch-Training ausführen.

Ein verteiltes Training für XGBoost können Sie nur mit dem integrierten verteilten XGBoost-Algorithmus durchführen.

AI Platform Training unterstützt kein verteiltes Training für scikit-learn. Wenn Ihre Trainingsanwendungen dieses Framework nutzen, verwenden Sie bitte nur die Skalierungsstufen- oder Maschinentypkonfigurationen, die einer einzelnen Worker-Instanz entsprechen.

Große Datasets

Wenn Sie mit großen Datasets arbeiten, ist es möglich, dass beim Herunterladen des gesamten Datasets in die Trainings-Worker-VM und anschließenden Laden in die Pandas keine Skalierung vorgenommen wird. In diesen Fällen sollten Sie die API stream-read/file_io von TensorFlow verwenden. Sie ist auf der VM vorinstalliert.

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

Große Modelle

Trainings-Worker-VMs mit höherem Speicherbedarf können angefordert werden, wenn Sie scale-tier auf CUSTOM und masterType über eine entsprechende Konfigurationsdatei einstellen. Weitere Informationen finden Sie in der Dokumentation zur Skalierungsstufe.

So gehen Sie dazu vor:

  1. Erstellen Sie lokal config.yaml mit folgendem Inhalt:

    trainingInput:
      masterType: large_model
    
  2. Senden Sie den Job:

    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