En este instructivo, se muestra cómo ejecutar el entrenamiento de aprendizaje por refuerzo (RL) de varios hosts
en un clúster de unidad de procesamiento tensorial (TPU) v6e-32 con MaxText y
Cluster Toolkit. Usa
Cluster Toolkit para ejecutar una
carga de trabajo de entrenamiento de varios hosts y exportar los resultados al formato de Hugging Face
para entregarlos.
Resumen de la carga de trabajo
La ejecución de esta carga de trabajo de entrenamiento posterior de RL en Cloud TPU y GKE incluye los siguientes componentes:
- Modelo: Gemma 4 26B A4B Instruct (
google/gemma-4-26b-a4b-it), un modelo avanzado de pesos abiertos ajustado por instrucciones. En este instructivo, las ponderaciones del modelo se descargan de Hugging Face, se convierten en un formato compatible con MaxText y se implementan en un clúster de GKE con la infraestructura de Cloud TPU v6e. - Algoritmo de aprendizaje por refuerzo (RL): Optimización de políticas relativas de grupo (GRPO) con MaxText y Pathways La carga de trabajo ejecuta una
canalización escalable posterior al entrenamiento con el entrenador de RL integrado de MaxText
(
maxtext.trainers.post_train.rl.train_rl) vinculado con un backend de muestreador de vLLM. GRPO optimiza la política generando un grupo de resultados por instrucción y evaluando las recompensas relativas sin necesidad de un modelo crítico independiente. - Conjunto de datos y plantilla: OpenMathInstruct-2 (
openmathinstruct2_rl.json), un conjunto de datos de ajuste de instrucciones matemáticas a gran escala. La carga de trabajo usa plantillas de chat estructuradas durante la fase de lanzamiento del RL para mejorar las capacidades de razonamiento matemático en varios pasos. - Infraestructura y framework: GKE, administrado con
Cluster Toolkit, en Cloud TPU v6e (porción
ct6e-standard-4t,v6e-32con una topología4x8). El framework es MaxText (tpu_post_training:0.2.4) con Pathways y un backend de JAX.
Objetivos
- Instala Cluster Toolkit y sus dependencias.
- Implementa un clúster de Cluster Toolkit.
- Convierte un modelo de Hugging Face al formato de MaxText.
- Ejecutar una carga de trabajo de entrenamiento de RL en el clúster de TPU v6e
- Vuelve a convertir el modelo ajustado al formato de Hugging Face para entregarlo.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto,
usa la calculadora de precios.
Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.
Antes de comenzar
Necesitas un token de acceso de Hugging Face para usar este instructivo. Puedes registrarte para obtener una cuenta gratuita en Hugging Face. Después de tener una cuenta, genera un token de acceso:
- En la página Welcome to Hugging Face, haz clic en el avatar de tu cuenta y selecciona Tokens de acceso.
- En la página Tokens de acceso, haz clic en Crear token nuevo.
- Selecciona el tipo de token Lectura y, luego, ingresa un nombre para el token.
- Se mostrará tu token de acceso. Guarda el token en un lugar seguro.
- En la tarjeta del modelo
google/gemma-4-26b-a4b-iten Hugging Face, acepta el contrato de licencia del modelo.
Si quieres obtener los permisos que necesitas para completar este instructivo, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
- Administrador de TPU (
roles/tpu.admin) - Administrador de Kubernetes Engine (
roles/container.admin) - Administrador de Compute (
roles/compute.admin) - Administrador de almacenamiento (
roles/storage.admin) - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) - Administrador de cuenta de servicio (
roles/iam.serviceAccountAdmin) - Administrador de IAM de proyecto (
roles/resourcemanager.projectIamAdmin) - Administrador de Service Usage ()
roles/serviceusage.serviceUsageAdmin
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Configura tus variables de entorno
Configura las variables de entorno:
Reemplaza lo siguiente:
YOUR_PROJECT_ID: Es el ID de tu proyecto de Google Cloud .YOUR_REGION: Es la región en la que se encuentra tu reserva de TPU y en la que implementas el clúster.YOUR_ZONE: Es la zona en la que se encuentra tu reserva de TPU y en la que implementas tu clúster.YOUR_CLUSTER_NAME: Es el nombre del clúster de GKE. El nombre debe comenzar con una letra minúscula, contener solo letras minúsculas, números y guiones, y tener 20 caracteres o menos.YOUR_BUCKET_NAME: Es un nombre único a nivel global para un bucket de Cloud Storage.YOUR_RESERVATION_NAME: Es el nombre de tu reserva de TPU v6e.YOUR_HF_TOKEN: Es tu token de acceso de Hugging Face.
Instala las dependencias de Cluster Toolkit
Para completar este instructivo desde un cliente o una estación de trabajo de Linux o macOS, sigue los pasos pertinentes en Instala dependencias en la documentación de Cluster Toolkit.
Si usas Cloud Shell, puedes omitir esta sección.
Instala Cluster Toolkit
Descarga y extrae el paquete compilado previamente para la versión específica de
Cluster Toolkit definida en CLUSTER_TOOLKIT_VERSION (v1.103.0) en
tu directorio de trabajo actual:
Autentica tu entorno
Antes de ejecutar las secuencias de comandos de implementación, debes autenticar Google Cloud CLI y configurar tus credenciales predeterminadas de la aplicación (ADC). Esto garantiza que Cluster Toolkit pueda aprovisionar recursos y enviar imágenes a Artifact Registry en tu nombre.
Crea tu clúster de Cluster Toolkit
Para crear e implementar un clúster de Cluster Toolkit con 32 chips TPU v6e,
completa los siguientes pasos:
Crea un bucket de Cloud Storage:
Usa el comando
gcluster deploypara implementar tu clúster de Cluster Toolkit con el planogke-tpu-v6e-advanced.yamly pasar las variables requeridas con la marca--vars:
Convierte el modelo al formato de MaxText
Para entrenar el modelo en el formato de MaxText, debes convertirlo del formato de Hugging Face al formato de MaxText.
Para simplificar los comandos posteriores, usa el comando
gcluster job configpara configurar tu proyecto, clúster y ubicación predeterminados:Usa el comando
gcluster job submitpara convertir el modelo del formato de Hugging Face al formato de MaxText y almacenarlo en tu bucket de Cloud Storage:El comando incluye la marca
--await-job-completion, lo que significa que espera en tu terminal actual hasta que finalice la conversión.Opcional: Para transmitir los registros de conversión mientras se ejecuta el trabajo, abre una terminal independiente en el directorio de trabajo en el que extrajiste
gclustery ejecuta el comandogcluster job logs:En la terminal original, verifica que los archivos del modelo convertidos estén disponibles en tu bucket de Cloud Storage:
Inicia la carga de trabajo de entrenamiento
Una vez que se complete el proceso de conversión, inicia la carga de trabajo de entrenamiento de RL:
Verifica el estado, espera a que el Pod coordinador esté listo y transmite los registros del trabajo de entrenamiento:
Inmediatamente después del envío, el resultado del comando
./gcluster job listpodría mostrar brevementeSuspendedmientras GKE escala verticalmente el grupo de nodos de CPU del coordinador de Pathways (cpu-np). Cuando comienza el trabajo, genera una evaluación inicial previa al entrenamiento en el paso 0 (Pre RL Training: ... mean_reward=...), pausa el resultado del registro durante varios minutos durante la compilación inicial de XLA y, luego, entrena durante 50 pasos, imprimiendoReshard finishedy generaciones de lanzamiento en cada paso sin números de paso.Antes de continuar con el siguiente paso, espera hasta que los registros muestren
Post RL Training: ... mean_reward=...y el resultado del comando./gcluster job listmuestre el estado degemma4-trainingcomoSucceeded.Verifica que los puntos de control de entrenamiento se generen en tu bucket de Cloud Storage:
Vuelve a convertir el modelo entrenado al formato de Hugging Face
Una vez que se haya completado la carga de trabajo de entrenamiento, vuelve a convertir el modelo al formato de Hugging Face:
Opcional: Para supervisar los registros de conversión en vivo mientras el comando
--await-job-completionanterior espera en tu primera terminal, abre una terminal independiente en el directorio de trabajo en el que extrajistegclustery usa el comandogcluster job logs:En la terminal original, verifica que los pesos y los archivos de configuración del modelo de Hugging Face entrenado estén presentes en tu bucket de Cloud Storage:
Realiza una limpieza
Para evitar que se generen cargos adicionales, usa el comando
gcluster destroy para borrar los
recursos que se crearon durante este instructivo:
¿Qué sigue?
- Para obtener más información sobre Cloud TPU, consulta Introducción a Cloud TPU.
- Para obtener detalles sobre la arquitectura y la configuración de la TPU
v6e-32, consulta TPU v6e. - Para obtener más información sobre Cluster Toolkit, consulta Descripción general de Cluster Toolkit.