0Pricing
AI Prompt Engineering · Leçon

Qu’est-ce que la température dans les LLM ?

La température comme contrôle de la créativité : 0 = déterministe, 2 = chaotique, avec toutes les valeurs intermédiaires.

Qu’est-ce que la température dans les LLM ? est une leçon AI Prompt Engineering gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Prompt Engineering, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Prompt Engineering comprend 4 leçons au total.

Comment les LLM choisissent le jeton suivant

À chaque étape, un LLM produit une distribution de probabilités sur tous les jetons de son vocabulaire (environ 50 000 jetons pour GPT). Le modèle attribue à chaque jeton un score appelé un logit — un nombre brut et non normalisé. Plus le logit est élevé, plus le jeton est probable.

La température est le paramètre qui contrôle la manière dont ces logits bruts sont convertis en probabilités avant l’échantillonnage.

La fonction softmax

Les logits sont convertis en probabilités à l’aide de la fonction softmax. Softmax prend un vecteur de logits et produit une distribution de probabilités dont la somme vaut 1.

Pour un petit exemple de vocabulaire comportant 4 jetons :

import numpy as np

# Raw logits from the model
logits = np.array([2.0, 1.0, 0.5, -1.0])  # scores for 4 tokens

# Standard softmax (temperature = 1)
def softmax(logits, temperature=1.0):
    scaled = logits / temperature
    exp_scaled = np.exp(scaled - np.max(scaled))  # subtract max for numerical stability
    return exp_scaled / exp_scaled.sum()

probs = softmax(logits, temperature=1.0)
print('Probabilities:', np.round(probs, 3))
# [0.567, 0.208, 0.129, 0.095]
# Token 0 is most likely at 56.7%

Température = 0 : décodage glouton

Lorsque la température s’approche de 0, la distribution softmax s’effondre : le jeton ayant le logit le plus élevé reçoit une probabilité d’environ 1,0 et toutes les autres approchent de 0. Le modèle choisit toujours l’unique jeton le plus probable.

On appelle cela le décodage glouton. Il est déterministe : la même invite produit toujours la même sortie. Aucune part d’aléatoire, aucune créativité.

# Temperature = 0 (greedy)
probs_temp0 = softmax(logits, temperature=0.01)  # near-zero
print('Probs at T=0.01:', np.round(probs_temp0, 4))
# [~1.0, ~0.0, ~0.0, ~0.0]

# In practice, temperature=0 is implemented as argmax:
def greedy_sample(logits):
    return np.argmax(logits)  # always returns the index of the highest logit

token_idx = greedy_sample(logits)
print(f'Selected token index: {token_idx}')  # always 0

Température = 1 : échantillonnage standard

Une température de 1 applique softmax sans mise à l’échelle : la distribution de probabilités reflète la confiance naturelle du modèle. Le modèle échantillonne selon ces probabilités : les jetons probables apparaissent souvent, tandis que les jetons improbables apparaissent rarement, mais parfois.

Il s’agit de la valeur par défaut pour la plupart des usages conversationnels. Elle produit des sorties variées et naturelles tout en restant cohérentes.

# Temperature = 1 (standard)
probs_temp1 = softmax(logits, temperature=1.0)
print('Probs at T=1.0:', np.round(probs_temp1, 3))
# [0.567, 0.208, 0.129, 0.095]

# Sampling from this distribution:
def sample_token(probs):
    vocab = ['the', 'a', 'an', 'is']
    return np.random.choice(vocab, p=probs)

# Run 10 times to see variation
for _ in range(10):
    print(sample_token(probs_temp1), end=' ')
# Output varies each time, but 'the' appears most often

Température = 2 : échantillonnage chaotique

Une température élevée (> 1) aplatit la distribution de probabilités : tous les jetons deviennent presque aussi probables les uns que les autres. Le modèle devient imprévisible et souvent incohérent.

Une température > 1,5 est rarement utilisée en pratique. Elle peut produire des sorties créatives et inattendues, mais produit généralement du non-sens.

# Temperature = 2 (chaotic)
probs_temp2 = softmax(logits, temperature=2.0)
print('Probs at T=2.0:', np.round(probs_temp2, 3))
# [0.385, 0.261, 0.211, 0.143]
# Much flatter — the 4th token (logit=-1.0) now has 14.3% chance
# (vs 9.5% at T=1.0)

# Visualization: compare distributions
for temp in [0.1, 0.5, 1.0, 1.5, 2.0]:
    probs = softmax(logits, temperature=temp)
    print(f'T={temp}: {np.round(probs, 3)}')

La température comme contrôle de la netteté

Conceptuellement, la température contrôle la netteté de la distribution :

  • Température basse (0,1–0,4) : pic net — le modèle est confiant et choisit des jetons sûrs et courants
  • Température moyenne (0,6–1,0) : forme naturelle — créativité et cohérence équilibrées
  • Température élevée (1,2–2,0) : distribution plate — le modèle explore librement des jetons improbables

Imaginez-la comme un réglage de créativité : faible = précis, élevée = audacieuse.

import matplotlib
# Conceptual: what distribution shape looks like at different temps
temps = {'T=0.2 (sharp)': 0.2, 'T=1.0 (normal)': 1.0, 'T=2.0 (flat)': 2.0}
for label, temp in temps.items():
    probs = softmax(logits, temp)
    bar = '#' * int(probs[0] * 40)
    print(f'{label}: top token = {probs[0]:.1%} |{bar}|')
# T=0.2: top token = 97.2% |########################################|
# T=1.0: top token = 56.7% |######################|
# T=2.0: top token = 38.5% |###############|

Température et déterminisme

Une nuance importante : température = 0 rend l’échantillonnage déterministe. Pour température > 0, chaque exécution produit une sortie différente, car l’échantillonnage est un processus aléatoire. La distribution est fixe, mais l’échantillon varie.

