みなさん、
今週、MLチームが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ファイルには半分の層で要素数が0のテンソルが入っています。モデルは、まったく微調整されていなかったかのように振る舞います。回避策:Gemma 4に対するLoRAではDeepSpeedを使わないでください。
- 実行時のLoRA配信がどこにもありません。 ことがありますが、vLLMやSGLangがGemma 4のマルチモーダルアーキテクチャに対する実行時LoRAをサポートするまで、1分ほどかかることがあります。配信前に、重みを手動でマージし、state dictキーをリマップする必要があります。
ブログにはさらに詳しい情報がたくさんありますが、あなたのGemma-4の取り組みにも役立てば幸いです!
[link] [comments]




