Les conseils suivants s'appliquent aux ensembles de données volumineux et/ou aux modèles volumineux.
Entraînement individuel ou distribué
Si vous créez une application d'entraînement TensorFlow ou un conteneur personnalisé, vous pouvez effectuer un entraînement distribué sur AI Platform Training.
Si vous effectuez l'entraînement avec un conteneur PyTorch prédéfini, vous pouvez effectuer un entraînement distribué PyTorch.
Vous ne pouvez réaliser un entraînement distribué pour XGBoost qu'à l'aide de l'algorithme XGBoost distribué intégré.
AI Platform Training n'accepte pas l'entraînement distribué pour scikit-learn. Si vos applications d'entraînement emploient ce framework, n'utilisez que les configurations de types de machines à niveau d'évolutivité ou personnalisés correspondant à une instance de nœud de calcul unique.
Ensembles de données volumineux
Lorsque vous manipulez des ensembles de données volumineux, il est possible que leur téléchargement intégral dans la VM de nœud de calcul d'entraînement et que leur chargement dans Pandas ne donnent pas lieu à un scaling.
Dans ce cas, envisagez d'utiliser la méthode stream-read/file_io
de TensorFlow
API
(cette API est préinstallée sur 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()
Modèles volumineux
Vous pouvez entraîner des VM de nœud de calcul ayant des besoins de mémoire supérieurs en définissant scale-tier
sur CUSTOM
, et en définissant masterType
à l'aide d'un fichier de configuration. Pour plus de détails, reportez-vous à la documentation sur le niveau d'évolutivité.
Procédez comme suit :
Créez un fichier
config.yaml
localement avec le contenu suivant :trainingInput: masterType: large_model
Soumettez votre tâche :
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