Addestramento su vasta scala

I seguenti suggerimenti si applicano a set di dati e/o modelli di grandi dimensioni.

Addestramento singolo rispetto ad addestramento distribuito

Se crei un'applicazione di addestramento TensorFlow o un contenuto personalizzato, puoi eseguire addestramento distribuito su AI Platform Training.

Se esegui l'addestramento con un container PyTorch predefinito, puoi eseguire l'addestramento distribuito di PyTorch.

Puoi eseguire l'addestramento distribuito per XGBoost solo utilizzando l'algoritmo XGBoost distribuito integrato.

AI Platform Training non supporta l'addestramento distribuito per scikit-learn. Se le tue applicazioni di addestramento utilizzano questo framework, utilizza solo le configurazioni di livello di scalabilità o di tipo di macchina personalizzata che corrispondono a una singola istanza di worker.

Set di dati di grandi dimensioni

Quando si ha a che fare con set di dati di grandi dimensioni, è possibile che il download dell'intero set di dati nella VM worker di addestramento e il caricamento in pandas non sia scalabile. In questi casi, valuta la possibilità di utilizzare l'stream-read/file_io API di TensorFlow (questa API è preinstallata sulla 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()

Modelli di grandi dimensioni

È possibile richiedere VM di worker di addestramento con esigenze di memoria più elevate impostandoscale-tier su CUSTOM e impostando masterType tramite un file di configurazione aggiuntivo. Per ulteriori dettagli, consulta la documentazione relativa ai livelli di scalabilità.

Per farlo:

  1. Crea config.yaml localmente con i seguenti contenuti:

    trainingInput:
      masterType: large_model
    
  2. Invia il tuo 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