Questo tutorial mostra come eseguire l'addestramento di apprendimento per rinforzo (RL) multi-host su un cluster di Tensor Processing Unit (TPU) v6e-32 utilizzando MaxText e Cluster Toolkit. Utilizza Cluster Toolkit per eseguire un workload di addestramento multi-host ed esportare i risultati nel formato Hugging Face per la pubblicazione.
Riepilogo del workload
L'esecuzione di questo workload di post-addestramento RL su Cloud TPU e GKE prevede i seguenti componenti:
- Modello: Gemma 4 26B A4B Instruct (
google/gemma-4-26b-a4b-it), un modello open-weights avanzato ottimizzato per le istruzioni. In questo tutorial, i pesi del modello vengono scaricati da Hugging Face, convertiti in un formato compatibile con MaxText ed è stato eseguito il deployment su un cluster GKE con l'infrastruttura Cloud TPU v6e. - Algoritmo di apprendimento per rinforzo (RL): Group Relative Policy Optimization (GRPO) utilizzando MaxText e Pathways. Il workload esegue una pipeline di post-addestramento scalabile utilizzando l'addestratore RL integrato di MaxText (
maxtext.trainers.post_train.rl.train_rl) accoppiato a un backend del campionatore vLLM. GRPO ottimizza la policy generando un gruppo di output per prompt e valutando i reward relativi senza bisogno di un modello critic separato. - Set di dati e template: OpenMathInstruct-2 (
openmathinstruct2_rl.json), un set di dati di ottimizzazione delle istruzioni matematiche su larga scala. Il workload utilizza modelli di chat strutturati durante la fase di implementazione dell'RL per migliorare le capacità di ragionamento matematico in più passaggi. - Infrastruttura e framework: GKE, gestito utilizzando Cluster Toolkit, su Cloud TPU v6e (slice
ct6e-standard-4t,v6e-32con una topologia4x8). Il framework è MaxText (tpu_post_training:0.2.4) con Pathways e un backend JAX.
Obiettivi
- Installa Cluster Toolkit e le relative dipendenze.
- Esegui il deployment di un cluster Cluster Toolkit.
- Converti un modello Hugging Face nel formato MaxText.
- Esegui un workload di addestramento RL sul cluster TPU v6e.
- Converti il modello ottimizzato nel formato Hugging Face per la pubblicazione.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google 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.
- Nella scheda del modello
google/gemma-4-26b-a4b-itsu Hugging Face, accetta il contratto di licenza per il modello.
Per ottenere le autorizzazioni necessarie per completare questo tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
- TPU Admin (
roles/tpu.admin) - Amministratore Kubernetes Engine (
roles/container.admin) - Compute Admin (
roles/compute.admin) - Storage Admin (
roles/storage.admin) - Utente Service Account (
roles/iam.serviceAccountUser) - Service Account Admin (
roles/iam.serviceAccountAdmin) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) - Amministratore Service Usage (
roles/serviceusage.serviceUsageAdmin)
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_REGION: la regione in cui si trova la prenotazione della TPU e in cui esegui il deployment del cluster.YOUR_ZONE: la zona in cui si trova la prenotazione della TPU e in cui esegui il deployment del cluster.YOUR_CLUSTER_NAME: il nome del tuo cluster GKE. Il nome deve iniziare con una lettera minuscola, contenere solo lettere minuscole, numeri e trattini e avere una lunghezza massima di 20 caratteri.YOUR_BUCKET_NAME: un nome univoco a livello globale per un bucket Cloud Storage.YOUR_RESERVATION_NAME: il nome della prenotazione TPU v6e.YOUR_HF_TOKEN: il tuo token di accesso a Hugging Face.
Installa le dipendenze di Cluster Toolkit
Per completare questo tutorial da un client o una workstation Linux o macOS, segui i passaggi pertinenti in Installa le dipendenze nella documentazione di Cluster Toolkit.
Se utilizzi Cloud Shell, puoi saltare questa sezione.
Installa Cluster Toolkit
Scarica ed estrai il bundle predefinito per la versione specifica di Cluster Toolkit definita in CLUSTER_TOOLKIT_VERSION (v1.103.0) nella directory di lavoro attuale:
Autentica il tuo ambiente
Prima di eseguire gli script di deployment, devi autenticare Google Cloud CLI e impostare le Credenziali predefinite dell'applicazione (ADC). In questo modo, Cluster Toolkit può eseguire il provisioning delle risorse e il push delle immagini in Artifact Registry per tuo conto.
Crea il tuo cluster Cluster Toolkit
Per creare ed eseguire il deployment di un cluster Cluster Toolkit con 32 chip TPU v6e, completa i seguenti passaggi:
Crea un bucket Cloud Storage:
Utilizza il comando
gcluster deployper eseguire il deployment del cluster Cluster Toolkit utilizzando il progettogke-tpu-v6e-advanced.yamle passando le variabili richieste utilizzando il flag--vars:
Converti il modello nel formato MaxText
Per addestrare il modello nel formato MaxText, devi convertirlo dal formato Hugging Face al formato MaxText.
Per semplificare i comandi successivi, utilizza il comando
gcluster job configper configurare il progetto, il cluster e la località predefiniti:Utilizza il comando
gcluster job submitper convertire il modello dal formato Hugging Face al formato MaxText e archiviarlo nel tuo bucket Cloud Storage:Il comando include il flag
--await-job-completion, il che significa che attende nel terminale corrente fino al completamento della conversione.(Facoltativo) Per trasmettere in streaming i log di conversione mentre il job è in esecuzione, apri un terminale separato nella directory di lavoro in cui hai estratto
gclustered esegui il comandogcluster job logs:Nel terminale originale, verifica che i file del modello convertito siano disponibili nel bucket Cloud Storage:
Avvia il workload di addestramento
Al termine del processo di conversione, avvia il workload di addestramento RL:
Controlla lo stato, attendi che il pod del coordinatore sia pronto e trasmetti in streaming i log del job di addestramento:
Subito dopo l'invio, l'output del comando
./gcluster job listpotrebbe mostrare brevementeSuspendedmentre GKE esegue lo scale up del pool di nodi di CPU del coordinatore Pathways (cpu-np). All'avvio del job, viene generata una valutazione iniziale di pre-addestramento al passaggio 0 (Pre RL Training: ... mean_reward=...), l'output del log viene messo in pausa per diversi minuti durante la compilazione XLA iniziale e poi viene eseguito l'addestramento per 50 passaggi, stampandoReshard finishede le generazioni di implementazione in ogni passaggio senza numeri di passaggio.Prima di procedere con il passaggio successivo, attendi che l'output dei log sia
Post RL Training: ... mean_reward=...e che l'output del comando./gcluster job listmostri lo stato digemma4-trainingcomeSucceeded.Verifica che i checkpoint di addestramento siano generati nel tuo bucket Cloud Storage:
Converti il modello addestrato nel formato Hugging Face
Al termine del workload di addestramento, converti il modello nel formato Hugging Face:
(Facoltativo) Per monitorare i log di conversione in tempo reale mentre il comando
--await-job-completionprecedente è in attesa nel primo terminale, apri un terminale separato nella directory di lavoro in cui hai estrattogclustere utilizza il comandogcluster job logs:Nel terminale originale, verifica che i pesi e i file di configurazione del modello Hugging Face addestrato siano presenti nel bucket Cloud Storage:
Esegui la pulizia
Per evitare addebiti aggiuntivi, utilizza il comando gcluster destroy per eliminare le risorse create durante questo tutorial:
Passaggi successivi
- Per saperne di più su Cloud TPU, consulta Introduzione a Cloud TPU.
- Per i dettagli sull'architettura e sulla configurazione della TPU
v6e-32, consulta TPU v6e. - Per saperne di più su Cluster Toolkit, consulta la panoramica di Cluster Toolkit.