在 Cloud Run Jobs 上使用 GPU 微调 Gemma 4 31B 进行图像分类
Gemma 4 31B 模型使用 Cloud Run Jobs 和 NVIDIA RTX PRO 6000 在 Oxford-IIIT Pet 数据集上进行微调。动物品种分类准确率从 89% 提升至 94%,得益于 QLoRA 量化与 rank 64 的 LoRA。本指南详解架构变更、数据准备及 Google Cloud 部署。
Gemma 4 架构变更
Gemma 4 采用 Apache 2.0 许可,基于专家混合 (MoE) 架构,总参数 31B 和 26B。上下文窗口扩展至 256K 令牌。支持多模态输入:图像、视频、音频。内置函数调用和结构化 JSON 生成。
以往 Gemma 脚本因模型加载和聊天模板变更而失效。多模态需使用 AutoModelForMultimodalLM。
内存与 GPU 需求
NVIDIA RTX PRO 6000 提供 96 GB 显存。Gemma 4 31B 在 bfloat16 下占 62 GB。结合 bitsandbytes 的 4 位 QLoRA 量化,仅需 18-20 GB,释放资源支持更长上下文。
Gemma 4 代码适配
输入数据格式
图像置于文本之前。指令与用户提示合并。{"type": "image"} 占位符标记处理器中图像令牌位置。
标签掩码
动态图像令牌数量需从 input_ids 数组末尾扫描,定位响应边界。单独文本分词会导致长度不匹配。
LoRA 配置
架构使用 Gemma4ClippableLinear。设置 LoRA target_modules="all-linear",绕过包装器避免训练错误。
微调结果
在 700 张图像上,中间准确率与基线模型相当。完整 Oxford-IIIT Pet 数据集将准确率提升至 94%,参数如下:
- Rank 64 / Alpha 64
- 学习率 5e-5
基线准确率:89%。
Google Cloud 环境配置
在计费项目中启用 Cloud Run 和 Cloud Build API。获取 Hugging Face 令牌。
- 克隆仓库:
git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd devrel-demos/ai-ml/finetune_gemma/
- 使用 2B 模型在 CPU 上测试:
python3 finetune_and_evaluate.py \
--model-id google/gemma-4-e2b-it \
--device cpu \
--train-size 20 \
--num-epochs 1
将权重上传至目标区域的 GCS 存储桶。
构建并运行镜像
构建 Docker 镜像:
gcloud builds submit --tag $REGION-docker.pkg.dev/$PROJECT_ID/$AR_REPO/$IMAGE_NAME:latest .
创建带 GPU 的 Job:
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
关键要点
- QLoRA 将 31B 模型显存降至 20 GB,适配 RTX PRO 6000。
- AutoModelForMultimodalLM 必备,支持图像先行文本。
- 从 input_ids 末尾掩码 处理动态令牌。
- target_modules="all-linear" 稳定 Gemma4ClippableLinear 的 LoRA。
- 准确率提升 5% 至 94%,针对 Oxford-IIIT Pet。
— Editorial Team
暂无评论。