For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

🍇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

Voir 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

  1. 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-4 pour le modèle de chat sans réflexion et gemma-4-thinking pour 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.

  2. Pour activer le mode réflexion, utilisez enable_thinking = True / False dans tokenizer.apply_chat_template

    Réflexion activée :

    Affichera <bos><|turn>system\n<|think|><turn|>\n<|turn>user\nCombien font 2+2 ?<turn|>\n<|turn>model\n

    Réflexion désactivée :

    Affichera <bos><|turn>user\nCombien font 2+2 ?<turn|>\n<|turn>model\n<|channel>thought\n<channel|>

  3. Gemma 4 est puissant pour l'affinage multilingue, car il prend en charge 140 langues.

  4. 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.

  5. 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.

1

Installer Unsloth

Exécutez dans votre terminal :

MacOS, Linux, WSL :

Windows PowerShell :

2

Lancer Unsloth

MacOS, Linux, WSL et Windows :

Puis ouvrez http://localhost:8888 dans votre navigateur.

3

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.

4

Surveiller la progression de l'entraînement

Après avoir cliqué sur démarrer l'entraînement, vous pourrez surveiller et observer la progression de l'entraînement du modèle. La perte d'entraînement devrait diminuer régulièrement.\nUne fois terminé, le modèle sera automatiquement enregistré.

5

Exportez votre modèle affiné

Une fois terminé, Unsloth Studio vous permet d'exporter le modèle vers des formats GGUF, safetensor, etc.

6

Comparer le modèle affiné au modèle original

Cliquez sur Mode Comparaison pour comparer l'adaptateur LoRA et le modèle original.

🦥 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

Si vous souhaitez faire GRPO, cela fonctionne dans Unsloth si vous désactivez l'inférence rapide vLLM et utilisez l'inférence Unsloth à la place. Suivez nos Vision RL exemples de carnets.

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éduisez max_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 FastVisionModel

  • conservez finetune_vision_layers = False d’abord

  • affinez 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 :

  • system

  • user

  • assistant

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 ?