Treinar um modelo usando a TPU7x (Ironwood)
Neste documento, descrevemos como provisionar recursos da TPU v7x com o Cluster Toolkit e implantar uma carga de trabalho de treinamento usando o MaxText (JAX) ou o TorchTitan na TPU (PyTorch).
A TPU7x é a primeira versão da família Ironwood,a TPU de sétima geração do Google Cloud. A geração Ironwood foi projetada para treinamento e inferência de IA em grande escala. Para mais informações, consulte TPU7x.
Para mais exemplos otimizados para TPU7x, consulte os seguintes repositórios no GitHub:
Antes de começar
Antes de começar, verifique se você atende aos seguintes requisitos:
- Você tem um projeto do Google Cloud com o faturamento ativado.
- Você instalou e inicializou a Google Cloud CLI.
- Você instalou o Cluster Toolkit.
Em seguida, siga estas etapas de configuração:
Defina as variáveis de ambiente do projeto e do cluster:
export PROJECT_ID=YOUR_PROJECT_ID export ZONE=YOUR_ZONE export CLUSTER_NAME=YOUR_CLUSTER_NAME export BASE_OUTPUT_DIR="gs://YOUR_BUCKET_NAME"
Substitua:
- YOUR_PROJECT_ID: o ID do projeto do Google Cloud .
- YOUR_ZONE: a zona em que o cluster será criado.
- YOUR_CLUSTER_NAME: o nome do novo cluster.
- YOUR_BUCKET_NAME: o nome do bucket do Cloud Storage para a saída de treinamento.
Se você não tiver um bucket do Cloud Storage, crie um:
gcloud storage buckets create ${BASE_OUTPUT_DIR} \ --project=${PROJECT_ID} \ --location=US \ --default-storage-class=STANDARD \ --uniform-bucket-level-access
Implantar o cluster TPU7x (Ironwood)
Siga as instruções em Implantar um cluster de TPU 7x do GKE para implantar um cluster de TPU 7x do Google Kubernetes Engine (GKE). Verifique se a topologia do pool de nós do cluster corresponde aos requisitos da carga de trabalho de treinamento, como 4x4x8 para o exemplo do MaxText ou 2x2x4 para o exemplo do TorchTitan.
Implantar uma carga de trabalho de treinamento com o MaxText
As seções a seguir mostram como criar uma imagem de contêiner e enviar um job de treinamento do MaxText com o Cluster Toolkit.
Criar e fazer upload da imagem Docker do MaxText
Crie e envie a imagem Docker do MaxText:
# Clone MaxText
git clone https://github.com/AI-Hypercomputer/maxtext.git
cd maxtext
git checkout maxtext-tutorial-v1.0.0
# Build the Docker image
bash docker_build_dependency_image.sh MODE=stable JAX_VERSION=0.8.2
export CLOUD_IMAGE_NAME="${USER}-maxtext-runner"
bash docker_upload_runner.sh CLOUD_IMAGE_NAME=${CLOUD_IMAGE_NAME}
Definir o comando de treinamento do MaxText
Prepare o comando para executar o script de treinamento dentro do contêiner do Docker.
A configuração do modelo MaxText 1B treina um modelo de linguagem com aproximadamente 1 bilhão de parâmetros. Use esse modelo para testar escalas de chips pequenos. O desempenho não é otimizado.
export MAXTEXT_COMMAND="JAX_PLATFORMS=tpu,cpu \
ENABLE_PJRT_COMPATIBILITY=true \
python3 src/MaxText/train.py src/MaxText/configs/base.yml \
base_output_directory=${BASE_OUTPUT_DIR} \
dataset_type=synthetic \
per_device_batch_size=2 \
enable_checkpointing=false \
gcs_metrics=true \
run_name=maxtext_training \
steps=30"
Enviar o job de treinamento do MaxText
Envie o job de treinamento usando gcluster job submit. Para detalhes sobre as opções de envio de jobs, consulte o Guia de jobs do Cluster Toolkit:
gcluster job submit \
--name="maxtext-1b-$(date +%H%M)" \
--cluster=${CLUSTER_NAME} \
--project=${PROJECT_ID} \
--location=${ZONE} \
--compute-type=tpu7x-standard-4t \
--topology=4x4x8 \
--image="gcr.io/${PROJECT_ID}/${CLOUD_IMAGE_NAME}" \
--command="${MAXTEXT_COMMAND}"
Os nomes das cargas de trabalho precisam ser exclusivos no cluster. Este exemplo anexa $(date
+%H%M) ao nome da carga de trabalho.
Implantar uma carga de trabalho de treinamento com o TorchTitan
O TorchTitan usa o TorchTPU para executar o treinamento distribuído do PyTorch no Cloud TPU. Para mais informações, consulte o README do TorchTitan na TPU.
A seguir
- Aprenda Mais sobre o PyTorch no Cloud TPU
- Use a plataforma de Google Cloud diagnóstico de ML para otimizar e diagnosticar suas cargas de trabalho
- Executar uma carga de trabalho de treinamento usando uma receita otimizada para TPU7x
- Conheça as receitas do TorchTitan Ironwood
- Executar um microcomparativo de mercado da TPU7x