Zpět na domů

Doladění Gemma 4 na Cloud Run s GPU

Článek popisuje doladění Gemma 4 31B na Cloud Run Jobs s použitím NVIDIA RTX PRO 6000 pro klasifikaci plemen zvířat podle datasetu Oxford-IIIT Pet. Přesnost vzrostla z 89 % na 94 % při QLoRA a LoRA rank 64. Jsou uvedeny změny kódu, příkazy nasazení a klíčové adaptace pro multimodální data.

Gemma 4 31B: doladění na GPU v Cloud Run do 94 % přesnosti
Advertisement 728x90

# Doladění modelu Gemma 4 31B na Cloud Run Jobs s GPU pro klasifikaci obrázků

Model Gemma 4 31B je doladěn na datové sadě Oxford-IIIT Pet s využitím Cloud Run Jobs a NVIDIA RTX PRO 6000. Přesnost klasifikace plemen zvířat vzrostla z 89 % na 94 % díky použití QLoRA kvantizace a LoRA s rankem 64. Návod pokrývá změny v architektuře, přípravu dat a spuštění v Google Cloud.

Architektonické změny Gemma 4

Gemma 4 využívá licenci Apache 2.0 a MoE architekturu s 31B a 26B parametry. Kontextové okno je rozšířeno na 256K tokenů. Model podporuje multimodální vstupy: obrázky, video, audio. Integrované jsou volání funkcí a generování strukturovaného JSON.

Předchozí skripty pro Gemmu nejsou kompatibilní kvůli změnám v načítání modelu a šablonách chatu. Pro multimodálnost se používá AutoModelForMultimodalLM.

Google AdInline article slot

Požadavky na paměť a GPU

NVIDIA RTX PRO 6000 nabízí 96 GB VRAM. Gemma 4 31B v bfloat16 zabírá 62 GB. QLoRA s 4bitovou kvantizací přes bitsandbytes snižuje na 18–20 GB, což uvolní prostor pro delší kontext.

Adaptace kódu pro Gemma 4

Formát vstupních dat

Obrázek se předává před textem. Instrukce se spojí s uživatelským promptem. Placeholder {"type": "image"} označí pozici pro tokeny obrázku v procesoru.

Maskaování štítků

Dynamický počet tokenů obrázku vyžaduje hledání hranice odpovědi v celém poli input_ids zezadu. Samostatné tokenizování textu vede k nesouladu délek.

Google AdInline article slot

Konfigurace LoRA

Architektura používá Gemma4ClippableLinear. LoRA se nastavuje s target_modules="all-linear" pro obejití obalů a vyhnutí se chybám tréninku.

Výsledky doladění

Na 700 obrázcích dosáhla mezivýsledná přesnost úrovně základního modelu. Celá datová sada Oxford-IIIT Pet přinesla nárůst na 94 % při:

  • Rank 64 / Alpha 64
  • Learning rate 5e-5

Základní přesnost: 89 %.

Google AdInline article slot

Nastavení prostředí v Google Cloud

Aktivujte API Cloud Run a Cloud Build v projektu s fakturací. Získejte token Hugging Face.

  • Naklonujte repozitář:
git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd devrel-demos/ai-ml/finetune_gemma/
  • Otestujte na CPU s modelem 2B:
python3 finetune_and_evaluate.py \
  --model-id google/gemma-4-e2b-it \
  --device cpu \
  --train-size 20 \
  --num-epochs 1

Nahrajte váhy do GCS bucketu v cílové oblasti.

Sestavení a spuštění obrazu

Sestavte Docker obraz:

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

Vytvořte Job s 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"

Spusťte úlohu:

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

Co je důležité

  • QLoRA snižuje VRAM na 20 GB pro 31B model na RTX PRO 6000.
  • AutoModelForMultimodalLM je nutná pro obrázky před textem.
  • Maskování zezadu input_ids řeší problém dynamických tokenů.
  • target_modules="all-linear" stabilizuje LoRA na Gemma4ClippableLinear.
  • Přesnost vzrostla o 5 % na 94 % na Oxford-IIIT Pet.

— Editorial Team

Advertisement 728x90

Číst dál