En este instructivo, se proporciona una guía paso a paso para ejecutar el ajuste supervisado (SFT) en el modelo Qwen3-14b con MaxText en Cloud TPU. Aprenderás a compilar una imagen de contenedor especializada, aprovisionar un clúster de Google Kubernetes Engine (GKE) con Pathways mediante el kit de tratamiento de datos acelerado (XPK) y ejecutar una carga de trabajo de entrenamiento de varios hosts.
Objetivos
- Aprende a compilar una imagen de contenedor de MaxText personalizada optimizada para el entrenamiento posterior.
- Aprovisiona un clúster de GKE con XPK con Pathways habilitado.
- Convierte el modelo Qwen3 14b del formato de Hugging Face al formato de MaxText.
- Ejecuta una carga de trabajo de entrenamiento de SFT de varios hosts en Cloud 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:
- Google Kubernetes Engine
- Cloud TPU
- Cloud Storage
- Artifact Registry
- Compute Engine, for the temporary build virtual machine (VM)
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
- Verifica que tu cuenta de usuario o cuenta de servicio tenga las siguientes funciones:
roles/compute.admin, para crear la VM de compilaciónroles/artifactregistry.admin, para administrar el repositorio de Dockerroles/storage.admin, para administrar el bucket de datosroles/container.admin, para crear y administrar el clúster de Google Kubernetes Engineroles/iam.serviceAccountAdmin, para crear la cuenta de servicio de la carga de trabajoroles/resourcemanager.projectIamAdmin, para configurar las políticas de Identity and Access Management (IAM)roles/iam.serviceAccountUser, para actuar como la cuenta de servicio
- Instala y, luego, inicializa Google Cloud CLI.
- Verifica que hayas instalado Python 3.12 o una versión posterior en tu estación de trabajo.
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 Access tokens.
- En la página Access tokens, haz clic en Create new token.
- Selecciona el tipo de token Read y, luego, ingresa un nombre para tu token.
- Se muestra tu token de acceso. Guarda el token en un lugar seguro.
Configura el 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 que deseas usar.
- YOUR_ZONE: Es la zona que deseas usar.
- YOUR_CLUSTER_NAME: Es un nombre para tu clúster de Google Kubernetes Engine.
- YOUR_GCS_BUCKET: Es un nombre único para tu bucket de Cloud Storage.
- YOUR_RESERVATION_NAME: Es tu reserva de capacidad.
- YOUR_HF_TOKEN: Es tu token de acceso de Hugging Face.
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 Google Kubernetes Engine
Para ejecutar el entrenamiento de SFT en el modelo Qwen3 14b, necesitas un clúster de Google Kubernetes Engine equipado con chips de TPU. Instala el kit de tratamiento de datos acelerado (XPK) y crea un clúster de GKE con compatibilidad con Pathways.
Prepara el modelo para el entrenamiento
Convierte el modelo base al formato de MaxText con una carga de trabajo basada en CPU. No ejecutes esta tarea en varias máquinas en paralelo. El siguiente comando incluye una verificación para garantizar que la conversión se ejecute en un solo nodo TPU.
Realiza un seguimiento del progreso de la conversión del modelo
Para realizar un seguimiento del progreso de la conversión, haz lo siguiente:
- Para enumerar los pods programados en tu clúster de GKE, ejecuta el comando
kubectl get pod. - Busca el pod llamado
qwen-hf-to-mt-slice-job-0-0-HASH. - Para inspeccionar el resultado del pod en tiempo real, ejecuta el comando
kubectl logs -f POD_NAME.
Inicia la carga de trabajo de entrenamiento
Una vez que se complete el proceso de conversión, puedes iniciar la carga de trabajo de ajuste de SFT con XPK.
Supervisa la carga de trabajo de entrenamiento
Supervisa el estado de tu carga de trabajo con la interfaz de línea de comandos (CLI) de XPK.
xpk workload list --cluster ${CLUSTER_NAME} --project ${PROJECT} --zone ${ZONE}
Para ver los registros y el uso de la TPU, usa la Google Cloud consola. También puedes ver los registros ejecutando el siguiente comando:
kubectl logs -f qwen-training-pathways-head-0-0-HASH
Reemplaza HASH por el hash numérico en el nombre de tu pod. Para verificar el valor de este hash, ejecuta el comando kubectl get pod y examina la lista de pods que se muestra.
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 los puntos de control al formato de Hugging Face.
Para realizar un seguimiento del progreso de la conversión, ejecuta el comando
kubectl logs -f qwen-mt-to-hf-slice-job-0-0-HASH,
y reemplaza HASH por el hash numérico en el nombre de tu pod.
Una vez que se complete la conversión, tu modelo ajustado almacenado en gs://$GCS_BUCKET/qwen-3-14b/hf-trained/ estará listo para usarse.
Limpia
Para evitar que se apliquen cargos adicionales, borra los recursos creados durante este instructivo, incluidos tu clúster de Google Kubernetes Engine, tu bucket de Cloud Storage y tu repositorio de Artifact Registry.
Para borrar los recursos que creaste en este instructivo, ejecuta el siguiente comando:
¿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.