Gemma 4 a un mode thinking intégré qui permet au modèle de « raisonner à voix haute » avant de vous donner une réponse. C'est comme demander à quelqu'un de montrer son travail sur un problème de maths — les étapes supplémentaires mènent souvent à une meilleure réponse.
Mais ça ne vaut pas toujours le compromis. Décomposons quand l'utiliser et quand l'éviter.
Qu'est-ce que le mode thinking ?
En mode thinking, Gemma 4 génère une chaîne de raisonnement avant de produire la réponse finale. Le modèle a essentiellement un bloc-notes interne où il travaille sur le problème étape par étape.
Sans thinking :
Utilisateur : Combien fait 17 × 23 ?
Gemma 4 : 391Avec thinking :
Utilisateur : Combien fait 17 × 23 ?
Gemma 4 : <think>
17 × 23
= 17 × 20 + 17 × 3
= 340 + 51
= 391
</think>
391Le thinking se produit à l'intérieur des balises <think>. Votre application peut soit afficher ce raisonnement à l'utilisateur, soit le supprimer et n'utiliser que la réponse finale.
Comment activer le mode thinking
Avec Ollama
# Utiliser la variante thinking du modèle
ollama run gemma4:26b-thinkingOu via l'API avec un paramètre de budget de tokens :
import requests
response = requests.post("http://localhost:11434/api/chat", json={
"model": "gemma4:26b",
"messages": [
{"role": "user", "content": "Résous : Si 3x + 7 = 22, que vaut x ?"}
],
"options": {
"num_predict": 2048, # Allouer assez de tokens pour le thinking
},
"stream": False,
})
print(response.json()["message"]["content"])Avec le system prompt
Vous pouvez aussi déclencher un comportement de thinking via le system prompt :
messages = [
{
"role": "system",
"content": "Réfléchis étape par étape avant de répondre. Montre ton raisonnement dans des balises <think>, puis donne la réponse finale."
},
{
"role": "user",
"content": "Un train part de Chicago à 9h à 60 mph. Un autre part de New York à 10h à 80 mph vers Chicago. La distance est de 800 miles. Quand se rencontrent-ils ?"
}
]Budget de tokens
Certaines implémentations vous laissent contrôler combien le modèle réfléchit avec un budget :
# Plus de budget = plus de thinking = plus lent mais meilleur
response = requests.post("http://localhost:11434/api/chat", json={
"model": "gemma4:26b",
"messages": [{"role": "user", "content": "Tâche de raisonnement complexe ici..."}],
"options": {
"num_predict": 4096, # Budget plus élevé pour plus de place de thinking
},
})Quand le mode thinking aide
Le mode thinking brille sur les tâches qui nécessitent un raisonnement multi-étapes :
Problèmes de maths et de logique :
Sans thinking : "La réponse est 42" (parfois fausse)
Avec thinking : Travail étape par étape → réponse correcteCode complexe :
Sans thinking : Génère du code qui semble correct mais a des bugs subtils
Avec thinking : Raisonne sur les cas limites, le flux de données, puis génère du code plus propreAnalyse et comparaison :
Sans thinking : Réponse de surface
Avec thinking : Considère plusieurs angles, pèse les compromisVoici une comparaison pratique sur les mêmes problèmes :
| Type de problème | Sans thinking | Avec thinking | Amélioration |
|---|---|---|---|
| Maths basiques (2+2) | Correct | Correct | Aucune |
| Maths multi-étapes | ~70% correct | ~90% correct | Significative |
| Énigmes logiques | ~50% correct | ~80% correct | Majeure |
| Débogage de code | Trouve les bugs évidents | Trouve les bugs subtils | Significative |
| Q&R simple | Rapide, correct | Plus lent, correct | Aucune (pire : plus lent) |
| Traduction | Bon | Même qualité | Aucune |
| Écriture créative | Flux naturel | Peut sembler trop réfléchi | Pire |
Quand éviter le mode thinking
N'utilisez pas le mode thinking pour :
- Q&R simple : « Quelle est la capitale de la France ? » n'a pas besoin d'une chaîne de pensée
- Traduction : Le mode thinking ajoute de la latence sans améliorer la qualité de traduction
- Écriture créative : Le raisonnement supplémentaire peut rendre la sortie rigide et trop planifiée
- Conversations de chat : Le va-et-vient naturel ne bénéficie pas du raisonnement formel
- Extraction de données : Extraire des noms, dates et nombres d'un texte est du pattern matching, pas du raisonnement
- Applications à haut débit : Si vous traitez des milliers de requêtes, le ralentissement 2-3x compte. Voir notre guide de traitement par batch.
Impact sur la performance
Le mode thinking a un coût réel :
| Métrique | Sans thinking | Avec thinking |
|---|---|---|
| Tokens générés | 100-500 | 300-2000 |
| Temps de réponse | 1-5 secondes | 3-15 secondes |
| Utilisation VRAM | Référence | Pareille (légèrement plus de cache KV) |
| Qualité de réponse (raisonnement) | Bonne | Meilleure |
| Qualité de réponse (simple) | Bonne | Pareille |
Le modèle génère 2-5x plus de tokens en mode thinking parce qu'il écrit son raisonnement. Sur un Mac avec Apple Silicon, cela signifie :
- M2 Pro 16 Go : Réponse simple en 2s → Réponse thinking en 6-8s
- M4 Max 64 Go : Réponse simple en 1s → Réponse thinking en 3-4s
Pour le chat interactif, le délai est notable. Pour le traitement par batch, il peut doubler ou tripler votre temps de traitement.
Exemple pratique : avec vs sans
Regardons un vrai problème :
Prompt : « J'ai 3 boules rouges, 5 boules bleues et 2 boules vertes dans un sac. Si je tire 2 boules sans remise, quelle est la probabilité que les deux soient bleues ? »
Sans thinking :
La probabilité est 5/10 × 4/9 = 20/90 = 2/9 ≈ 0,222Correct, mais si le problème était plus délicat, le modèle pourrait sauter une étape et se tromper.
Avec thinking :
<think>
Total boules : 3 + 5 + 2 = 10
Boules bleues : 5
Probabilité que la première boule soit bleue : 5/10
Après avoir tiré une boule bleue :
- Boules restantes : 9
- Bleues restantes : 4
Probabilité que la deuxième boule soit bleue : 4/9
Probabilité combinée : 5/10 × 4/9 = 20/90 = 2/9
</think>
La probabilité de tirer 2 boules bleues est 2/9, soit environ 22,2%.Même réponse, mais la version thinking est plus susceptible de détecter les erreurs dans des problèmes plus difficiles parce qu'elle suit explicitement l'état à chaque étape.
Combiner thinking avec d'autres fonctionnalités
Thinking + sortie JSON : Utilisez le mode thinking pour le raisonnement, puis sortez du JSON structuré :
messages = [
{
"role": "system",
"content": """Réfléchis au problème dans des balises <think>.
Puis produis ta réponse finale en JSON (aucun autre texte après le JSON) :
{"answer": nombre, "confidence": nombre, "reasoning_summary": string}"""
},
{"role": "user", "content": "Problème complexe ici..."}
]Pour plus sur la sortie structurée, voir notre guide de sortie JSON.
Thinking + modèles fine-tunés : Si vous avez fine-tuné Gemma 4 pour un domaine spécifique, le mode thinking peut toujours améliorer la qualité du raisonnement sur des problèmes complexes spécifiques au domaine.
Prochaines étapes
- Essayez le mode thinking avec différents modèles : guide de sélection de modèle
- Combinez avec la sortie structurée : guide de sortie JSON
- Exécutez le mode thinking localement : guide de configuration Ollama
- Voyez la performance sur votre matériel : guide de performance Mac
Stop reading. Start building.
~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.
Launch Playground />


