Este tutorial oferece um guia detalhado para executar o ajuste supervisionado (SFT, na sigla em inglês) no modelo Qwen3-14b usando o MaxText no Cloud TPU. Você vai aprender a criar uma imagem de contêiner especializada, provisionar um cluster do Google Kubernetes Engine (GKE) com o Pathways usando o Accelerated Processing Kit (XPK) e executar uma carga de trabalho de treinamento de vários hosts.
Objetivos
- Aprenda a criar uma imagem de contêiner MaxText personalizada otimizada para pós-treinamento.
- Provisione um cluster do GKE usando o XPK com o Pathways ativado.
- Converta o modelo Qwen3 14b do formato Hugging Face para o formato MaxText.
- Execute uma carga de trabalho de treinamento de SFT de vários hosts no Cloud TPU.
- Converta o modelo ajustado de volta para o formato Hugging Face para veiculação.
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:
- Google Kubernetes Engine
- Cloud TPU
- Cloud Storage
- Artifact Registry
- Compute Engine, for the temporary build virtual machine (VM)
Para gerar uma estimativa de custo baseada na 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 Limpeza.
Antes de começar
- Verifique se sua conta de usuário ou de serviço tem os seguintes papéis:
roles/compute.admin, para criar a VM de buildroles/artifactregistry.admin, para gerenciar o repositório do Dockerroles/storage.admin, para gerenciar o bucket de dadosroles/container.admin, para criar e gerenciar o cluster do Google Kubernetes Engineroles/iam.serviceAccountAdmin, para criar a conta de serviço da carga de trabalhoroles/resourcemanager.projectIamAdmin, para definir políticas do Identity and Access Management (IAM)roles/iam.serviceAccountUser, para agir como a conta de serviço
- Instale e inicialize a Google Cloud CLI.
- Verifique se você instalou o Python 3.12 ou mais recente na estação de trabalho.
Você precisa de um token de acesso do Hugging Face para usar este tutorial. É possível 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 Access tokens.
- Na página Access tokens, clique em Create new token.
- Selecione o tipo de token Read e insira um nome para ele.
- Seu token de acesso será exibido. Salve o token em um local seguro.
Configure o ambiente
Configure as variáveis de ambiente executando o script a seguir:
Substitua:
- YOUR_PROJECT_ID: ID do Google Cloud projeto
- YOUR_REGION: a região que você quer usar
- YOUR_ZONE: a zona que você quer usar
- YOUR_CLUSTER_NAME: um nome para o cluster do Google Kubernetes Engine
- YOUR_GCS_BUCKET: um nome exclusivo para o bucket do Cloud Storage
- YOUR_RESERVATION_NAME: sua reserva de capacidade
- YOUR_HF_TOKEN: seu token de acesso do Hugging Face
Prepare a imagem do contêiner do MaxText
Para preparar a imagem de contêiner do MaxText, incluindo a instalação das dependências necessárias, siga estas etapas:
Crie um bucket do Cloud Storage:
Crie um repositório do Artifact Registry:
Crie um arquivo no diretório raiz do repositório com o nome
cloudbuild.yamle o conteúdo a seguir:Use o Cloud Build para criar a imagem Docker do MaxText:
Crie o cluster do Google Kubernetes Engine
Para executar o treinamento de SFT no modelo Qwen3 14b, você precisa de um cluster do Google Kubernetes Engine equipado com chips de TPU. Instale o Accelerated Processing Kit (XPK) e crie um cluster do GKE com suporte ao Pathways.
Prepare o modelo para treinamento
Converta o modelo base para o formato MaxText usando uma carga de trabalho baseada em CPU. Não execute essa tarefa em várias máquinas em paralelo. O comando a seguir inclui uma verificação para garantir que a conversão seja executada em apenas um nó de TPU.
Acompanhe o progresso da conversão do modelo
Para acompanhar o progresso da conversão, faça o seguinte:
- Para listar os pods programados no cluster do GKE, execute o comando
kubectl get pod. - Encontre o pod chamado
qwen-hf-to-mt-slice-job-0-0-HASH. - Para inspecionar a saída do pod em tempo real, execute o comando
kubectl logs -f POD_NAME.
Iniciar a carga de trabalho de treinamento
Depois que o processo de conversão for concluído, você poderá iniciar a carga de trabalho de ajuste fino de SFT usando o XPK.
Monitorar a carga de trabalho de treinamento
Monitore o status da carga de trabalho usando a interface de linha de comando (CLI) do XPK.
xpk workload list --cluster ${CLUSTER_NAME} --project ${PROJECT} --zone ${ZONE}
Para conferir os registros e a utilização da TPU, use o Google Cloud console. Também é possível conferir os registros executando o comando a seguir:
kubectl logs -f qwen-training-pathways-head-0-0-HASH
Substitua HASH pelo hash numérico no nome do pod. Para verificar o valor desse hash, execute o comando kubectl get pod e examine a lista de pods retornada.
Converter o modelo treinado de volta para o formato Hugging Face
Depois que a carga de trabalho de treinamento for concluída, converta os pontos de verificação de volta para o formato Hugging Face.
Para acompanhar o progresso da conversão, execute o comando
kubectl logs -f qwen-mt-to-hf-slice-job-0-0-HASH,
substituindo HASH pelo hash numérico no nome do pod.
Depois que a conversão for concluída, o modelo ajustado armazenado em gs://$GCS_BUCKET/qwen-3-14b/hf-trained/ estará pronto para uso.
Limpar
Para evitar cobranças extras, exclua os recursos criados durante este tutorial, incluindo o cluster do Google Kubernetes Engine, o bucket do Cloud Storage e o repositório do Artifact Registry.
Para excluir os recursos criados para este tutorial, execute o comando a seguir:
A seguir
- Para mais informações sobre o Cloud TPU, consulte Introdução ao Cloud TPU.
- Para detalhes de arquitetura e configuração da
v6e-32TPU, consulte TPU v6e.