Questo tutorial mostra come eseguire il deployment e l'inferenza del modello Mixture of Experts multimodale Gemma 4 26B (google/gemma-4-26B-A4B-it) su Google Kubernetes Engine (GKE) utilizzando acceleratori Cloud TPU v6e (Trillium) multi-host e vLLM TorchTPU.
Poiché il workload si estende su più host TPU in una topologia 2x4, utilizzi l'API LeaderWorkerSet di Kubernetes e Ray per coordinare l'inferenza distribuita con parallelismo dei tensori su otto chip TPU.
Obiettivi
- Configura il cluster GKE e il pool di nodi TPU v6e multi-host.
- Esegui il deployment del server vLLM multi-host con LeaderWorkerSet.
- Inviare richieste di inferenza di testo e multimodali.
- Esegui un workload di benchmark di distribuzione.
- Eseguire la pulizia.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili diGoogle Cloud:
Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.
Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la pulizia.
Prima di iniziare
Per utilizzare questo tutorial, devi disporre di un token di accesso a Hugging Face. Puoi creare un account senza costi su Hugging Face. Dopo aver creato un account, genera un token di accesso:
- Nella pagina Welcome to Hugging Face, fai clic sull'avatar del tuo account e seleziona Token di accesso.
- Nella pagina Token di accesso, fai clic su Crea nuovo token.
- Seleziona il tipo di token Lettura e inserisci un nome per il token.
- Viene visualizzato il token di accesso. Salva il token in un luogo sicuro.
- Installa e inizializza Google Cloud CLI e installa
kubectl. Se utilizzi Cloud Shell, entrambi gli strumenti sono preinstallati.
Per ottenere le autorizzazioni necessarie per completare questo tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
- Amministratore Kubernetes Engine (
roles/container.admin) - Compute Admin (
roles/compute.admin) - Utente Service Account (
roles/iam.serviceAccountUser)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Configura le variabili di ambiente
Imposta le variabili di ambiente:
Sostituisci quanto segue:
YOUR_PROJECT_ID: l'ID del tuo progetto Google Cloud.YOUR_RESERVATION_NAME: il nome della tua prenotazione.YOUR_REGION: la regione in cui vuoi eseguire il deployment del cluster GKE.YOUR_ZONE: la zona in cui vuoi eseguire il deployment del pool di nodi TPU v6e.YOUR_CLUSTER_NAME: il nome del tuo cluster GKE.YOUR_HF_TOKEN: il tuo token di accesso a Hugging Face.YOUR_VLLM_TPU_IMAGE: l'immagine TPU vLLM da utilizzare. Per le immagini pubbliche, consulta il repository vLLM TorchTPU.
Crea il cluster GKE
Per creare il cluster GKE e collegare un pool di nodi TPU v6e multi-host, completa i seguenti passaggi:
Crea un cluster GKE a livello di regione che utilizza nodi
e2-standard-4per il pool di nodi predefinito e un pool di nodi TPU v6e con due nodict6e-standard-4tdisposti in una topologia2x4(otto chip TPU in totale). Il tipo di macchina GKE predefinito (e2-medium) non fornisce risorse CPU sufficienti per il controller LeaderWorkerSet, pertanto questo tutorial specificae2-standard-4:Anziché utilizzare una prenotazione specifica, puoi anche creare il pool di nodi utilizzando la capacità Spot o le Flex-start VM passando i seguenti flag:
- VM spot: sostituisci i flag
--reservation-affinitye--reservationcon--spotper utilizzare la capacità spot. Le istanze che utilizzano la capacità Spot potrebbero richiedere del tempo per essere create dopo la creazione del pool di nodi e potrebbero essere prerilasciate durante l'esecuzione dei workload. Se i pod richiedono tempo per essere creati o i workload si interrompono durante l'esecuzione, questa potrebbe essere la causa. - VM con avvio flessibile: passa
--flex-startper eseguire il provisioning del node pool utilizzando l'opzione di consumo Avvio flessibile. Per saperne di più, consulta Esegui un workload batch di piccole dimensioni con TPU e VM Flex-start.
- VM spot: sostituisci i flag
Configura le credenziali
kubectlper comunicare con il tuo cluster:
Configura le credenziali e installa LeaderWorkerSet
Per preparare il cluster per il deployment multi-host, completa i seguenti passaggi:
Esporta il tuo token Hugging Face e crea un secret di Kubernetes denominato
hf-secret:Installa CustomResourceDefinition e il controller LeaderWorkerSet sul tuo cluster:
Esegui il deployment del server vLLM multi-host
Il manifest del workload (gemma4-26b-multihost-v6e-2x4.yaml) definisce due risorse:
- Una risorsa LeaderWorkerSet (
vllm-tpu-gemma4-26b) consize: 2(un pod leader e un pod worker) pianificata tra i due nodict6e-standard-4tnella sezione TPU2x4. Ogni pod esegue un InitContainer che precarica i pesi del modellogoogle/gemma-4-26B-A4B-itda Hugging Face in un volume in memoria prima di avviare Ray e il server API vLLM OpenAI con i flag--tensor-parallel-size=8,--kv-cache-dtype=fp8,--max-model-len=5248e--max-num-seqs=128. - Un servizio ClusterIP (
vllm-service) che espone la porta8000sul pod leader.
Per eseguire il deployment e monitorare il workload, completa i seguenti passaggi:
Recupera il manifest LeaderWorkerSet da GitHub:
In alternativa, crea un file denominato
gemma4-26b-multihost-v6e-2x4.yamlcon i seguenti contenuti:Applica il manifest LeaderWorkerSet:
Monitora lo stato e i log del pod leader fino al completamento dell'avvio dell'applicazione:
L'avvio iniziale del servizio richiede circa 9 minuti, durante i quali i pod eseguono il precaricamento dei pesi del modello, formano il cluster Ray a due nodi su tutti e otto i chip TPU e compilano il modello. Attendi che i log segnalino
Application startup completeprima di inviare traffico.In una seconda sessione del terminale, inoltra la porta locale
8000avllm-service:Lascia il port forwarding in esecuzione in questa sessione del terminale.
Invia richieste di inferenza
Torna alla prima sessione del terminale e testa il modello di cui è stato eseguito il deployment con richieste di completamento della chat sia di testo che multimodali:
Invia una richiesta di completamento della chat di testo all'endpoint
/v1/chat/completions:Invia una richiesta multimodale contenente sia l'URL di un'immagine sia un prompt testuale:
Esegui un workload di benchmark
Per eseguire il benchmark del modello di cui è stato eseguito il deployment, esegui questo comando:
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi aggiuntivi relativi alle risorse utilizzate in questo tutorial, elimina i workload Kubernetes, il pool di nodi TPU e il cluster GKE:
Elimina il deployment del server vLLM e il secret di Hugging Face:
Elimina il pool di nodi TPU v6e e il cluster GKE:
Torna alla seconda sessione del terminale e interrompi il port forwarding.
Passaggi successivi
- Scopri di più su vLLM TorchTPU.
- Scopri di più su Cloud TPU.