Aller au contenu principal

Température, top_p et paramètres de génération

Mis à jour le 28 juillet 2026

Température, top_p et paramètres de génération

Quand vous envoyez un prompt à un modèle de langage, le texte généré n’est pas déterministe par défaut : deux appels strictement identiques peuvent renvoyer deux réponses différentes. Les paramètres de génération vous permettent de contrôler le degré de créativité ou de rigueur des réponses. Les maîtriser sert deux objectifs bien concrets : obtenir des résultats adaptés à chaque cas d’usage, et savoir où regarder le jour où une suite de tests d’intégration se met à échouer une fois sur trois sans explication apparente.

Comment le modèle choisit le prochain token

À chaque étape de la génération, le modèle calcule une distribution de probabilité sur l’ensemble de son vocabulaire, puis échantillonne le token suivant dans cette distribution. Ce n’est donc pas le « meilleur » mot qui sort mécaniquement : c’est un tirage. Les paramètres de génération interviennent avant l’échantillonnage, en resserrant la distribution autour des candidats les plus probables ou au contraire en l’aplatissant pour laisser leur chance aux outsiders. Les deux appels ci-dessous illustrent les deux extrêmes du besoin : un slogan de boulangerie ne vaut que s’il surprend, la syntaxe d’une list comprehension ne doit jamais surprendre.

from openai import OpenAI

client = OpenAI()

# Réponse créative (haute température)
response_creative = client.responses.create(
    model="gpt-5.6-terra",
    instructions="Tu es un rédacteur créatif.",
    input="Propose un slogan pour une boulangerie artisanale.",
    temperature=1.2
)

# Réponse factuelle (basse température)
response_factual = client.responses.create(
    model="gpt-5.6-terra",
    instructions="Tu es un assistant technique précis.",
    input="Quelle est la syntaxe d'une list compréhension en Python ?",
    temperature=0.1
)

Température

La température est un facteur multiplicatif appliqué aux logits avant le softmax. À 0, la distribution est resserrée au point que le modèle retient toujours le token le plus probable : le comportement devient quasi déterministe, ce qui est exactement ce que vous voulez d’un extracteur de données rejoué en test unitaire. Entre 0,1 et 0,3, les réponses restent très cohérentes d’un appel à l’autre : c’est le territoire du code et des réponses factuelles. La plage 0,7 à 0,9 équilibre créativité et cohérence, ce qui convient à la rédaction. Au-delà, entre 1,0 et 1,5, les sorties deviennent variées et parfois déroutantes — l’effet recherché en brainstorming, un défaut rédhibitoire partout ailleurs.

Le tableau ci-dessous rassemble les réglages qui fonctionnent bien sur les usages les plus fréquents. Traitez-le comme un point de départ à valider sur vos propres prompts : un prompt très contraint tolère une température plus haute qu’on ne le croit, un prompt lâche déraille plus tôt.

Cas d'usage Température top_p
Génération de code 0.0 – 0.2 1.0
Extraction de données 0.0 1.0
Rédaction professionnelle 0.5 – 0.7 0.9
Brainstorming 1.0 – 1.3 0.95
Écriture créative 1.0 – 1.5 0.9

Top_p (nucleus sampling)

Le paramètre top_p agit sur la même distribution, mais par un tout autre mécanisme : il filtre les tokens selon leur probabilité cumulée. Avec top_p=0.9, le modèle ne considère que les tokens dont la probabilité cumulée atteint 90 %, et supprime purement et simplement la longue traîne des choix improbables. Là où la température déforme les probabilités de tous les candidats, top_p tronque la liste des candidats admissibles.

response = client.responses.create(
    model="gpt-5.6-terra",
    instructions="Génère un résumé technique.",
    input="Résume le fonctionnement de TLS 1.3.",
    temperature=0.3,
    top_p=0.95
)

De là découle une règle pratique que vous ne regretterez pas d’appliquer : ne touchez pas à la température et à top_p dans le même mouvement. Les deux agissant sur le même mécanisme, vous seriez incapable d’attribuer l’effet observé à l’un ou à l’autre, et vos réglages deviendraient une affaire de superstition. Ajustez un paramètre, laissez l’autre à sa valeur par défaut ; OpenAI recommande de commencer par la température.

Les autres paramètres qui comptent

max_output_tokens limite la longueur de la réponse en tokens. C’est votre garde-fou à la fois sur les coûts et sur les réponses interminables, particulièrement utile quand la sortie doit tenir dans un champ d’interface de taille contrainte : mieux vaut une réponse cadrée dès la génération qu’une troncature côté affichage.

response = client.responses.create(
    model="gpt-5.6-terra",
    instructions="Réponds en une phrase.",
    input="Qu'est-ce que le DNS ?",
    max_output_tokens=100
)

Depuis GPT-5.6, le raisonnement n’est plus un modèle séparé : c’est un réglage qui contrôle le temps de réflexion sur toute la famille.

response = client.responses.create(
    model="gpt-5.6-terra",
    input="Résous cette équation différentielle : y' + 2y = e^(-x)",
    reasoning={
        "effort": "high"  # "none", "low", "medium", "high", "xhigh", "max"
    }
)

Le niveau low répond vite sur les questions simples, medium constitue un compromis honnête pour la majorité des tâches, et high engage un raisonnement approfondi qu’il faut réserver aux problèmes réellement difficiles. L’équation différentielle ci-dessus le mérite ; reformuler une phrase d’accueil, non — vous paieriez du temps de réflexion pour une tâche qui n’en demande aucun.

Observer la variation par vous-même

Rien ne remplace le fait de voir ces réglages agir. Écrivez un script Python qui envoie le même prompt à GPT-5.6 Terra avec cinq valeurs de température (0, 0.3, 0.7, 1.0 et 1.3) et affiche les cinq sorties côte à côte. Choisissez une consigne franchement créative, par exemple « Invente un nom pour une startup d’IA » : la répétition quasi mot pour mot à 0 et la dispersion à 1.3 deviennent alors impossibles à manquer, et ce souvenir visuel vous servira de repère bien plus longtemps qu’un tableau de valeurs.

Points clés à retenir

  • La température contrôle la dispersion de la distribution de probabilité
  • top_p filtre les tokens par probabilité cumulée
  • Ne modifiez jamais les deux simultanément
  • Température basse pour le factuel, haute pour le créatif
  • Le réglage de raisonnement (de none à max) s’applique à toute la famille GPT-5.6