В этом поколении открытых моделей улучшены возможности рассуждения и эффективность архитектуры. Ниже будет инструкция по дообучению модели на собственных данных.
| Если вам интересна тема AI-агентов и внедрения нейросетей, заглядывайте в мой Telegram-канал ДругОпенсурса. Там я публикую свежие новости и разборы инструментов в числе первых. |

Но сначала, что изменилось в Gemma 4
Gemma 4 получила лицензию Apache 2.0 и обновленную архитектуру. Основные параметры следующие:
• 31B и 26B MoE
• Поддержка окна до 256K
• Нативная обработка изображений, видео и аудио
• Встроенная поддержка вызова функций и структурированного JSON
Из-за архитектурных изменений скрипты для предыдущих версий Gemma не подходят. Требуется изменить логику загрузки и подготовки данных.
Память и GPU
Для работы используется NVIDIA RTX PRO 6000 на Cloud Run с 96 ГБ видеопамяти. Модель Gemma 4 31B в точности bfloat16 занимает около 62 ГБ. Использование 4-битного квантования QLoRA через библиотеку bitsandbytes снижает потребление памяти до 18-20 ГБ. Это оставляет свободный объем VRAM для обработки длинного контекста и мультимодальных данных.
Изменения в коде для Gemma 4
Входные данные
Gemma 4 требует передачи изображения перед текстом. Инструкции теперь объединяются с пользовательским промптом. В коде используется заполнитель {“type”: “image”} , который указывает процессору место для вставки токенов изображения.
Класс модели
Для корректной работы со всеми типами данных теперь используется AutoModelForMultimodalLM
Маскирование меток
В предыдущих версиях можно было использовать фиксированные ID токенов для поиска начала ответа ассистента. В Gemma 4 количество токенов изображения динамическое. Если токенизировать текст отдельно, его длина может не совпасть с длиной в общем шаблоне чата. Решение — поиск токенов ответа в полном массиве input_ids с конца, чтобы точно определить границу маскирования.
Настройка LoRA
В Gemma 4 используется Gemma4ClippableLinear для стабилизации обучения. Обычный LoRA может игнорировать эту обертку, что ведет к ошибкам в обучении. Чтобы этого избежать, в параметрах PEFT нужно указывать target_modules=”all-linear .
Результаты
Базовая точность Gemma 4 на тесте составила 89%. После обучения на полном наборе данных Oxford-IIIT Pet точность поднялась до 94%. Использовалась конфигурация Rank 64 / Alpha 64 и скорость обучения 5e-5.

Запуск обучения на Cloud Run
Нужен проект в Google Cloud с включенным биллингом и активированными API Cloud Run и Cloud Build. Также требуется токен Hugging Face для доступа к весам модели.
• Клонируйте репозиторий
git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd devrel-demos/ai-ml/finetune_gemma/
• Проверьте работу скрипта на CPU с маленькой моделью 2B и малым количеством данных
python3 finetune_and_evaluate.py
--model-id google/gemma-4-e2b-it
--device cpu
--train-size 20
--num-epochs 1
Чтобы ускорить запуск задачи в облаке, загрузите веса модели в корзину Google Cloud Storage в том же регионе, где будет работать Cloud Run.
• Соберите образ через Cloud Build
gcloud builds submit --tag $REGION-docker.pkg.dev/$PROJECT_ID/$AR_REPO/$IMAGE_NAME:latest .
• Создайте задачу Cloud Run с поддержкой GPU и монтированием корзины GCS как локального диска
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"
• Запустите выполнение
gcloud beta run jobs execute gemma4-finetuning-job --region $REGION --async
Автор: Qwertcoser


