Ce tutoriel fournit un guide par étapes pour exécuter un affinage supervisé (SFT) sur le modèle Qwen3-14b à l'aide de MaxText sur Cloud TPU. Vous apprendrez à créer une image de conteneur spécialisée, à provisionner un cluster Google Kubernetes Engine (GKE) avec Pathways à l'aide d'Accelerated Processing Kit (XPK) et à exécuter une charge de travail d'entraînement multi-hôte.
Objectifs
- Apprendre à créer une image de conteneur MaxText personnalisée optimisée pour le post-entraînement.
- Provisionner un cluster GKE à l'aide de XPK avec Pathways activé.
- Convertir le modèle Qwen3 14b du format Hugging Face au format MaxText.
- Exécuter une charge de travail d'entraînement SFT multi-hôte sur Cloud TPU.
- Reconvertir le modèle réglé au format Hugging Face pour la mise en service.
Coûts
Dans ce tutoriel, vous utilisez les composants facturables suivants de Google Cloud:
- Google Kubernetes Engine
- Cloud TPU
- Cloud Storage
- Artifact Registry
- Compute Engine, for the temporary build virtual machine (VM)
Obtenez une estimation des coûts en fonction de votre utilisation prévue,
utilisez le simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, supprimez les ressources que vous avez créées pour éviter que des frais vous soient facturés. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
- Vérifiez que votre compte utilisateur ou votre compte de service dispose des rôles suivants :
roles/compute.admin, pour créer la VM de compilationroles/artifactregistry.admin, pour gérer le dépôt Dockerroles/storage.admin, pour gérer le bucket de donnéesroles/container.admin, pour créer et gérer le cluster Google Kubernetes Engineroles/iam.serviceAccountAdmin, pour créer le compte de service de la charge de travailroles/resourcemanager.projectIamAdmin, pour définir des stratégies Identity and Access Management (IAM)roles/iam.serviceAccountUser, pour agir en tant que compte de service
- Installez et initialisez Google Cloud CLI.
- Vérifiez que vous avez installé Python 3.12 ou une version ultérieure sur votre station de travail.
Vous avez besoin d'un jeton d'accès Hugging Face pour suivre ce tutoriel. Vous pouvez vous inscrire pour obtenir un compte sans frais sur Hugging Face. Une fois que vous avez un compte, générez un jeton d'accès :
- Sur la page "Welcome to Hugging Face" (Bienvenue sur Hugging Face), cliquez sur l'avatar de votre compte, puis sélectionnez Access tokens (Jetons d'accès).
- Sur la page Access tokens (Jetons d'accès), cliquez sur Create new token (Créer un jeton).
- Sélectionnez le type de jeton Read (Lecture), puis saisissez un nom pour votre jeton.
- Votre jeton d'accès s'affiche. Enregistrez-le dans un endroit sûr.
Configurer l'environnement
Configurez vos variables d'environnement en exécutant le script suivant :
Remplacez les éléments suivants :
- YOUR_PROJECT_ID: ID de votre Google Cloud projet
- YOUR_REGION : région que vous souhaitez utiliser
- YOUR_ZONE : zone que vous souhaitez utiliser
- YOUR_CLUSTER_NAME : nom de votre cluster Google Kubernetes Engine
- YOUR_GCS_BUCKET : nom unique de votre bucket Cloud Storage
- YOUR_RESERVATION_NAME : réservation de capacité
- YOUR_HF_TOKEN : jeton d'accès Hugging Face
Préparer votre image de conteneur MaxText
Pour préparer votre image de conteneur MaxText, y compris installer les dépendances requises, procédez comme suit :
Créez un bucket Cloud Storage :
Créer un dépôt Artifact Registry :
Créez un fichier dans le répertoire racine de votre dépôt avec le nom de fichier
cloudbuild.yamlet le contenu suivant :Utilisez Cloud Build pour créer votre image Docker MaxText :
Créer votre cluster Google Kubernetes Engine
Pour exécuter l'entraînement SFT sur le modèle Qwen3 14b, vous avez besoin d'un cluster Google Kubernetes Engine équipé de puces TPU. Installez Accelerated Processing Kit (XPK) et créez un cluster GKE compatible avec Pathways.
Préparer le modèle pour l'entraînement
Convertissez le modèle de base au format MaxText à l'aide d'une charge de travail basée sur le processeur. N'exécutez pas cette tâche sur plusieurs machines en parallèle. La commande suivante inclut une vérification pour s'assurer que la conversion ne s'exécute que sur un seul nœud TPU.
Suivre la progression de la conversion du modèle
Pour suivre la progression de la conversion, procédez comme suit :
- Pour afficher la liste des pods planifiés sur votre cluster GKE, exécutez la commande
kubectl get pod. - Recherchez le pod nommé
qwen-hf-to-mt-slice-job-0-0-HASH. - Pour inspecter la sortie du pod en temps réel, exécutez la commande
kubectl logs -f POD_NAME.
Démarrer la charge de travail d'entraînement
Une fois le processus de conversion terminé, vous pouvez démarrer la charge de travail de réglage fin SFT à l'aide de XPK.
Surveiller la charge de travail d'entraînement
Surveillez l'état de votre charge de travail à l'aide de l'interface de ligne de commande (CLI) XPK.
xpk workload list --cluster ${CLUSTER_NAME} --project ${PROJECT} --zone ${ZONE}
Pour afficher les journaux et l'utilisation des TPU, utilisez la Google Cloud console. Vous pouvez également afficher les journaux en exécutant la commande suivante :
kubectl logs -f qwen-training-pathways-head-0-0-HASH
Remplacez HASH par le hachage numérique dans le nom de votre pod. Pour vérifier la valeur de ce hachage, exécutez la commande kubectl get pod et examinez la liste des pods renvoyée.
Reconvertir le modèle entraîné au format Hugging Face
Une fois votre charge de travail d'entraînement terminée, reconvertissez les points de contrôle au format Hugging Face.
Pour suivre la progression de la conversion, exécutez la commande
kubectl logs -f qwen-mt-to-hf-slice-job-0-0-HASH,
en remplaçant HASH par le hachage numérique dans le nom de votre pod.
Une fois la conversion terminée, votre modèle réglé stocké dans gs://$GCS_BUCKET/qwen-3-14b/hf-trained/ est prêt à être utilisé.
Libérer de l'espace
Pour éviter que des frais supplémentaires ne vous soient facturés, supprimez les ressources créées au cours de ce tutoriel, y compris votre cluster Google Kubernetes Engine, votre bucket Cloud Storage et votre dépôt Artifact Registry.
Pour supprimer les ressources que vous avez créées pour ce tutoriel, exécutez la commande suivante :
Étape suivante
- Pour en savoir plus sur Cloud TPU, consultez la Présentation de Cloud TPU.
- Pour en savoir plus sur l'architecture et la configuration du
v6e-32TPU, consultez TPU v6e.