Québec, Canada

403-1381 1re Avenue

+1 581.849.27.96

bdgouthiere@gmail.com

Temperature : le curseur entre fiabilité et créativité des LLM

Ou : Pourquoi le même modèle peut être un comptable méticuleux ou un poète halluciné, selon un seul nombre


Vous avez probablement remarqué que si vous posez la même question à un LLM deux fois de suite, vous n’obtenez pas toujours la même réponse. Pas parce qu’il a changé d’avis. Parce qu’il échantillonne — il choisit parmi plusieurs réponses possibles, et ce choix a une part d’aléatoire.

La temperature est le paramètre qui contrôle cette part d’aléatoire. C’est un nombre, généralement entre 0 et 2, qui détermine à quel point le modèle s’aventure au-delà de la réponse la plus probable. À temperature 0, il choisit toujours le token le plus probable. À temperature élevée, il donne leur chance aux tokens improbables.

C’est le bouton de volume de la créativité. Et comme tout bouton de volume, il y a un sweet spot entre « trop bas » et « trop haut ».

Ce qui se passe réellement quand on tourne le curseur

Le mécanisme : softmax et distribution de probabilités

Pour comprendre la temperature, il faut comprendre comment un LLM choisit le prochain token. À chaque étape de génération, le modèle calcule un score (appelé logit) pour chaque token possible de son vocabulaire — typiquement 50 000 à 100 000 tokens. Ces scores sont convertis en probabilités via la fonction softmax.

La temperature intervient avant le softmax. On divise tous les logits par la temperature avant de calculer les probabilités :

  • Temperature = 1 : les probabilités reflètent directement les scores du modèle. C’est le comportement « naturel ».
  • Temperature < 1 : les différences entre scores sont amplifiées. Le token le plus probable devient beaucoup plus probable que les autres. La distribution se concentre.
  • Temperature > 1 : les différences entre scores sont atténuées. Les tokens improbables gagnent en probabilité. La distribution s’aplatit.
  • Temperature → 0 : la distribution devient un pic — seul le token le plus probable a une chance d’être choisi. C’est le mode déterministe.

L’analogie de la playlist

Imaginez que le modèle a une playlist de chansons, classées par pertinence pour le moment. À temperature 0, il joue toujours la chanson n°1 — la plus pertinente. Fiable, mais répétitif. À temperature 1, il choisit parmi les meilleures avec une probabilité proportionnelle à leur classement — la n°1 est jouée le plus souvent, mais la n°3 ou la n°5 ont leur chance. À temperature 2, même les chansons du fond de la playlist peuvent passer — parfois c’est une découverte géniale, parfois c’est du bruit.

En pratique : quel réglage pour quel usage

TemperatureComportementUsage idéal
0Déterministe, toujours le token le plus probableCode, maths, extraction de données
0.1 – 0.3Très conservateur, légère variationRéponses factuelles, résumés, RAG
0.5 – 0.7ÉquilibréConversation, rédaction professionnelle
0.8 – 1.0Créatif, diversifiéBrainstorming, rédaction créative
1.2 – 2.0Très aléatoire, imprévisiblePoésie expérimentale, génération d’idées

La plupart des API de LLM utilisent une temperature par défaut de 1.0 (OpenAI) ou 1.0 (Anthropic). En production, la majorité des applications sérieuses baissent la temperature entre 0 et 0.3 pour les tâches factuelles1.

Top-p et top-k : les cousins de la temperature

La temperature n’est pas le seul levier. Deux autres paramètres de sampling sont couramment utilisés, souvent en combinaison :

Top-p (ou nucleus sampling) — au lieu de considérer tous les tokens possibles, on ne garde que ceux dont les probabilités cumulées atteignent un seuil p. Par exemple, top-p = 0.9 signifie : prendre les tokens les plus probables jusqu’à couvrir 90% de la masse de probabilité, puis échantillonner uniquement parmi ceux-là. Les tokens très improbables sont éliminés.

Top-k — on ne garde que les k tokens les plus probables. Top-k = 50 signifie : ne considérer que les 50 tokens les plus probables, ignorer le reste. Plus simple que top-p, mais moins adaptatif — parfois 50 tokens c’est trop (quand le modèle est très sûr de lui), parfois pas assez.

