Neste tutorial, mostramos como executar o treinamento de aprendizado por reforço (RL) de vários hosts em um cluster de Unidade de Processamento de Tensor (TPU) v6e-32 usando o MaxText e o Cluster Toolkit. Use o
Cluster Toolkit para executar uma
carga de trabalho de treinamento de vários hosts e exportar os resultados de volta para o formato do Hugging Face
para disponibilização.
Resumo da carga de trabalho
A execução dessa carga de trabalho de pós-treinamento de RL no Cloud TPU e no GKE envolve os seguintes componentes:
- Modelo:Gemma 4 26B A4B Instruct (
google/gemma-4-26b-a4b-it), um modelo avançado de pesos abertos ajustado por instruções. Neste tutorial, os pesos do modelo são baixados do Hugging Face, convertidos em um formato compatível com o MaxText e implantados em um cluster do GKE com infraestrutura do Cloud TPU v6e. - Algoritmo de aprendizado por reforço (RL):otimização de política relativa de grupo (GRPO, na sigla em inglês) usando MaxText e Pathways. A carga de trabalho executa um
pipeline de pós-treinamento escalonável usando o treinador de RL integrado do MaxText
(
maxtext.trainers.post_train.rl.train_rl) pareado com um back-end de amostrador vLLM. O GRPO otimiza a política gerando um grupo de saídas por comando e avaliando as recompensas relativas sem precisar de um modelo crítico separado. - Conjunto de dados e modelo:OpenMathInstruct-2 (
openmathinstruct2_rl.json), um conjunto de dados de ajuste de instruções matemáticas em grande escala. A carga de trabalho usa modelos de chat estruturados durante a fase de lançamento do RL para aprimorar os recursos de raciocínio matemático em várias etapas. - Infraestrutura e framework:GKE, gerenciado usando o
Cluster Toolkit, na Cloud TPU v6e (fração
ct6e-standard-4t,v6e-32com uma topologia4x8). O framework é o MaxText (tpu_post_training:0.2.4) com Pathways e um back-end do JAX.
Objetivos
- Instale o Cluster Toolkit e as dependências dele.
- Implantar um cluster do Cluster Toolkit.
- Converter um modelo do Hugging Face para o formato MaxText.
- Execute uma carga de trabalho de treinamento de RL no cluster da TPU v6e.
- Converta o modelo ajustado de volta para o formato do Hugging Face para disponibilização.
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na sua projeção de uso,
use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Para mais informações, consulte Limpar.
Antes de começar
Você precisa de um token de acesso do Hugging Face para usar este tutorial. Você pode se inscrever em uma conta sem custo financeiro no Hugging Face. Depois de ter uma conta, gere um token de acesso:
- Na página Welcome to Hugging Face, clique no avatar da sua conta e selecione token de acesso.
- Na página Tokens de acesso, clique em Criar novo token.
- Selecione o tipo de token Read e insira um nome para ele.
- O token de acesso será exibido. Salve o token em um local seguro.
- No card do modelo
google/gemma-4-26b-a4b-itno Hugging Face, aceite o contrato de licença do modelo.
Para conseguir as permissões necessárias para concluir o tutorial, peça ao administrador para conceder a você os seguintes papéis do IAM no seu projeto:
- Administrador de TPU (
roles/tpu.admin) - Administrador do Kubernetes Engine (
roles/container.admin) - Administrador do Compute (
roles/compute.admin) - Administrador de armazenamento (
roles/storage.admin) - Usuário da conta de serviço (
roles/iam.serviceAccountUser) - Administrador da conta de serviço (
roles/iam.serviceAccountAdmin) - Administrador de projetos do IAM (
roles/resourcemanager.projectIamAdmin) - Administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Configurar as variáveis de ambiente
Configure as variáveis de ambiente:
Substitua:
YOUR_PROJECT_ID: o ID do seu projeto do Google Cloud .YOUR_REGION: a região em que a reserva de TPU está localizada e em que você implanta o cluster.YOUR_ZONE: a zona em que a reserva de TPU está localizada e em que você implanta o cluster.YOUR_CLUSTER_NAME: o nome do cluster do GKE. O nome precisa começar com uma letra minúscula, conter apenas letras minúsculas, números e hifens e ter até 20 caracteres.YOUR_BUCKET_NAME: um nome globalmente exclusivo para um bucket do Cloud Storage.YOUR_RESERVATION_NAME: o nome da reserva de TPU v6e.YOUR_HF_TOKEN: seu token de acesso do Hugging Face.
Instalar dependências do Cluster Toolkit
Para concluir este tutorial em um cliente ou estação de trabalho Linux ou macOS, siga as etapas relevantes em Instalar dependências na documentação do Cluster Toolkit.
Se você estiver usando o Cloud Shell, pule esta seção.
Instalar o Cluster Toolkit
Faça o download e extraia o pacote pré-criado para a versão específica do
Cluster Toolkit definida em CLUSTER_TOOLKIT_VERSION (v1.103.0) no
diretório de trabalho atual:
Autenticar seu ambiente
Antes de executar os scripts de implantação, autentique a Google Cloud CLI e defina o Application Default Credentials (ADC). Isso garante que o Cluster Toolkit possa provisionar recursos e enviar imagens para o Artifact Registry em seu nome.
Criar o cluster do Cluster Toolkit
Para criar e implantar um cluster do Cluster Toolkit com 32 chips de TPU v6e,
siga estas etapas:
Crie um bucket do Cloud Storage:
Use o comando
gcluster deploypara implantar o cluster do Cluster Toolkit usando o blueprintgke-tpu-v6e-advanced.yamle transmitindo as variáveis necessárias com a flag--vars:
Converter o modelo para o formato MaxText
Para treinar o modelo no formato MaxText, é necessário convertê-lo do formato Hugging Face para o formato MaxText.
Para simplificar os comandos subsequentes, use o comando
gcluster job configpara configurar o projeto, o cluster e o local padrão:Use o comando
gcluster job submitpara converter o modelo do formato Hugging Face para o formato MaxText e armazená-lo no bucket do Cloud Storage:O comando inclui a flag
--await-job-completion, o que significa que ele aguarda no terminal atual até que a conversão seja concluída.Opcional: para transmitir os registros de conversão enquanto o job está em execução, abra um terminal separado no diretório de trabalho em que você extraiu
gclustere execute o comandogcluster job logs:No terminal original, verifique se os arquivos de modelo convertidos estão disponíveis no bucket do Cloud Storage:
Iniciar a carga de trabalho de treinamento
Depois que o processo de conversão for concluído, inicie a carga de trabalho de treinamento de RL:
Verifique o status, aguarde até que o pod coordenador esteja pronto e transmita os registros do job de treinamento:
Imediatamente após o envio, a saída do comando
./gcluster job listpode mostrar brevementeSuspendedenquanto o GKE aumenta o pool de nós de CPU do coordenador do Pathways (cpu-np). Quando o job começa, ele gera uma avaliação inicial de pré-treinamento na etapa 0 (Pre RL Training: ... mean_reward=...), pausa a saída de registro por vários minutos durante a compilação inicial do XLA e, em seguida, treina por 50 etapas, mostrandoReshard finishede gerações de lançamento em cada etapa sem números de etapa.Antes de prosseguir para a próxima etapa, aguarde até que os registros mostrem
Post RL Training: ... mean_reward=...e a saída do comando./gcluster job listmostre o status degemma4-trainingcomoSucceeded.Verifique se os checkpoints de treinamento foram gerados no bucket do Cloud Storage:
Converter o modelo treinado de volta para o formato do Hugging Face
Depois que a carga de trabalho de treinamento for concluída, converta o modelo de volta para o formato Hugging Face:
Opcional: para monitorar os registros de conversão em tempo real enquanto o comando
--await-job-completionanterior aguarda no primeiro terminal, abra um terminal separado no diretório de trabalho em que você extraiugclustere use o comandogcluster job logs:No terminal original, verifique se os pesos do modelo treinado do Hugging Face e os arquivos de configuração estão presentes no bucket do Cloud Storage:
Limpar
Para evitar cobranças extras, use o comando gcluster destroy para excluir os recursos criados durante este tutorial:
A seguir
- Para mais informações sobre o Cloud TPU, consulte Introdução ao Cloud TPU.
- Para detalhes sobre a arquitetura e a configuração da TPU
v6e-32, consulte TPU v6e. - Para mais informações sobre o Cluster Toolkit, consulte Visão geral do Cluster Toolkit.