Guide de fine-tuning de Gemma 4
Entraînez Gemma 4 de Google avec Unsloth.
Vous pouvez désormais entraîner les modèles de Google Gemma 4 12B, E2B, E4B, 26B-A4B et 31B avec Unsloth. Unsloth prend en charge l'affinage vision, texte, audio et RL pour Gemma 4.
Unsloth entraîne Gemma 4 ~1,5× plus rapide avec ~60 % de VRAM en moins que les configurations FA2 (sans perte de précision)
Nous avons corrigé de nombreux bugs pour l'entraînement de Gemma 4 (non dérivés d'Unsloth).
Gemma 4 E2B fonctionne avec 8 Go de VRAM. E4B nécessite 10 Go de VRAM.
Démarrage rapideCorrections de bugs + Conseils
Affinez Gemma 4 via nos gratuits carnets Google Colab:
Vous pouvez exécuter et entraîner Gemma 4 gratuitement avec une interface dans notre Unsloth Studio✨ carnet :
Vous pouvez consulter davantage de carnets ici.
Vous pouvez aussi entraîner Gemma 4 avec l'apprentissage par renforcement (RL) sur 9 Go de VRAM.
Gemma 4 E2B LoRA fonctionne avec 8 à 10 Go de VRAM. E4B LoRA nécessite 17 Go de VRAM.
31B QLoRA fonctionne avec 22 Go et 26B-A4B LoRA nécessite >40 Go
Exportation/enregistrer les modèles en GGUF, etc. et affinage complet (FFT) fonctionne aussi.
🐛 Corrections de bugs + Conseils
Si vous voyez Gemma-4 E2B et E4B afficher une perte de 13 à 15, c'est tout à fait normal - c'est une particularité courante des modèles multimodaux. Cela s'est aussi produit sur Gemma-3N, Llama Vision, les modèles vision de Mistral et d'autres.
Gemma 26B et 31B ont une perte plus faible, de 1 à 3 ou moins. La vision sera 2 fois plus élevée, donc 3 à 5
🍇L'accumulation des gradients peut augmenter artificiellement vos pertes