La combinaison temperature + top-p est devenue le standard de facto. La temperature contrôle comment on échantillonne, le top-p contrôle parmi quoi on échantillonne.

Temperature et hallucinations : le lien direct

Il y a une corrélation directe entre temperature et taux d’hallucination. Plus la temperature est élevée, plus le modèle s’aventure vers des tokens improbables — et les tokens improbables sont, par définition, ceux que le modèle considère comme les moins plausibles. Parfois, ces tokens improbables produisent une formulation originale et correcte. Souvent, ils produisent un fait inventé ou une incohérence logique.

C’est pour ça que les systèmes de RAG en production utilisent une temperature basse. Quand vous posez une question factuelle à un chatbot d’entreprise, vous ne voulez pas de créativité. Vous voulez la réponse la plus probable, celle qui correspond le plus étroitement aux documents de la base de connaissances. La créativité, dans ce contexte, c’est un euphémisme pour « inventions potentielles ».

Le dialogue du thermomètre

DevOps Dave : Le chatbot de support est configuré avec une temperature de 1.2. Les réponses sont super variées et naturelles.

Security Sarah : Variées comment ?

DevOps Dave : Genre, chaque fois qu’un client pose la même question, il obtient une réponse un peu différente. Ça fait plus humain.

Security Sarah : Et quand la « variation » consiste à inventer une procédure qui n’existe pas ?

DevOps Dave : … C’est arrivé ?

Security Sarah : Avec une temperature de 1.2, c’est garanti que ça arrive. Tu amplifies la probabilité des tokens improbables. Les tokens improbables, dans un contexte factuel, ce sont des hallucinations.

DevOps Dave : OK, je baisse à 0.3.

Security Sarah : Et pour le mode « brainstorming » où les utilisateurs cherchent des idées ?

DevOps Dave : Je monte à 0.8 ?

Security Sarah : Voilà. Deux modes, deux temperatures. Ce n’est pas un paramètre universel — c’est un paramètre contextuel.

Tableau récapitulatif

ConceptEn une phrase
TemperatureParamètre qui contrôle le degré d’aléatoire dans le choix du prochain token.
LogitsScores bruts du modèle pour chaque token possible, avant conversion en probabilités.
SoftmaxFonction qui convertit les logits en distribution de probabilités.
Temperature 0Mode déterministe — toujours le token le plus probable.
Top-pNe considérer que les tokens couvrant p% de la masse de probabilité.
Top-kNe considérer que les k tokens les plus probables.
Temperature élevéePlus de créativité, plus de diversité, plus d’hallucinations.

Le mot de la fin

La temperature est un des rares paramètres de l’IA qui est exactement ce qu’il prétend être — un curseur simple avec un effet prévisible. Pas de magie, pas de comportement émergent, pas de surprises. Plus c’est haut, plus c’est aléatoire. Plus c’est bas, plus c’est prévisible.

Et pourtant, c’est un des paramètres les plus mal compris et les plus mal réglés en production. Les développeurs laissent la valeur par défaut (1.0) sans se demander si leur cas d’usage nécessite de la créativité ou de la fiabilité. Le résultat : des chatbots de support qui inventent des procédures, des systèmes de résumé qui brodent, et des outils d’analyse qui « interprètent » les données un peu trop librement.

La bonne question n’est pas « quelle temperature utiliser ? ». C’est « est-ce que je veux que mon modèle soit créatif ici ? ». Si la réponse est non, baissez la temperature. Si la réponse est oui, montez-la — mais gardez un humain dans la boucle. La créativité d’un LLM et sa tendance à halluciner sont, fondamentalement, le même mécanisme vu sous deux angles.



  1. Il y a un débat en cours sur l’utilité de temperature 0 stricte. Certains fournisseurs (dont OpenAI) ont noté que même à temperature 0, le modèle n’est pas toujours parfaitement déterministe — des variations peuvent apparaître due à l’arithmétique en virgule flottante et aux optimisations matérielles. Anthropic utilise le terme « temperature 0 » pour signifier « aussi déterministe que possible ». En pratique, pour une reproductibilité totale, il faut combiner temperature 0 avec un seed fixe (quand l’API le permet). ↩︎