Pour obtenir des sorties reproductibles lors des tests, définissez toujours température = 0. En production, si vous souhaitez de la variation, utilisez une graine si l’API la prend en charge.

import openai
client = openai.OpenAI(api_key='sk-...')

# Deterministic: temperature=0
resp1 = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': 'What is the capital of France?'}],
    temperature=0
)
resp2 = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': 'What is the capital of France?'}],
    temperature=0
)
print(resp1.choices[0].message.content == resp2.choices[0].message.content)  # True (usually)

Interaction entre la température et top-p

La température et top-p (échantillonnage par noyau) modifient toutes deux la distribution d’échantillonnage, mais à des étapes différentes :

  • Température : met à l’échelle les scores bruts avant softmax — modifie la forme de la distribution complète
  • Top-p : réduit la distribution à la masse de probabilité des jetons les plus probables après softmax — échantillonne uniquement parmi l’ensemble des jetons les plus probables

Utiliser les deux ensemble permet un contrôle précis. La recommandation habituelle consiste à n’en ajuster qu’un seul à la fois. Modifier les deux simultanément rend l’effet difficile à prévoir.

# Using temperature with top_p in OpenAI API
resp = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': 'Write a one-line haiku about code.'}],
    temperature=0.9,  # moderately diverse distribution
    top_p=0.95        # sample from top 95% of probability mass
)

Valeurs pratiques de température selon la tâche

Aperçu rapide des types de tâches courants :

  • Questions-réponses factuelles : 0 — la précision est indispensable, aucune variation n’est nécessaire
  • Génération de code : 0–0.2 — la syntaxe doit être correcte
  • Résumé : 0.3–0.5 — une certaine variation est acceptable
  • Dialogue / conversation : 0.7–0.9 — des réponses naturelles et variées
  • Écriture créative : 0.9–1.2 — la diversité est souhaitée
  • Remue-méninges / idéation : 1.0–1.5 — explorer des options inattendues
TEMPERATURE_PRESETS = {
    'factual_qa': 0.0,
    'code_generation': 0.1,
    'summarization': 0.4,
    'chat': 0.8,
    'creative_writing': 1.1,
    'brainstorming': 1.3
}

def call_with_preset(task_type, prompt):
    temp = TEMPERATURE_PRESETS.get(task_type, 0.7)
    return client.chat.completions.create(
        model='gpt-4o',
        messages=[{'role': 'user', 'content': prompt}],
        temperature=temp
    )

La température dans l’API

La température est acceptée par toutes les principales API de LLM. La plage valide est de 0 à 2 pour OpenAI et de 0 à 1 pour Claude d’Anthropic. Dépasser la valeur maximale provoque une erreur.

# OpenAI: temperature 0 to 2
client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': prompt}],
    temperature=1.2  # Valid for OpenAI
)

# Anthropic Claude: temperature 0 to 1
import anthropic
claude = anthropic.Anthropic(api_key='sk-ant-...')
claude.messages.create(
    model='claude-opus-4-5',
    max_tokens=1024,
    temperature=0.8,  # Max is 1.0 for Claude
    messages=[{'role': 'user', 'content': prompt}]
)

Quand la température ne suffit pas

La température seule ne produit pas toujours la diversité ou la précision dont vous avez besoin. Lorsque température=0 produit malgré tout une sortie variable (cela peut arriver avec certains modèles en raison du non-déterminisme lié aux nombres à virgule flottante), utilisez seed pour une véritable reproductibilité. Lorsque la température élevée produit des absurdités, limitez le vocabulaire avec top-p ou top-k au lieu d’augmenter davantage la température.

# Seed for reproducibility (OpenAI API)
resp = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': prompt}],
    temperature=0,
    seed=42  # Guarantees same output across calls on same model version
)

# Note: same output only guaranteed with same model version
# A model update can change outputs even with the same seed

Vérification des connaissances

Qu’advient-il de la distribution des probabilités des jetons lorsque la température est réglée sur une valeur très élevée (par exemple, 2.0) ?

Récapitulatif : la température dans les LLM

La température contrôle le caractère aléatoire de l’échantillonnage des jetons en mettant à l’échelle les scores bruts avant softmax :

  • T=0 : glouton — sélectionne toujours le jeton le plus probable, de manière déterministe
  • T=1 : standard — échantillonne selon la distribution naturelle des probabilités
  • T>1 : chaotique — aplatit la distribution, davantage d’aléatoire, moins de cohérence

Utilisez une température basse pour les tâches factuelles et la génération de code, moyenne pour le dialogue et élevée pour les tâches créatives. N’ajustez que la température ou top-p à la fois, pas les deux. Prochaine leçon : l’échantillonnage par noyau top-p.

Questions Fréquemment Posées

La leçon « Qu’est-ce que la température dans les LLM ? » est-elle gratuite ?

Oui — le texte complet de « Qu’est-ce que la température dans les LLM ? » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Prompt Engineering, passe à CoddyKit PRO. Le cours AI Prompt Engineering comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Qu’est-ce que la température dans les LLM ? » ?

La température comme contrôle de la créativité : 0 = déterministe, 2 = chaotique, avec toutes les valeurs intermédiaires. Tu pratiques AI Prompt Engineering avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Prompt Engineering ?

Aucune expérience préalable n'est requise. AI Prompt Engineering sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Qu’est-ce que la température dans les LLM ? » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Prompt Engineering ?

Oui. Chaque leçon AI Prompt Engineering inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Qu’est-ce que la température dans les LLM ?
  2. Échantillonnage par noyau avec top-p
  3. Échantillonnage top-k
  4. Choisir les paramètres selon votre cas d’usage
← Retour à AI Prompt Engineering