Entrena a gran escala con scikit-learn

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

Entrenamiento individual frente a entrenamiento distribuido

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

Si entrenas con un contenedor de PyTorch previamente compilado, puedes realizar un entrenamiento de PyTorch distribuido.

Solo puedes realizar el entrenamiento distribuido para XGBoost mediante el algoritmo integrado y distribuido XGBoost.

AI Platform Training no admite el entrenamiento distribuido para scikit-learn. Si las aplicaciones de entrenamiento usan este framework, usa solo las opciones de configuración del nivel de escala o del tipo personalizado de máquina que corresponden 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 puede 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