Si vous voyez des pertes supérieures à 13-15 (comme 100 ou 300), il est très probable que l'accumulation des gradients ne soit pas correctement prise en compte - nous avons corrigé cela dans Unsloth et Unsloth Studio.
Pour en savoir plus sur l'accumulation des gradients, consultez notre article de correction de bug sur l'accumulation des gradients : https://unsloth.ai/blog/gradient
⁉️IndexError lors de l'inférence de Gemma-4 31B et 26B-A4B
Vous pourriez voir cette erreur lors d'une inférence avec 31B et 26B :
La cause est ci-dessous :
Or Gemma-4 31B et 26B-A4B sont fournis avec num_kv_shared_layers = 0. En Python, -0 == 0, donc layer_types[:-0] se réduit à layer_types[:0] == []. Le cache est construit avec zéro emplacement de couche et la toute première passe avant d'attention plante dans Cache.update.
⛔ use_cache = True la génération était du charabia pour E2B, E4B
use_cache = True la génération était du charabia pour E2B, E4BVoir le problème "[Gemma 4] use_cache=False corrompt le calcul de l'attention, produisant des logits incohérents #45242"
Gemma-4 E2B et E4B partagent l'état KV entre les couches (num_kv_shared_layers = 20 et 18). Le cache est le seul endroit où les premières couches stockent le KV pour que les couches ultérieures le réutilisent. Lorsque use_cache=False (comme le définissent tous les tutoriels QLoRA, et comme gradient_checkpointing=True l'impose), Gemma4TextModel.forward saute la construction du cache, donc les couches partageant le KV passent au recalcul local de K et V à partir des états cachés actuels. Les logits deviennent incohérents et la perte d'entraînement diverge.
Avant (unsloth/gemma-4-E2B-it, invite "Combien font 1+1 ?") :
Après notre correction :
📻Dépassement de capacité en float16 audio
Gemma4AudioAttention utilise config.attention_invalid_logits_value = -1e9 dans un masked_fill appel. Sur fp16 (Tesla T4), -1e9 dépasse la valeur maximale fp16 de 65504, provoquant :
Cela était dû à self.config.attention_invalid_logits_value :
💡Conseils pour Gemma-4
Si vous souhaitez préserver la capacité de raisonnement de raisonnement, vous pouvez mélanger des exemples de type raisonnement avec des réponses directes (conservez au minimum 75 % de raisonnement). Sinon, vous pouvez l'émettre entièrement.\n\nUtilisez
gemma-4pour le modèle de chat sans réflexion etgemma-4-thinkingpour la variante avec réflexion.\nUtilisez la version avec réflexion pour les modèles plus grands 26B et 31B, et la version sans réflexion pour les petits modèles.Pour activer le mode réflexion, utilisez
enable_thinking = True / Falsedanstokenizer.apply_chat_templateRéflexion activée :
Affichera
<bos><|turn>system\n<|think|><turn|>\n<|turn>user\nCombien font 2+2 ?<turn|>\n<|turn>model\nRéflexion désactivée :
Affichera
<bos><|turn>user\nCombien font 2+2 ?<turn|>\n<|turn>model\n<|channel>thought\n<channel|>Gemma 4 est puissant pour l'affinage multilingue, car il prend en charge 140 langues.
Il est recommandé d'entraîner E4B QLoRA plutôt que E2B LoRA car E4B est plus grand et la différence de précision de quantification est minuscule. Gemma 4 E4B LoRA est encore meilleure.
Après l'affinage, vous pouvez exporter vers GGUF (pour llama.cpp/Unsloth/Ollama/etc.)
⚡Démarrage rapide
🦥 Guide d'Unsloth Studio
Gemma 4 peut être exécuté et affiné dans Unsloth Studio, notre nouvelle interface web open source pour l'IA locale.
Avec Unsloth Studio, vous pouvez exécuter des modèles localement sur MacOS, Windows, Linux et entraîner des GPU NVIDIA. La prise en charge de l'entraînement Intel, MLX et AMD arrive ce mois-ci.

Entraîner Gemma 4
Lors du premier lancement, vous devrez créer un mot de passe pour sécuriser votre compte et vous reconnecter plus tard. Vous verrez ensuite un bref assistant d'accueil pour choisir un modèle, un jeu de données et des paramètres de base. Vous pouvez le passer à tout moment.
Recherchez Gemma 4 dans la barre de recherche et sélectionnez le modèle et le jeu de données souhaités. Ensuite, ajustez vos hyperparamètres et la longueur de contexte selon vos besoins.

🦥 Guide Unsloth Core (basé sur le code)
Nous avons créé des carnets gratuits pour Gemma 4 :
Et pour l'apprentissage par renforcement (RL) : E2B (RL GRPO)
Nous avons aussi créé des carnets pour les plus grands modèles Gemma 4, mais ils nécessitent une A100 :
Gemma-4-26B-A4B - GPU A100
Gemma-4-31B - GPU A100
Voici ci-dessous une recette SFT texte autonome pour Gemma-4-26B-A4B-it. Il s'agit uniquement de texte — consultez aussi notre affinage vision section pour plus de détails.
Si vous êtes en OOM :
Réduisez
per_device_train_batch_sizeà 1 et/ou réduisezmax_seq_length.Conservez
use_gradient_checkpointing="unsloth"activé (c’est conçu pour réduire l’utilisation de la VRAM et augmenter la longueur du contexte).
Exemple de chargeur pour MoE (LoRA bf16) :
Une fois chargé, vous attacherez des adaptateurs LoRA et entraînerez de manière similaire à l’exemple SFT ci-dessus.
Apprentissage par renforcement (RL)
Vous pouvez maintenant entraîner Gemma 4 avec RL, GSPO, GRPO, etc. avec notre notebook gratuit.
Gemma 4 E2B RL fonctionne sur 9 Go.
Le but du notebook est de faire apprendre à Gemma 4 à résoudre des grilles de Sudoku en utilisant GRPO.
Le modèle élaborera une stratégie pour remplir les cases vides, et nous le récompenserons pour les placements corrects et la résolution de puzzles valides.
Vous pouvez exécuter Gemma 4 RL avec Unsloth même s’il n’est pas pris en charge par vLLM, en définissant fast_inference=False lors du chargement du modèle :

