Neste tutorial, mostramos como executar o ajuste supervisionado (SFT) em um cluster da Unidade de Processamento de Tensor (TPU) v6e usando o MaxText e o Cluster Toolkit. Você usa o Cluster Toolkit para executar uma carga de trabalho de treinamento multihost e exportar os resultados de volta para o formato do Hugging Face para disponibilização.
Objetivos
- Instalar o Cluster Toolkit e as dependências dele.
- Instalar o MaxText e as dependências dele.
- Implantar um cluster do Cluster Toolkit.
- Converter um modelo do Hugging Face para o formato MaxText.
- Executar uma carga de trabalho de treinamento de SFT na TPU.
- Converter o modelo ajustado de volta para o formato do Hugging Face para disponibilização.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
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 Limpar.
Antes de começar
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 "Bem-vindo ao Hugging Face", clique no avatar da sua conta e selecione Tokens de acesso.
- Na página Tokens de acesso, clique em Criar novo token.
- Selecione o tipo de token Ler e insira um nome para ele.
- Seu token de acesso será exibido. Salve o token em um local seguro.
- No site do Hugging Face, aceite o contrato de licença
do modelo que você planeja treinar. Este tutorial usa o modelo
gemma4-31b.
Para conseguir as permissões que você precisa para concluir este tutorial, peça ao administrador para conceder a você os seguintes papéis do IAM no seu projeto:
-
Para concluir este tutorial:
- Administrador da TPU (
roles/tpu.admin) - Usuário da conta de serviço (
roles/iam.serviceAccountUser) - Editor do Compute (
roles/compute.editor)
- Administrador da TPU (
-
Para preparar a imagem do contêiner do MaxText:
- Editor do Cloud Build (
roles/cloudbuild.builds.editor) - Administrador do Artifact Registry (
roles/artifactregistry.admin) - Administrador de armazenamento (
roles/storage.admin) - Administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Editor do Cloud Build (
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 com papéis personalizados ou outros papéis predefinidos.
Configurar as variáveis de ambiente
Configure as variáveis de ambiente executando o script a seguir:
Substitua:
- YOUR_PROJECT_ID: o ID do seu Google Cloud projeto.
- YOUR_REGION: a região em que você quer implantar o cluster.
- YOUR_ZONE: a zona em que você quer implantar o cluster.
- YOUR_REPOSITORY_NAME: o nome do repositório do Artifact Registry para suas imagens do MaxText.
- YOUR_RESERVATION_NAME: o nome da sua reserva.
- YOUR_HF_TOKEN: seu token de acesso do Hugging Face.
- YOUR_BUCKET_NAME: um nome globalmente exclusivo para um bucket do Cloud Storage.
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
Instale o pacote pré-criado do Cluster Toolkit seguindo as instruções em Instalar o Cluster Toolkit.
Preparar a imagem do contêiner do MaxText
Para preparar a imagem do 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 seguinte conteúdo:Use o Cloud Build para criar a imagem Docker do MaxText:
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 papel personalizado do Identity and Access Management (IAM), chamado
gke.gcsfuse.profileUser:Crie um bucket do Cloud Storage:
Por padrão, a conta de serviço do pool de nós do cluster não tem as permissões necessárias para gravar no bucket do Cloud Storage. Para permitir que a conta de serviço do pool de nós grave no bucket do Cloud Storage, conceda a ela o papel
Storage Admin. Para conceder esse papel, edite o arquivogke-tpu-v6e-advanced.yamlatualizando o módulonode_pool_service_account:Implante o cluster do Cluster Toolkit usando o blueprint
gke-tpu-v6e-advanced.yamle transmitindo as variáveis necessárias usando a flag--vars:
Converter o modelo para o formato MaxText
Para treinar o modelo no formato MaxText, é necessário convertê-lo do formato do Hugging Face para o formato MaxText.
Depois de terminar de criar o cluster do Cluster Toolkit, configure o Docker:
Para simplificar os comandos subsequentes, configure o projeto, o cluster e o local padrão:
Para converter o modelo do formato do Hugging Face para o formato MaxText e armazená-lo no bucket do Cloud Storage, execute o script a seguir:
Para verificar o status do job de conversão, execute o comando a seguir:
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 SFT executando o comando a seguir:
Para verificar o status do job de treinamento, execute o comando a seguir:
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 do Hugging Face:
Para verificar o status do job de conversão, execute o comando a seguir:
Limpar
Para evitar cobranças adicionais, exclua os recursos criados durante este tutorial.
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.