发帖者总结了团队在为 Gemma-4 打通微调与部署流程时踩过的几个关键坑,核心是训练和上线并不像表面那样直接可用。首先,PEFT 不能识别 Gemma 4 的自定义层,因为 Google 把视觉和音频投影包进了不继承 `nn.Linear` 的 `ClippableLinear`,结果即便只做文本微调也无法挂载 LoRA,他们的处理方式是在加载权重后、调用 PEFT 前先解开这层包装。其次,TRL 的 SFTTrainer 会静默毁掉训练:它硬编码 `use_cache=False`,与 Gemma 4 的 KV 共享注意力冲突,表现为 loss 不收敛、没有报错、只产生无效梯度,这一问题已在 transformers v5.5.2 及以上版本修复。再次,DeepSpeed ZeRO-3 会把 LoRA 适配器保存成“半空”状态,部分层张量元素为零,导致模型看似训练正常却几乎等于没微调,因此他们建议 Gemma 4 的 LoRA 不要用 DeepSpeed。最后,部署侧目前也缺少对 Gemma 4 多模态结构运行时 LoRA 的现成支持,只能先合并权重并手动重映射 state dict 键后再提供服务。
来源:Reddit(r/MachineLearning)
原始发布时间:2026-04-19 06:57