Ce tutoriel fournit un guide pas à pas pour exécuter
un entraînement par apprentissage par renforcement (RL) sur une seule v6e-8
instance de machine virtuelle (VM) Tensor Processing Unit (TPU) Google Cloud
à l'aide de MaxText, une pile d'entraînement hautes performances basée sur JAX
pour les grands modèles de langage (LLM).
Résumé de la charge de travail
L'exécution de cette charge de travail de post-entraînement RL sur Cloud TPU implique les composants suivants :
Modèle : Llama 3.1 8B Instruct (
llama3.1-8b-Instruct), un LLM à poids ouverts optimisé pour les tâches de dialogue et de suivi des instructions. Dans ce tutoriel, les poids du modèle sont convertis du format Hugging Face au format compatible avec MaxText (mt-format) et préparés pour une exécution distribuée sur un TPUv6e-8à l'aide de JAX.Algorithme d'apprentissage par renforcement (RL) : Group Relative Policy Optimization (GRPO), dans lequel la charge de travail exécute un pipeline de post-entraînement évolutif à l'aide de l'entraîneur RL intégré de MaxText. GRPO élimine le besoin d'un modèle de valeur ou de critique distinct en évaluant un groupe de sorties générées pour la même invite, en utilisant des récompenses relatives pour optimiser efficacement la stratégie de l'acteur.
Ensemble de données et modèle : Grade School Math 8K (GSM8K), un ensemble de données de haute qualité composé de problèmes mathématiques linguistiquement diversifiés pour les élèves du primaire. Cette charge de travail l'utilise pour générer des déploiements, calculer des récompenses et améliorer les capacités de raisonnement en plusieurs étapes lors de la phase d'alignement RL.
Infrastructure et framework : un seul nœud Cloud TPU
v6e-8(ct6e-standard-8t) utilisant MaxText (maxtext[tpu-post-train]), une pile d'entraînement hautes performances basée sur JAX.
Objectifs
- Configurer une instance de VM Cloud TPU.
- Installer MaxText et ses dépendances.
- Convertir un modèle Hugging Face au format MaxText.
- Exécuter une charge de travail RL Group Relative Policy Optimization (GRPO) sur le TPU.
- Reconvertir le modèle entraîné au format Hugging Face pour la diffusion.
Coûts
Dans ce tutoriel, vous utilisez les composants facturables de suivants 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 Effectuer un nettoyage.
Avant de commencer
Vous avez besoin d'un jeton d'accès Hugging Face pour suivre ce tutoriel. Vous pouvez créer 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 jeton 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
llama3.1-8b-Instruct.
Pour obtenir les autorisations nécessaires pour suivre ce tutoriel, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
- Administrateur TPU (
roles/tpu.admin) - Utilisateur du compte de service (
roles/iam.serviceAccountUser) - Éditeur Compute (
roles/compute.editor)
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 avec des rôles personnalisés ou d'autres rôles prédéfinis.
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_ZONE : zone que vous souhaitez utiliser
- YOUR_RESERVATION_NAME : votre réservation de capacité
- YOUR_TPU_NAME : nom de votre instance de VM Cloud TPU
Authentifiez-vous auprès de Google Cloud en exécutant la commande suivante :
gcloud auth login
Créer votre VM Cloud TPU
Créez une instance de VM Cloud TPU avec huit puces TPU v6e, liée à votre réservation de capacité.
Une fois l'instance de VM créée, connectez-vous à celle-ci à l'aide de SSH.
Suivez les étapes ci-dessous dans votre instance de VM TPU.
Installer MaxText
Mettez à jour les packages système dans l'instance de VM TPU.
Installez Python 3.12, qui est requis par MaxText, et son package d'environnement virtuel.
Utilisez uv pour accélérer l'installation du package Python.
Créez un environnement virtuel nommé maxtext_venv et activez-le.
Installez MaxText et les dépendances requises pour les tâches de post-entraînement.
Installez les dépendances requises restantes en exécutant la commande suivante :
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.
Indiquez les valeurs suivantes :
- Votre jeton d'accès Hugging Face
- Nom du modèle que vous souhaitez utiliser
- Répertoire dans lequel vous souhaitez enregistrer le modèle au format MaxText
- Options de chargement et de stockage
Remplacez YOUR_HF_TOKEN par le jeton d'accès Hugging Face que vous avez créé précédemment.
Pour convertir le modèle du format Hugging Face au format MaxText, exécutez le script suivant. Cette conversion prend environ cinq minutes.
Démarrer la charge de travail d'entraînement
Une fois le processus de conversion terminé, vous pouvez démarrer la charge de travail RL.
Configurez les paramètres d'entraînement de la charge de travail RL.
Démarrez le job d'entraînement. Cette opération prend environ 10 minutes sur une instance de VM
v6e-8.
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.
Définissez les chemins d'exportation et les paramètres entraînés.
Exécutez la reconversion au format Hugging Face.
Une fois la conversion terminée, votre modèle ajusté stocké dans /dev/shm/$MODEL_NAME/hf-trained est prêt à être utilisé. Étant donné que vous perdez l'accès au contenu du dossier /dev/shm lorsque la VM redémarre, vous devez déplacer le modèle ajusté vers un stockage persistant ou l'importer dans le hub Hugging Face.
Effectuer un nettoyage
Pour éviter des frais supplémentaires, supprimez les ressources créées lors de ce tutoriel.
Supprimer votre instance de VM TPU
Supprimez votre instance de VM Cloud TPU.
É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 TPU
v6e-8, consultez TPU v6e.