Gemma-4微调与部署中的挑战与磨难 [P]

Reddit r/MachineLearning 新闻

摘要

一个机器学习团队记录了在微调并部署Gemma-4过程中遇到的实际挑战,包括与PEFT、SFTTrainer、DeepSpeed ZeRO-3的不兼容,以及缺乏运行时LoRA服务支持,并提供了每个问题的解决方法。

大家好,我们的机器学习团队本周花了一些时间让Gemma-4的训练和部署正常工作,并想记录下我们在此过程中遇到的所有问题。 * **PEFT无法识别Gemma 4的自定义层。** Google将视觉/音频投影封装在一个新的`ClippableLinear`类中,该类没有继承`nn.Linear`,因此PEFT拒绝附加LoRA,即使是纯文本微调也不行。解决方法:在加载权重后、调用PEFT之前解包这些封装器。 * **SFTTrainer静默中断训练。** TRL硬编码了`use_cache=False`,这破坏了Gemma 4的KV共享注意力机制。损失从不收敛,也没有错误,只有混乱的梯度。已在transformers v5.5.2+的上游修复。 * **DeepSpeed ZeRO-3保存半空的适配器。** 训练损失看起来完美,但保存的LoRA文件中有半数层的张量为零元素。模型表现得像是从未被微调过。临时解决方法:不要在Gemma 4上使用DeepSpeed进行LoRA训练。 * **任何地方都不支持运行时LoRA服务。** vLLM和SGLang需要一段时间才能支持Gemma 4多模态架构的运行时LoRA。你必须在提供服务之前手动合并权重并重新映射状态字典键。更详细的说明见[博客](https://www.oxen.ai/blog/writing-a-fine-tuning-and-deployment-pipeline-isnt-as-easy-as-it-looks-gemma-4-version),希望这对你的Gemma-4之旅有所帮助!
查看原文

相似文章

google/gemma-4-26B-A4B-it-assistant

Hugging Face Models Trending

Google DeepMind 发布了 Gemma 4 MTP 草稿模型(drafter),适用于 Gemma 4 系列模型,通过推测解码(speculative decoding)实现显著的解码加速,同时保持完全一致的生成质量,适用于低延迟应用场景。

[WIP] Gemma 4 MTP

Reddit r/LocalLLaMA

llama.cpp 是一个开源 C/C++ 库,用于在各种硬件上高效进行 LLM 推理,支持多种量化格式和 GPU 后端。本篇 README 详细介绍了其功能、安装方法以及近期更新,包括 Hugging Face 缓存迁移和多模态支持。