Zurück zur Startseite

Feinabstimmung von Gemma 4 auf Cloud Run mit GPU

Der Artikel beschreibt die Feinabstimmung von Gemma 4 31B auf Cloud Run Jobs mit NVIDIA RTX PRO 6000 zur Klassifikation von Tierarten aus dem Oxford-IIIT Pet-Datensatz. Die Genauigkeit stieg von 89 % auf 94 % mit QLoRA und LoRA rank 64. Code-Änderungen, Bereitstellungsbefehle und wichtige Anpassungen für multimodale Daten werden bereitgestellt.

Gemma 4 31B: Feinabstimmung auf GPU in Cloud Run bis zu 94 % Genauigkeit
Advertisement 728x90

Fine-Tuning von Gemma 4 31B auf Cloud Run Jobs mit GPU für Bildklassifikation

Das Gemma-4-31B-Modell wurde auf dem Oxford-IIIT-Pet-Datensatz mit Cloud Run Jobs und NVIDIA RTX PRO 6000 feinabgestimmt. Die Genauigkeit bei der Klassifikation von Tierarten stieg von 89 % auf 94 % durch QLoRA-Quantisierung und LoRA mit Rang 64. Diese Anleitung beschreibt Architekturänderungen, Datenaufbereitung und den Einsatz auf Google Cloud.

Architekturänderungen bei Gemma 4

Gemma 4 nutzt die Apache-2.0-Lizenz und eine Mixture-of-Experts (MoE)-Architektur mit 31 Mrd. und 26 Mrd. Parametern. Das Kontextfenster wurde auf 256.000 Token erweitert. Es unterstützt multimodale Eingaben: Bilder, Video, Audio. Integrierte Funktionsaufrufe und strukturierte JSON-Generierung sind enthalten.

Frühere Gemma-Skripte funktionieren nicht mehr aufgrund von Änderungen beim Modellladen und Chat-Templates. Für Multimodalität verwenden Sie AutoModelForMultimodalLM.

Google AdInline article slot

Speicher- und GPU-Anforderungen

Die NVIDIA RTX PRO 6000 bietet 96 GB VRAM. Gemma 4 31B in bfloat16 benötigt 62 GB. QLoRA mit 4-Bit-Quantisierung über bitsandbytes reduziert das auf 18–20 GB und schafft Platz für längere Kontexte.

Code-Anpassungen für Gemma 4

Eingabedatenformat

Bilder stehen vor dem Text. Die Anweisung verschmilzt mit dem Benutzerprompt. Der Platzhalter {"type": "image"} markiert die Stelle für Bildtokens im Prozessor.

Label-Maskierung

Dynamische Bildtoken-Anzahlen erfordern ein Scannen des gesamten input_ids-Arrays von hinten, um die Antwortgrenze zu finden. Getrennte Text-Tokenisierung führt zu Längenfehlern.

Google AdInline article slot

LoRA-Konfiguration

Die Architektur verwendet Gemma4ClippableLinear. Setzen Sie LoRA mit target_modules="all-linear", um Wrapper zu umgehen und Trainingsfehler zu vermeiden.

Ergebnisse des Fine-Tunings

Bei 700 Bildern entsprach die Zwischengenauigkeit dem Basismodell. Der vollständige Oxford-IIIT-Pet-Datensatz steigerte sie auf 94 % mit:

  • Rang 64 / Alpha 64
  • Lernrate 5e-5

Basisgenauigkeit: 89 %.

Google AdInline article slot

Einrichtung der Google Cloud-Umgebung

Aktivieren Sie die Cloud Run- und Cloud Build-APIs in einem abgerechneten Projekt. Holen Sie sich Ihren Hugging Face-Token.

  • Repository klonen:
git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd devrel-demos/ai-ml/finetune_gemma/
  • Test auf CPU mit dem 2B-Modell:
python3 finetune_and_evaluate.py \
  --model-id google/gemma-4-e2b-it \
  --device cpu \
  --train-size 20 \
  --num-epochs 1

Gewichte in einen GCS-Bucket in Ihrer Zielregion hochladen.

Docker-Image bauen und ausführen

Docker-Image bauen:

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

Job mit GPU erstellen:

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"

Job ausführen:

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

Wichtige Erkenntnisse

  • QLoRA reduziert VRAM auf 20 GB für das 31B-Modell auf RTX PRO 6000.
  • AutoModelForMultimodalLM ist essenziell für Bilder vor Text.
  • Maskierung vom Ende von input_ids bewältigt dynamische Tokens.
  • target_modules="all-linear" stabilisiert LoRA auf Gemma4ClippableLinear.
  • Genauigkeit stieg um 5 % auf 94 % beim Oxford-IIIT-Pet-Datensatz.

— Editorial Team

Advertisement 728x90

Weiterlesen