Questo tutorial fornisce una guida passo passo per l'esecuzione del fine-tuning supervisionato (SFT) sul modello Qwen3-14b utilizzando MaxText su Cloud TPU. Scoprirai come creare un'immagine container specializzata, eseguire il provisioning di un cluster Google Kubernetes Engine (GKE) con Pathways utilizzando Accelerated Processing Kit (XPK) ed eseguire un workload di addestramento multi-host.
Obiettivi
- Scopri come creare un'immagine container MaxText personalizzata ottimizzata per il post-addestramento.
- Esegui il provisioning di un cluster GKE utilizzando XPK con Pathways abilitato.
- Converti il modello Qwen3 14b dal formato Hugging Face al formato MaxText.
- Esegui un workload di addestramento SFT multi-host su Cloud TPU.
- Converti 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:
- Google Kubernetes Engine
- Cloud TPU
- Cloud Storage
- Artifact Registry
- Compute Engine, for the temporary build virtual machine (VM)
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
- Verifica che il tuo account utente o account di servizio disponga dei seguenti ruoli:
roles/compute.admin, per creare la VM di buildroles/artifactregistry.admin, per gestire il repository Dockerroles/storage.admin, per gestire il bucket di datiroles/container.admin, per creare e gestire il cluster Google Kubernetes Engineroles/iam.serviceAccountAdmin, per creare il account di servizio del workloadroles/resourcemanager.projectIamAdmin, per impostare le policy di Identity and Access Management (IAM)roles/iam.serviceAccountUser, per agire come account di servizio
- Installa e inizializza Google Cloud CLI.
- Verifica di aver installato Python 3.12 o versioni successive sulla workstation.
Per utilizzare questo tutorial, devi disporre di un token di accesso a Hugging Face. Puoi registrarti per un account senza costi su Hugging Face. Una volta 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.
Configura l'ambiente
Imposta le variabili di ambiente eseguendo il seguente script:
Sostituisci quanto segue:
- YOUR_PROJECT_ID: l' Google Cloud ID progetto
- YOUR_REGION: la regione che vuoi utilizzare
- YOUR_ZONE: la zona che vuoi utilizzare
- YOUR_CLUSTER_NAME: un nome per il cluster Google Kubernetes Engine
- YOUR_GCS_BUCKET: un nome univoco per il tuo bucket Cloud Storage
- YOUR_RESERVATION_NAME: la prenotazione della capacità
- YOUR_HF_TOKEN: il token di accesso a Hugging Face
Prepara 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:
Crea il cluster Google Kubernetes Engine
Per eseguire l'addestramento SFT sul modello Qwen3 14b, devi disporre di un cluster Google Kubernetes Engine dotato di chip TPU. Installa Accelerated Processing Kit (XPK) e crea un cluster GKE con il supporto di Pathways.
Prepara il modello per l'addestramento
Converti il modello di base nel formato MaxText utilizzando un workload basato su CPU. Non eseguire questa attività su più macchine in parallelo. Il comando seguente include un controllo per assicurarsi che la conversione venga eseguita su un solo nodo TPU.
Monitora l'avanzamento della conversione del modello
Per monitorare l'avanzamento della conversione:
- Per elencare i pod pianificati nel cluster GKE, esegui il comando
kubectl get pod. - Trova il pod denominato
qwen-hf-to-mt-slice-job-0-0-HASH. - Per controllare l'output del pod in tempo reale, esegui il comando
kubectl logs -f POD_NAME.
Avvia il workload di addestramento
Al termine del processo di conversione, puoi avviare il workload di ottimizzazione SFT utilizzando XPK.
Monitora il workload di addestramento
Monitora lo stato del workload utilizzando l'interfaccia a riga di comando (CLI) XPK.
xpk workload list --cluster ${CLUSTER_NAME} --project ${PROJECT} --zone ${ZONE}
Per visualizzare i log e l'utilizzo delle TPU, utilizza la Google Cloud console. Puoi anche visualizzare i log eseguendo il comando seguente:
kubectl logs -f qwen-training-pathways-head-0-0-HASH
Sostituisci HASH con l'hash numerico nel nome del pod. Per verificare il valore di questo hash, esegui il comando kubectl get pod ed esamina l'elenco dei pod restituito.
Converti di nuovo il modello addestrato nel formato Hugging Face
Al termine del workload di addestramento, converti di nuovo i checkpoint nel formato Hugging Face.
Per monitorare l'avanzamento della conversione, esegui il comando
kubectl logs -f qwen-mt-to-hf-slice-job-0-0-HASH,
sostituendo HASH con l'hash numerico nel nome del pod.
Al termine della conversione, il modello ottimizzato archiviato in gs://$GCS_BUCKET/qwen-3-14b/hf-trained/ è pronto per essere utilizzato.
Libera spazio
Per evitare addebiti aggiuntivi, elimina le risorse create durante questo tutorial, inclusi il cluster Google Kubernetes Engine, il bucket Cloud Storage e il repository Artifact Registry.
Per eliminare le risorse create per questo tutorial, esegui il comando seguente:
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.