Top P et Nucleus Sampling
Mis à jour le 28 juillet 2026
Un second levier pour contrôler la génération
La leçon précédente vous a donné le premier levier de contrôle de la génération : la température. Le Top P, aussi appelé nucleus sampling, est son complément naturel. Tandis que la température modifie la distribution complète des probabilités, le Top P agit comme un filtre qui limite le nombre de tokens candidats. Les deux paramètres influencent la diversité des réponses, mais par des mécanismes très différents — et c’est précisément cette différence qui vous permettra de régler finement le comportement des modèles Mistral, au lieu de tourner les boutons au hasard.
Comment fonctionne le Top P
Reprenons le déroulé d’une génération. À chaque étape, le modèle calcule une probabilité pour chaque token possible. Le Top P intervient alors en trois temps : les probabilités sont d’abord ajustées par la température, puis les tokens sont triés par probabilité décroissante et leurs probabilités sont cumulées, et enfin seuls les tokens dont la probabilité cumulée ne dépasse pas le seuil Top P sont conservés. Le tirage final se fait uniquement parmi ces survivants.
Un exemple rend le mécanisme évident. Imaginons que le modèle doive choisir le prochain mot après « Le chat est sur le » :
| Token | Probabilité | Cumul |
|---|---|---|
| toit | 0.35 | 0.35 |
| lit | 0.25 | 0.60 |
| canapé | 0.15 | 0.75 |
| sol | 0.10 | 0.85 |
| rebord | 0.05 | 0.90 |
| mur | 0.03 | 0.93 |
| … | … | … |
Avec Top P = 0.75, seuls « toit », « lit » et « canapé » sont conservés, puisque leur cumul atteint exactement 0.75 : le modèle choisira parmi ces trois options uniquement. Avec Top P = 0.90, « sol » et « rebord » entrent aussi en jeu. La règle générale se lit directement dans le tableau : plus le Top P est élevé, plus le nombre de candidats considérés augmente.
Top P vs Température : quelle différence ?
Puisque les deux paramètres contrôlent la diversité, on pourrait croire qu’ils sont interchangeables. Ils ne le sont pas. La température modifie la forme de la distribution : une valeur haute aplatit la courbe et rend les tokens improbables progressivement plus accessibles, sans jamais en exclure aucun. Le Top P, lui, coupe la distribution : les tokens sous le seuil sont ignorés purement et simplement, quelle que soit leur probabilité résiduelle.
Retenez l’image suivante : la température est un réglage « doux », qui ajuste graduellement, tandis que le Top P est un réglage « net », qui inclut ou exclut. Dans un texte créatif, une température haute avec un Top P modéré autorise de la fantaisie tout en interdisant les dérapages vers des tokens vraiment improbables — c’est souvent la combinaison la plus confortable.
Utiliser le Top P avec l’API Mistral
Côté code, le paramètre s’ajoute simplement à l’appel, aux côtés de la température :
from mistralai import Mistral
client = Mistral(api_key="votre-cle-api")
response = client.chat.complete(
model="mistral-large-latest",
messages=[
{"role": "user", "content": "Proposez un nom pour une startup d'IA."}
],
temperature=0.7,
top_p=0.9
)
Quand ajuster le Top P
Un Top P bas, entre 0.1 et 0.5, concentre le modèle sur les options les plus probables — la précision maximale. C’est le bon choix quand la réponse attendue appartient à un ensemble fermé, comme dans cette classification stricte :
response = client.chat.complete(
model="mistral-large-latest",
messages=[
{"role": "system", "content": "Répondez uniquement par : positif, neutre ou négatif."},
{"role": "user", "content": "Classifiez : Le produit est arrivé en bon état."}
],
temperature=0.0,
top_p=0.3
)
Un Top P moyen, entre 0.5 et 0.8, convient à la plupart des tâches professionnelles : le texte reste cohérent sans devenir monotone. C’est le registre d’un rapport, d’une synthèse, d’une introduction de document :
response = client.chat.complete(
model="mistral-large-latest",
messages=[
{"role": "user", "content": "Rédigez l'introduction d'un rapport sur la cybersécurité en PME."}
],
temperature=0.5,
top_p=0.7
)
Enfin, un Top P haut, entre 0.8 et 1.0, ouvre le champ pour la créativité et l’exploration d’idées — on accepte des candidats moins probables pour obtenir des propositions qui sortent des sentiers battus :
response = client.chat.complete(
model="mistral-large-latest",
messages=[
{"role": "user", "content": "Inventez 5 concepts de restaurants innovants."}
],
temperature=0.9,
top_p=0.95
)
La règle pratique : ajuster un seul paramètre à la fois
La documentation Mistral recommande une approche méthodique que vous devriez adopter dès vos premiers tests : fixez le Top P à 1.0 (aucun filtrage) et ajustez uniquement la température, ou fixez la température à 1.0 et ajustez uniquement le Top P ; ce n’est qu’ensuite que vous affinez le second paramètre si nécessaire. La raison est simple : si vous modifiez les deux simultanément et que le comportement change, vous ne saurez pas lequel des deux en est responsable. C’est le même réflexe qu’en débogage — on ne change qu’une variable à la fois.
Pour vous donner des points de départ concrets : une extraction de données ou une sortie JSON se règle typiquement à temperature=0.0, top_p=1.0 ; une rédaction professionnelle à temperature=0.4, top_p=0.9 ; une génération créative à temperature=0.8, top_p=0.95 ; et du code ou du contenu technique à temperature=0.2, top_p=0.9. Ces valeurs ne sont que des points de départ — l’expérimentation reste indispensable pour votre cas d’usage spécifique.
Points clés à retenir
- Le Top P filtre les tokens candidats par seuil de probabilité cumulée
- Contrairement à la température qui adoucit la distribution, le Top P la coupe
- Ajustez un seul paramètre à la fois pour comprendre son impact
- Top P bas = réponses concentrées, Top P haut = réponses variées
- Commencez par la température seule, ajoutez le Top P pour affiner