Neste tutorial, mostramos como implantar e disponibilizar o modelo multimodal de mix de especialistas
Gemma 4 26B (google/gemma-4-26B-A4B-it)
no Google Kubernetes Engine (GKE) usando aceleradores
Cloud TPU v6e (Trillium) de vários hosts e
vLLM TorchTPU.
Como a carga de trabalho abrange vários hosts de TPU em uma topologia 2x4, use a
API LeaderWorkerSet do Kubernetes e o Ray para coordenar a inferência distribuída em paralelo de tensor
em oito chips de TPU.
Objetivos
- Configure o cluster do GKE e o pool de nós de TPU v6e de vários hosts.
- Implantar o servidor vLLM de vários hosts com o LeaderWorkerSet.
- Enviar solicitações de inferência de texto e multimodais.
- Executar uma carga de trabalho de comparativo de mercado de exibição.
- Fazer a limpeza.
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 deste tutorial, 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
Você precisa de um token de acesso do Hugging Face para usar este tutorial. Você pode se inscrever para uma conta sem custo financeiro no Hugging Face. Depois de criar 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.
- Instale e inicialize a
Google Cloud CLI e instale
kubectl. Se você usa o Cloud Shell, as duas ferramentas já estão pré-instaladas.
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 do Kubernetes Engine (
roles/container.admin) - Administrador do Compute (
roles/compute.admin) - Usuário da conta de serviço (
roles/iam.serviceAccountUser)
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: ID do seu projeto do Google Cloud.YOUR_RESERVATION_NAME: o nome da sua reserva.YOUR_REGION: a região em que você quer implantar o cluster do GKE.YOUR_ZONE: a zona em que você quer implantar o pool de nós da TPU v6e.YOUR_CLUSTER_NAME: o nome do cluster do GKE.YOUR_HF_TOKEN: seu token de acesso do Hugging Face.YOUR_VLLM_TPU_IMAGE: a imagem de TPU do vLLM a ser usada. Para imagens públicas, consulte o repositório vLLM TorchTPU.
Criar o cluster do GKE
Para criar o cluster do GKE e anexar um pool de nós de TPU v6e de vários hosts, siga estas etapas:
Crie um cluster regional do GKE que use nós
e2-standard-4para o pool de nós padrão e um pool de nós da TPU v6e com dois nósct6e-standard-4torganizados em uma topologia2x4(oito chips de TPU no total). O tipo de máquina padrão do GKE (e2-medium) não fornece recursos de CPU suficientes para o controlador LeaderWorkerSet. Por isso, este tutorial especificae2-standard-4:Em vez de usar uma reserva específica, também é possível criar o pool de nós usando a capacidade spot ou VMs flex-start transmitindo as seguintes flags:
- VMs spot: substitua as flags
--reservation-affinitye--reservationpor--spotpara usar a capacidade de spot. As instâncias que usam a capacidade do Spot podem levar algum tempo para serem criadas após a criação do pool de nós e podem ser interrompidas durante as execuções da carga de trabalho. Se os pods demorarem para ser criados ou as cargas de trabalho pararem no meio da execução, essa pode ser a causa. - VMs flex-start: transmita
--flex-startpara provisionar o pool de nós usando a opção de consumo de início flexível. Para mais informações, consulte Executar uma carga de trabalho em lote pequena com TPUs e VMs de início flexível.
- VMs spot: substitua as flags
Configure as credenciais de
kubectlpara se comunicar com o cluster:
Configurar credenciais e instalar o LeaderWorkerSet
Para preparar o cluster para a implantação de vários hosts, siga estas etapas:
Exporte o token do Hugging Face e crie um secret do Kubernetes chamado
hf-secret:Instale o CustomResourceDefinition e o controlador do LeaderWorkerSet no cluster:
Implantar o servidor vLLM de vários hosts
O manifesto da carga de trabalho (gemma4-26b-multihost-v6e-2x4.yaml) define dois
recursos:
- Um recurso LeaderWorkerSet (
vllm-tpu-gemma4-26b) comsize: 2(um pod líder e um pod de worker) programado nos dois nósct6e-standard-4tna fração de TPU2x4. Cada pod executa um InitContainer que busca previamente os pesos do modelogoogle/gemma-4-26B-A4B-itdo Hugging Face em um volume na memória antes de iniciar o Ray e o servidor de API OpenAI do vLLM com as flags--tensor-parallel-size=8,--kv-cache-dtype=fp8,--max-model-len=5248e--max-num-seqs=128. - Um serviço ClusterIP (
vllm-service) que expõe a porta8000no pod líder.
Para implantar e monitorar a carga de trabalho, siga estas etapas:
Busque o manifesto do LeaderWorkerSet no GitHub:
Como alternativa, crie um arquivo chamado
gemma4-26b-multihost-v6e-2x4.yamlcom o seguinte conteúdo:Aplique o manifesto do LeaderWorkerSet:
Monitore o status e os registros do pod líder até que a inicialização do aplicativo seja concluída:
A inicialização do serviço leva aproximadamente 9 minutos, enquanto os pods buscam os pesos do modelo, formam o cluster do Ray de dois nós em todos os oito chips de TPU e compilam o modelo. Aguarde até que os registros informem
Application startup completeantes de enviar tráfego.Em uma segunda sessão de terminal, encaminhe a porta local
8000paravllm-service:Deixe o encaminhamento de portas em execução nessa sessão do terminal.
Enviar solicitações de inferência
Volte para a primeira sessão do terminal e teste o modelo implantado com solicitações de conclusão de chat de texto e multimodais:
Envie uma solicitação de conclusão de chat de texto para o endpoint
/v1/chat/completions:Envie uma solicitação multimodal que contenha um URL de imagem e um comando de texto:
Executar uma carga de trabalho de comparativo de mercado
Para comparar o modelo implantado, execute o seguinte comando:
Limpar
Para evitar cobranças extras na sua conta do Google Cloud pelos recursos usados neste tutorial, exclua as cargas de trabalho do Kubernetes, o pool de nós da TPU e o cluster do GKE:
Exclua a implantação do servidor vLLM e o secret do Hugging Face:
Exclua o pool de nós da TPU v6e e o cluster do GKE:
Volte para a segunda sessão do terminal e interrompa o encaminhamento de portas.
A seguir
- Saiba mais sobre o vLLM TorchTPU.
- Saiba mais sobre o Cloud TPU.