# 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.
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.
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 %.
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
Zatím žádné komentáře.