Volver al inicio

Ajuste fino de Gemma 4 en Cloud Run con GPU

El artículo describe el ajuste fino de Gemma 4 31B en Cloud Run Jobs usando NVIDIA RTX PRO 6000 para clasificar razas de animales del conjunto de datos Oxford-IIIT Pet. La precisión aumentó de 89% a 94% con QLoRA y LoRA rank 64. Se proporcionan cambios de código, comandos de implementación y adaptaciones clave para datos multimodales.

Gemma 4 31B: ajuste fino en GPU en Cloud Run hasta 94% de precisión
Advertisement 728x90

# Ajuste fino de Gemma 4 31B en Cloud Run Jobs con GPU para clasificación de imágenes

El modelo Gemma 4 31B se ajusta fino en el dataset Oxford-IIIT Pet usando Cloud Run Jobs y NVIDIA RTX PRO 6000. La precisión en la clasificación de razas de animales mejoró del 89% al 94% con cuantización QLoRA y LoRA en rango 64. Esta guía cubre cambios en la arquitectura, preparación de datos y despliegue en Google Cloud.

Cambios en la arquitectura de Gemma 4

Gemma 4 usa la licencia Apache 2.0 y una arquitectura Mixture-of-Experts (MoE) con 31B y 26B parámetros. La ventana de contexto se expandió a 256K tokens. Soporta entradas multimodales: imágenes, video, audio. Incluye llamada a funciones integrada y generación de JSON estructurado.

Los scripts anteriores de Gemma no funcionan debido a cambios en la carga del modelo y plantillas de chat. Para multimodalidad, usa AutoModelForMultimodalLM.

Google AdInline article slot

Requisitos de memoria y GPU

La NVIDIA RTX PRO 6000 ofrece 96 GB de VRAM. Gemma 4 31B en bfloat16 ocupa 62 GB. QLoRA con cuantización de 4 bits vía bitsandbytes lo reduce a 18-20 GB, liberando recursos para contextos más largos.

Adaptaciones de código para Gemma 4

Formato de datos de entrada

Las imágenes van antes del texto. La instrucción se fusiona con el prompt del usuario. El marcador {"type": "image"} indica el lugar para los tokens de imagen en el procesador.

Máscara de etiquetas

El conteo dinámico de tokens de imagen requiere escanear el array completo de input_ids desde el final para encontrar el límite de la respuesta. La tokenización separada de texto causa desajustes de longitud.

Google AdInline article slot

Configuración de LoRA

La arquitectura usa Gemma4ClippableLinear. Configura LoRA con target_modules="all-linear" para evitar envoltorios y errores de entrenamiento.

Resultados del ajuste fino

Con 700 imágenes, la precisión intermedia igualó al modelo base. El dataset completo Oxford-IIIT Pet la elevó al 94% con:

  • Rango 64 / Alpha 64
  • Tasa de aprendizaje 5e-5

Precisión base: 89%.

Google AdInline article slot

Configuración del entorno en Google Cloud

Activa las APIs de Cloud Run y Cloud Build en un proyecto facturado. Obtén tu token de Hugging Face.

  • Clona el repositorio:
git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd devrel-demos/ai-ml/finetune_gemma/
  • Prueba en CPU con el modelo 2B:
python3 finetune_and_evaluate.py \
  --model-id google/gemma-4-e2b-it \
  --device cpu \
  --train-size 20 \
  --num-epochs 1

Sube los pesos a un bucket de GCS en tu región objetivo.

Construcción y ejecución de la imagen

Construye la imagen Docker:

gcloud builds submit --tag $REGION-docker.pkg.dev/$PROJECT_ID/$AR_REPO/$IMAGE_NAME:latest .

Crea el Job con GPU:

gcloud beta run jobs create gemma4-finetuning-job \
  --region $REGION \
  --image $REGION-docker.pkg.dev/$PROJECT_ID/$AR_REPO/$IMAGE_NAME:latest \
  --gpu 1 \
  --gpu-type nvidia-rtx-pro-6000 \
  --cpu 30.0 \
  --memory 120Gi \
  --add-volume name=model-volume,type=cloud-storage,bucket=$BUCKET_NAME \
  --add-volume-mount volume=model-volume,mount-path=/mnt/gcs \
  --args="--model-id","/mnt/gcs/google/gemma-4-31b-it/","--output-dir","/mnt/gcs/gemma4-finetuned"

Ejecuta el job:

gcloud beta run jobs execute gemma4-finetuning-job --region $REGION --async

Lecciones clave

  • QLoRA reduce VRAM a 20 GB para el modelo 31B en RTX PRO 6000.
  • AutoModelForMultimodalLM es esencial para imágenes antes del texto.
  • Máscara desde el final de input_ids maneja tokens dinámicos.
  • target_modules="all-linear" estabiliza LoRA en Gemma4ClippableLinear.
  • La precisión subió 5% al 94% en Oxford-IIIT Pet.

— Editorial Team

Advertisement 728x90

Leer después