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-64 con MaxText y Cluster Toolkit. Usas
Cluster Toolkit para ejecutar una
carga de trabajo de entrenamiento de varios hosts y exportar los resultados al formato de Hugging Face
para la entrega.
Objetivos
- Instala Cluster Toolkit y sus dependencias.
- Instala MaxText y sus dependencias.
- Implementa un clúster de Cluster Toolkit.
- Convierte un modelo de Hugging Face al formato MaxText.
- Ejecuta 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 la entrega.
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 Libera espacio.
Antes de comenzar
Para usar este instructivo, necesitas un token de acceso de Hugging Face. 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 de bienvenida a 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 Leer y, luego, ingresa un nombre para tu token.
- Se mostrará tu token de acceso. Guarda el token en un lugar seguro.
- En el sitio web de Hugging Face, acepta el acuerdo de licencia
para el modelo que planeas entrenar. En este instructivo, se usa el modelo
gemma4-26b.
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:
-
Para completar este instructivo:
- Administrador de TPU (
roles/tpu.admin) - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) - Editor de Compute (
roles/compute.editor)
- Administrador de TPU (
-
Para preparar tu imagen de contenedor de MaxText:
- Editor de Cloud Build (
roles/cloudbuild.builds.editor) - Administrador de Artifact Registry (
roles/artifactregistry.admin) - Administrador de almacenamiento (
roles/storage.admin) - Administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Editor de Cloud Build (
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 mediante 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 Google Cloud proyecto.
- YOUR_REGION: Es la región en la que deseas implementar tu clúster.
- YOUR_ZONE: Es la zona en la que deseas implementar tu clúster.
- YOUR_CLUSTER_NAME: Es el nombre de tu clúster de Google Kubernetes Engine.
- YOUR_REPOSITORY_NAME: Es el nombre del repositorio de Artifact Registry para tus imágenes de MaxText.
- 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.
- 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
Para instalar el paquete compilado previamente de Cluster Toolkit, sigue las instrucciones que se indican en Instala Cluster Toolkit.
Prepara tu imagen de contenedor de MaxText
Para preparar tu imagen de contenedor de MaxText, incluida la instalación de las dependencias necesarias, completa los siguientes pasos:
Crea un bucket de Cloud Storage:
Crea un repositorio de Artifact Registry.
Crea un archivo en el directorio raíz de tu repositorio con el nombre de archivo
cloudbuild.yamly el siguiente contenido:Usa Cloud Build para compilar tu imagen de Docker de MaxText:
Crea tu clúster de Cluster Toolkit
Para crear y, luego, implementar un clúster de Cluster Toolkit con 64 chips de TPU v6e, completa los siguientes pasos:
Crea un rol personalizado de Identity and Access Management (IAM), llamado
gke.gcsfuse.profileUser:Crea un bucket de Cloud Storage:
De forma predeterminada, la cuenta de servicio del grupo de nodos del clúster no tiene los permisos necesarios para escribir en tu bucket de Cloud Storage. Para permitir que la cuenta de servicio del grupo de nodos escriba en tu bucket de Cloud Storage, debes otorgarle el rol
Storage Admin. Para otorgar este rol, edita el archivogke-tpu-v6e-advanced.yamlactualizando elservice-accountmódulo llamadonode_pool_service_account:Aplica la configuración personalizada al bloque
gke-tpu-v6e-clusterque anula la configuración predeterminada de IPv6 y del tipo de máquina:Para implementar tu clúster de Cluster Toolkit, usa el plano
gke-tpu-v6e-advanced.yamly pasa las variables necesarias con la marca--vars:
Convierte el modelo al formato MaxText
Para entrenar el modelo en formato MaxText, debes convertirlo del formato de Hugging Face al formato MaxText.
Después de terminar de crear tu clúster de Cluster Toolkit, configura Docker:
Para simplificar los comandos posteriores, configura tu proyecto, clúster y ubicación predeterminados:
Convierte el modelo del formato de Hugging Face al formato MaxText y almacénalo en tu bucket de Cloud Storage:
Verifica el estado del trabajo de conversión:
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 del trabajo de entrenamiento:
Vuelve a convertir el modelo entrenado al formato de Hugging Face
Una vez que se complete la carga de trabajo de entrenamiento, vuelve a convertir el modelo al formato de Hugging Face:
Verifica el estado del trabajo de conversión:
Limpia
Para evitar que se generen cargos adicionales, borra los recursos creados 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-64, consulta TPU v6e. - Para obtener más información sobre Cluster Toolkit, consulta Descripción general de Cluster Toolkit.