Questo tutorial mostra come eseguire l'addestramento multi-host di apprendimento per rinforzo (RL) su un cluster di Tensor Processing Unit (TPU) v6e-32 utilizzando MaxText e Cluster Toolkit. Utilizzi
Cluster Toolkit per eseguire un
carico di lavoro di addestramento multihost ed esportare i risultati nel formato Hugging Face
per la pubblicazione.
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 carico di lavoro di addestramento RL sul cluster TPU v6e.
- Converti di nuovo 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, è necessario un token di accesso a Hugging Face. Puoi registrarti per un account senza costi su Hugging Face. Dopo aver creato un account, genera un token di accesso:
- Nella pagina Benvenuto in 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.
- Sul sito web di Hugging Face, accetta il contratto di licenza
per il modello che prevedi di addestrare. Questo tutorial utilizza il modello
qwen3-30b-a3b.
Per ottenere le autorizzazioni necessarie per completare questo tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
- Amministratore TPU (
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) - Amministratore service account (
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 Google Cloud progetto.
- YOUR_REGION: la regione in cui vuoi eseguire il deployment del cluster.
- YOUR_ZONE: la zona in cui vuoi eseguire il deployment del cluster.
- YOUR_CLUSTER_NAME: il nome del tuo cluster Google Kubernetes Engine (fino a 20 caratteri).
- YOUR_BUCKET_NAME: un nome univoco a livello globale per un bucket Cloud Storage.
- YOUR_RESERVATION_NAME: il nome della prenotazione.
- YOUR_HF_TOKEN: il 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 Installare le dipendenze nella documentazione di Cluster Toolkit.
Se utilizzi Cloud Shell, puoi saltare questa sezione.
Installa Cluster Toolkit
Installa il pacchetto predefinito per Cluster Toolkit nella directory di lavoro corrente seguendo le istruzioni riportate in Installare Cluster Toolkit.
Ad esempio, puoi scaricare ed estrarre il bundle nella directory di lavoro attuale come segue:
L'estrazione del bundle nella directory di lavoro attuale fornisce il file binario gcluster e i blueprint examples/ che utilizzerai nei passaggi successivi.
Crea il 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:
Copia il progetto base di Cluster Toolkit nella directory di lavoro corrente:
Per impostazione predefinita, il account di servizio del pool di nodi del cluster non dispone delle autorizzazioni necessarie per scrivere nel bucket Cloud Storage. Per consentire al account di servizio del pool di nodi di scrivere nel tuo bucket Cloud Storage, devi concedergli il ruolo
Storage Admin. Per concedere questo ruolo, modifica il filegke-tpu-v6e-advanced.yamlaggiornando il moduloservice-accountdenominatonode_pool_service_account:Utilizza il comando
gcluster deployper eseguire il deployment del cluster Cluster Toolkit utilizzando il blueprintgke-tpu-v6e-advanced.yamle passando le variabili richieste utilizzando il flag--vars:Configura l'autenticazione di Container Registry e concedi il ruolo Amministratore Storage (
roles/storage.admin) ai tuoi service account GKE:
Converti il modello nel formato MaxText
Per addestrare il modello in 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
gcluster job submitcomando per convertire il modello dal formato Hugging Face al formato MaxText e archiviarlo nel bucket Cloud Storage:Utilizza il comando
gcluster job logsper controllare lo stato del job di conversione:Verifica che i file del modello convertiti siano disponibili nel bucket Cloud Storage:
Avvia il carico di lavoro di addestramento
Una volta completato il processo di conversione, avvia il carico di lavoro di addestramento RL:
Per controllare lo stato del job di addestramento:
Per verificare che i checkpoint di addestramento siano generati nel bucket Cloud Storage:
Converti il modello addestrato di nuovo nel formato Hugging Face
Al termine del carico di lavoro di addestramento, converti nuovamente il modello nel formato Hugging Face:
Per controllare lo stato del job di conversione:
Per verificare che i pesi del modello Hugging Face addestrato e i file di configurazione siano presenti nel bucket Cloud Storage:
Esegui la pulizia
Per evitare addebiti aggiuntivi, utilizza il comandogcluster destroy per eliminare le risorse create durante questo tutorial:
Passaggi successivi
- Per saperne di più su Cloud TPU, consulta la sezione Introduzione a Cloud TPU.
- Per i dettagli dell'architettura e della configurazione della TPU
v6e-32, vedi TPU v6e. - Per saperne di più su Cluster Toolkit, consulta la panoramica di Cluster Toolkit.