Questo tutorial mostra come eseguire il fine-tuning supervisionato (SFT) su un cluster di Tensor Processing Unit (TPU) v6e utilizzando MaxText e Cluster Toolkit. Utilizzerai Cluster Toolkit per eseguire un carico di lavoro di addestramento multi-host ed esportare i risultati nel formato Hugging Face per l'erogazione.
Obiettivi
- Installare Cluster Toolkit e le relative dipendenze.
- Installare MaxText e le relative dipendenze.
- Eseguire il deployment di un cluster Cluster Toolkit.
- Convertire un modello Hugging Face nel formato MaxText.
- Eseguire un carico di lavoro di addestramento SFT sulla TPU.
- Convertire di nuovo il modello ottimizzato nel formato Hugging Face per l'erogazione.
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 Liberare spazio.
Prima di iniziare
Per utilizzare questo tutorial, devi disporre di 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 intendi addestrare. Questo tutorial utilizza il modello
gemma4-31b.
Per ottenere le autorizzazioni necessarie per completare questo tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo progetto:
-
Per completare questo tutorial:
- Amministratore TPU (
roles/tpu.admin) - Utente Service Account (
roles/iam.serviceAccountUser) - Editor Compute (
roles/compute.editor)
- Amministratore TPU (
-
Per preparare l'immagine container MaxText:
- Editor Cloud Build (
roles/cloudbuild.builds.editor) - Amministratore Artifact Registry (
roles/artifactregistry.admin) - Amministratore spazio di archiviazione (
roles/storage.admin) - Amministratore Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Editor Cloud Build (
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.
Impostare le variabili di ambiente
Imposta le variabili di ambiente eseguendo il seguente script:
Sostituisci quanto segue:
- YOUR_PROJECT_ID: l'ID del tuo Google Cloud progetto.
- YOUR_REGION: la regione in cui vuoi eseguire il deployment del tuo cluster.
- YOUR_ZONE: la zona in cui vuoi eseguire il deployment del cluster.
- YOUR_REPOSITORY_NAME: il nome del repository Artifact Registry per le immagini MaxText.
- YOUR_RESERVATION_NAME: il nome della prenotazione.
- YOUR_HF_TOKEN: il token di accesso a Hugging Face.
- YOUR_BUCKET_NAME: un nome univoco a livello globale per un bucket Cloud Storage.
Installare 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.
Installare Cluster Toolkit
Installa il pacchetto predefinito per Cluster Toolkit seguendo le istruzioni riportate in Installare Cluster Toolkit.
Preparare l'immagine container MaxText
Per preparare l'immagine container MaxText, inclusa l'installazione delle dipendenze richieste, completa i seguenti passaggi:
Crea un bucket Cloud Storage:
Crea un repository Artifact Registry:
Crea un file nella directory principale del repository con il nome file
cloudbuild.yamle il seguente contenuto:Utilizza Cloud Build per creare l'immagine Docker MaxText:
Creare 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 ruolo IAM (Identity and Access Management) personalizzato, denominato
gke.gcsfuse.profileUser:Crea un bucket Cloud Storage:
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 bucket Cloud Storage, devi concedergli il ruolo
Storage Admin. Per concedere questo ruolo, modifica il filegke-tpu-v6e-advanced.yamlaggiornando il modulonode_pool_service_account:Esegui il deployment del cluster Cluster Toolkit utilizzando il progetto iniziale
gke-tpu-v6e-advanced.yamle passando le variabili richieste utilizzando il flag--vars:
Convertire il modello nel formato MaxText
Per addestrare il modello in formato MaxText, devi convertirlo dal formato Hugging Face al formato MaxText.
Dopo aver creato il cluster Cluster Toolkit, configura Docker:
Per semplificare i comandi successivi, configura il progetto, il cluster e la località predefiniti:
Per convertire il modello dal formato Hugging Face al formato MaxText e archiviarlo nel bucket Cloud Storage, esegui il seguente script:
Per controllare lo stato del job di conversione, esegui il comando seguente:
Avviare il carico di lavoro di addestramento
Al termine del processo di conversione, puoi avviare il carico di lavoro SFT eseguendo il comando seguente:
Per controllare lo stato del job di addestramento, esegui il comando seguente:
Convertire di nuovo il modello addestrato nel formato Hugging Face
Al termine del carico di lavoro di addestramento, converti di nuovo il modello nel formato Hugging Face:
Per controllare lo stato del job di conversione, esegui il comando seguente:
Libera spazio
Per evitare addebiti aggiuntivi, elimina 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
v6e-32TPU, consulta TPU v6e.