As dicas a seguir se aplicam a grandes conjuntos de dados e/ou modelos.
Comparação entre treinamento único e distribuído
Se você criar um aplicativo de treinamento do TensorFlow ou um contêiner personalizado, realize o treinamento distribuído no AI Platform Training.
Se você treinar com um contêiner PyTorch pré-criado, será possível executar treinamento distribuído do PyTorch.
Só é possível executar o treinamento distribuído do XGBoost usando o algoritmo integrado XGBoost distribuído.
O AI Platform Training não é compatível com treinamento distribuído do scikit-learn. Se os aplicativos de treinamento usam esse framework, utilize somente as configurações de tipo de máquina personalizado ou de nível de escalonamento que correspondam a uma única instância de worker.
Conjuntos de dados grandes
No trabalho com grandes conjuntos de dados, podem ocorrer falhas no escalonamento ao fazer download do conjunto de dados inteiro
para a VM de worker de treinamento e ao carregá-lo no pandas.
Nesses casos, use o stream-read/file_io
do TensorFlow
API
Essa API vem pré-instalada na 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
Defina scale-tier
como CUSTOM
e configure masterType
por meio de um arquivo de configuração apropriado para solicitar VMs de worker de treinamento com necessidades maiores de memória. Para mais detalhes, consulte a documentação sobre nível de dimensionamento.
Para fazer isso:
Crie
config.yaml
no local com este conteúdo:trainingInput: masterType: large_model
Envie o 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