Ce tutoriel vous explique comment exécuter un affinage supervisé (SFT) sur un cluster Tensor Processing Unit (TPU) v6e à l'aide de MaxText et de Cluster Toolkit. Vous utilisez Cluster Toolkit pour exécuter une charge de travail d'entraînement multihôte et exporter les résultats au format Hugging Face pour la mise en service.
Objectifs
- Installer Cluster Toolkit et ses dépendances.
- Installer MaxText et ses dépendances.
- Déployer un cluster Cluster Toolkit.
- Convertir un modèle Hugging Face au format MaxText.
- Exécuter une charge de travail d'entraînement SFT sur le TPU.
- Reconvertir le modèle affiné au format Hugging Face pour la mise en service.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud:
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 Libérer de l'espace.
Avant de commencer
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.
- Sur le site Web Hugging Face, acceptez le contrat de licence
du modèle que vous prévoyez d'entraîner. Ce tutoriel utilise le modèle
gemma4-31b.
Pour obtenir les autorisations nécessaires pour suivre ce tutoriel, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Pour suivre ce tutoriel :
- Administrateur TPU (
roles/tpu.admin) - Utilisateur du compte de service (
roles/iam.serviceAccountUser) - Éditeur Compute (
roles/compute.editor)
- Administrateur TPU (
-
Pour préparer votre image de conteneur MaxText :
- Éditeur Cloud Build (
roles/cloudbuild.builds.editor) - Administrateur Artifact Registry (
roles/artifactregistry.admin) - Administrateur de l'espace de stockage (
roles/storage.admin) - Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Éditeur Cloud Build (
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Configurer vos variables d'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 dans laquelle vous souhaitez déployer votre cluster.
- YOUR_ZONE : zone dans laquelle vous souhaitez déployer votre cluster.
- YOUR_REPOSITORY_NAME : nom du dépôt Artifact Registry pour vos images MaxText.
- YOUR_RESERVATION_NAME : nom de votre réservation.
- YOUR_HF_TOKEN : jeton d'accès Hugging Face.
- YOUR_BUCKET_NAME : nom unique d'un bucket Cloud Storage.
Installer les dépendances de Cluster Toolkit
Pour suivre ce tutoriel à partir d'un client ou d'une station de travail Linux ou macOS, suivez les étapes appropriées dans Installer les dépendances dans la documentation de Cluster Toolkit.
Si vous utilisez Cloud Shell, vous pouvez ignorer cette section.
Installer Cluster Toolkit
Installez le bundle prédéfini pour Cluster Toolkit en suivant les instructions de la section Installer Cluster Toolkit.
Préparer votre image de conteneur MaxText
Pour préparer votre image de conteneur MaxText, y compris l'installation des 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 Cluster Toolkit
Pour créer et déployer un cluster Cluster Toolkit avec 32 puces TPU v6e, procédez comme suit :
Créez un rôle Identity and Access Management (IAM) personnalisé nommé
gke.gcsfuse.profileUser:Créez un bucket Cloud Storage :
Par défaut, le compte de service du pool de nœuds de votre cluster ne dispose pas des autorisations requises pour écrire dans votre bucket Cloud Storage. Pour autoriser le compte de service du pool de nœuds à écrire dans votre bucket Cloud Storage, vous devez lui attribuer le rôle
Storage Admin. Pour attribuer ce rôle, modifiez le fichiergke-tpu-v6e-advanced.yamlen mettant à jour le modulenode_pool_service_account:Déployez votre cluster Cluster Toolkit à l'aide du blueprint
gke-tpu-v6e-advanced.yamlet transmettez les variables requises à l'aide de l'option--vars:
Convertir le modèle au format MaxText
Pour entraîner le modèle au format MaxText, vous devez le convertir du format Hugging Face au format MaxText.
Une fois que vous avez terminé de créer votre cluster Cluster Toolkit, configurez Docker :
Pour simplifier les commandes suivantes, configurez votre projet, votre cluster et votre emplacement par défaut :
Pour convertir le modèle du format Hugging Face au format MaxText et le stocker dans votre bucket Cloud Storage, exécutez le script suivant :
Pour vérifier l'état de la tâche de conversion, exécutez la commande suivante :
Démarrer la charge de travail d'entraînement
Une fois le processus de conversion terminé, vous pouvez démarrer la charge de travail SFT en exécutant la commande suivante :
Pour vérifier l'état de la tâche d'entraînement, exécutez la commande suivante :
Reconvertir le modèle entraîné au format Hugging Face
Une fois la charge de travail d'entraînement terminée, reconvertissez le modèle au format Hugging Face :
Pour vérifier l'état de la tâche de conversion, exécutez la commande suivante :
Libérer de l'espace
Pour éviter des frais supplémentaires, supprimez les ressources créées lors de ce tutoriel.
Étape suivante
- Pour en savoir plus sur Cloud TPU, consultez la Présentation des Cloud TPU.
- Pour en savoir plus sur l'architecture et la configuration du
v6e-32TPU, consultez TPU v6e.