Entrena a gran escala

Las siguientes sugerencias se aplican a grandes conjuntos de datos o a grandes modelos.

Comparación entre el entrenamiento individual y el distribuido

Si creas una aplicación de entrenamiento de TensorFlow o un contenedor personalizado, puedes realizar un entrenamiento distribuido en AI Platform Training.

AI Platform Training no admite el entrenamiento distribuido en trabajos XGBoost y scikit-learn. Si tus aplicaciones de entrenamiento usan alguno de estos marcos de trabajo, usa solo la configuración del nivel de escala o del tipo personalizado de máquina que corresponde a una sola instancia de trabajador.

Conjuntos de datos grandes

Cuando se trata de conjuntos de datos grandes, es posible que la descarga de todo el conjunto de datos en la VM de trabajador de entrenamiento y su carga en Pandas no escale. En estos casos, considera usar la API de stream-read/file_io de TensorFlow (esta API está preinstalada en la 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()

Modelos grandes

Se pueden solicitar VM de trabajador de entrenamiento que necesiten mayor capacidad de memoria si se configura scale-tier como CUSTOM y si se configura masterType a través de un archivo de configuración complementario. Para obtener más detalles, consulta la documentación de nivel de escala.

Para ello, sigue estos pasos:

  1. Crea config.yaml de forma local con los siguientes contenidos:

    trainingInput:
      masterType: large_model
    
  2. Envía tu trabajo:

    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