En este instructivo, se muestra cómo ejecutar el ajuste supervisado (SFT) en un clúster de unidades de procesamiento tensorial (TPU) v6e con MaxText y Cluster Toolkit. Usarás 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 SFT en la TPU.
- 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 liberar 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-31b.
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 la 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
Para configurar tus variables de entorno, ejecuta la siguiente secuencia de comandos:
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_REPOSITORY_NAME: Es el nombre del repositorio de Artifact Registry para tus imágenes de MaxText.
- YOUR_RESERVATION_NAME: Es el nombre de tu reserva.
- YOUR_HF_TOKEN: Es tu token de acceso de Hugging Face.
- YOUR_BUCKET_NAME: Es un nombre único a nivel global para un bucket de Cloud Storage.
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 32 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 el módulonode_pool_service_account:Para implementar tu clúster de Cluster Toolkit, usa el blueprint
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:
Para convertir el modelo del formato de Hugging Face al formato MaxText y almacenarlo en tu bucket de Cloud Storage, ejecuta la siguiente secuencia de comandos:
Para verificar el estado del trabajo de conversión, ejecuta el siguiente comando:
Inicia la carga de trabajo de entrenamiento
Una vez que se complete el proceso de conversión, puedes iniciar la carga de trabajo de SFT ejecutando el siguiente comando:
Para verificar el estado del trabajo de entrenamiento, ejecuta el siguiente comando:
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:
Para verificar el estado del trabajo de conversión, ejecuta el siguiente comando:
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-32, consulta TPU v6e.