Affinage MoE (26B-A4B)
Le 26B-A4B modèle constitue le juste milieu entre vitesse et qualité dans la gamme Gemma 4. Comme il s’agit d’un MoE modèle avec seulement un sous-ensemble de paramètres actifs par jeton, une approche d’affinage prudente consiste à :
utiliser LoRA plutôt qu’un affinage complet
privilégier LoRA 16 bits / bf16 si la mémoire le permet
commencer d’abord avec des contextes plus courts et des rangs plus faibles
ne monter en échelle qu’une fois le pipeline stabilisé
Si votre objectif est la meilleure qualité possible et que vous disposez de plus de mémoire, utilisez 31B à la place.
Affinage multimodal (E2B / E4B)
Parce que E2B et E4B prennent en charge image et audio, ils constituent les principales variantes de Gemma 4 pour l’affinage multimodal.
chargez le modèle multimodal avec
FastVisionModelconservez
finetune_vision_layers = Falsed’abordaffinez uniquement les couches de langage, d’attention et MLP
activez ensuite les couches de vision ou d’audio si votre tâche l’exige
Exemple de LoRA multimodale Gemma 4 :
Format d’exemple d’image
Rappelez-vous : pour les invites multimodales Gemma 4, placez l’image avant l’instruction textuelle.
Format d’exemple audio
L’audio est pour E2B / E4B uniquement. Gardez les clips courts et spécifiques à la tâche.
Enregistrement / exportation du modèle affiné
Vous pouvez consulter nos guides spécifiques d’inférence / déploiement pour Unsloth Studio, llama.cpp, vLLM, llama-server, Ollama ou SGLang.
Enregistrer en GGUF
Unsloth prend en charge l’enregistrement direct en GGUF :
Ou pousser des GGUF vers Hugging Face :
Si le modèle exporté se comporte moins bien dans un autre environnement d’exécution, Unsloth indique la cause la plus fréquente : template de chat incorrect / jeton EOS au moment de l’inférence (vous devez utiliser le même template de chat que celui avec lequel vous avez entraîné).
Pour plus de détails, lisez nos guides d’inférence :
Bonnes pratiques pour les données Gemma 4
Gemma 4 comporte quelques détails de formatage à garder à l’esprit.
1. Utilisez les rôles de chat standards
Gemma 4 utilise les rôles standard :
systemuserassistant
Cela signifie que votre jeu de données SFT doit être rédigé dans un format de chat classique plutôt que dans les anciens formats de rôles spécifiques à Gemma.
2. Le mode réflexion est explicite
Si vous souhaitez conserver un comportement de type réflexion pendant le SFT :
gardez le format cohérent
décidez si vous voulez entraîner sur des blocs de pensée visibles ou sur les réponses finales uniquement
faites pas mélanger plusieurs formats de pensée incompatibles dans le même jeu de données
Pour la plupart des assistants de production, la configuration la plus simple consiste à affiner sur la réponse finale visible uniquement.
3. Règle des conversations multi-tours
Pour les conversations multi-tours, ne conservez que la réponse finale visible dans l’historique de conversation. Ne pas réinjectez pas les blocs de pensée précédents dans les tours suivants.
Mis à jour
Ce contenu vous a-t-il été utile ?




