Inferência do JetStream PyTorch em VMs da TPU v6e
Este tutorial mostra como usar o JetStream para publicar modelos PyTorch em TPUs v6e. O JetStream é um motor otimizado para débito e memória para inferência de grandes modelos de linguagem (GMLs) em dispositivos XLA (TPUs). Neste tutorial, vai executar o teste de referência de inferência para o modelo Llama2-7B.
Antes de começar
Prepare-se para aprovisionar uma TPU v6e com 4 chips:
Siga o guia Configure o ambiente do Cloud TPU para configurar um Google Cloud projeto, configurar a CLI do Google Cloud, ativar a API Cloud TPU e garantir que tem acesso à utilização de Cloud TPUs.
Autentique-se com o Google Cloud e configure o projeto e a zona predefinidos para a CLI Google Cloud.
gcloud auth login gcloud config set project PROJECT_ID gcloud config set compute/zone ZONE
Capacidade segura
Quando estiver pronto para proteger a capacidade da TPU, consulte as cotas da Cloud TPU para mais informações sobre as cotas da Cloud TPU. Se tiver mais perguntas sobre a proteção da capacidade, contacte a equipa de vendas ou da conta do Cloud TPU.
Aprovisione o ambiente do Cloud TPU
Pode aprovisionar VMs de TPU com o GKE, com o GKE e o XPK ou como recursos em fila.
Pré-requisitos
- Verifique se o seu projeto tem quota suficiente, que especifica o número máximo de chips aos quais pode aceder no seu projeto.
TPUS_PER_TPU_FAMILY
Google Cloud - Verifique se o seu projeto tem quota de TPUs suficiente para:
- Quota de VMs da TPU
- Quota de endereços IP
- Quota de Hyperdisk Balanced
- Autorizações do projeto do utilizador
- Se estiver a usar o GKE com o XPK, consulte as autorizações da Cloud Console na conta de utilizador ou de serviço para ver as autorizações necessárias para executar o XPK.
Crie variáveis de ambiente
Num Cloud Shell, crie as seguintes variáveis de ambiente:
export PROJECT_ID=your-project-id export TPU_NAME=your-tpu-name export ZONE=us-central2-b export ACCELERATOR_TYPE=v6e-4 export RUNTIME_VERSION=v2-alpha-tpuv6e export SERVICE_ACCOUNT=your-service-account export QUEUED_RESOURCE_ID=your-queued-resource-id
Descrições das variáveis de ambiente
Variável | Descrição |
---|---|
PROJECT_ID |
O seu Google Cloud ID do projeto. Use um projeto existente ou crie um novo. |
TPU_NAME |
O nome da TPU. |
ZONE |
A zona na qual criar a VM da TPU. Para mais informações sobre as zonas suportadas, consulte o artigo Regiões e zonas de TPUs. |
ACCELERATOR_TYPE |
O tipo de acelerador especifica a versão e o tamanho do Cloud TPU que quer criar. Para mais informações sobre os tipos de aceleradores suportados para cada versão da TPU, consulte o artigo Versões da TPU. |
RUNTIME_VERSION |
A versão do software do Cloud TPU. |
SERVICE_ACCOUNT |
O endereço de email da sua conta de serviço. Pode encontrá-la acedendo à
página Contas de serviço na
Google Cloud consola.
Por exemplo:
|
QUEUED_RESOURCE_ID |
O ID de texto atribuído pelo utilizador do pedido de recurso em fila. |
Aprovisione uma TPU v6e
gcloud alpha compute tpus queued-resources create ${QUEUED_RESOURCE_ID} \ --node-id ${TPU_NAME} \ --project ${PROJECT_ID} \ --zone ${ZONE} \ --accelerator-type ${ACCELERATOR_TYPE} \ --runtime-version ${RUNTIME_VERSION} \ --service-account ${SERVICE_ACCOUNT}
Use os comandos list
ou describe
para consultar o estado do recurso em fila.
gcloud alpha compute tpus queued-resources describe ${QUEUED_RESOURCE_ID} \
--project ${PROJECT_ID} --zone ${ZONE}
Para ver uma lista completa dos estados dos pedidos de recursos em fila, consulte a documentação Recursos em fila.
Estabeleça ligação à TPU através do SSH
gcloud compute tpus tpu-vm ssh ${TPU_NAME}
Execute o benchmark JetStream PyTorch Llama2-7B
Para configurar o JetStream-PyTorch, converter os pontos de verificação do modelo e executar o teste de referência de inferência, siga as instruções no repositório do GitHub.
Quando o teste de referência de inferência estiver concluído, certifique-se de que limpa os recursos da TPU.
Limpar
Elimine a TPU:
gcloud compute tpus queued-resources delete ${QUEUED_RESOURCE_ID} \
--project ${PROJECT_ID} \
--zone ${ZONE} \
--force \
--async