Aller au contenu principal

Top P et Nucleus Sampling

Un second levier pour contrôler la génération

Le Top P (aussi appelé nucleus sampling) est un paramètre complémentaire à la température pour contrôler la diversité des réponses. 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.

Comprendre la différence entre ces deux paramètres vous permettra de régler finement le comportement des modèles Mistral.

Comment fonctionne le Top P

À chaque étape de la génération, le modèle calcule une probabilité pour chaque token possible. Le Top P fonctionne en trois étapes :

  1. Application de la température : les probabilités sont d’abord ajustées par la température
  2. Tri et cumul : les tokens sont triés par probabilité décroissante, et leurs probabilités sont cumulées
  3. Filtrage : seuls les tokens dont la probabilité cumulée ne dépasse pas le seuil Top P sont conservés

Exemple concret

Imaginons que le modèle doit choisir le prochain mot après « Le chat est sur le » :

TokenProbabilitéCumul
toit0.350.35
lit0.250.60
canapé0.150.75
sol0.100.85
rebord0.050.90
mur0.030.93

Avec Top P = 0.75, seuls « toit », « lit » et « canapé » sont conservés (cumul = 0.75). Le modèle choisira parmi ces trois options uniquement.

Avec Top P = 0.90, « sol » et « rebord » entrent aussi en jeu. Plus le Top P est élevé, plus de candidats sont considérés.

Top P vs Température : quelle différence ?

Les deux paramètres contrôlent la diversité, mais de manière différente :

  • Température : modifie la forme de la distribution de probabilités. Une température haute rend les tokens improbables plus accessibles en aplatissant la courbe.

  • Top P : coupe la distribution. Il ignore complètement les tokens en dessous du seuil, quelle que soit leur probabilité modifiée.

En pratique :

  • La température est un réglage « doux » — elle ajuste progressivement
  • Le Top P est un réglage « net » — il inclut ou exclut des tokens

Utiliser le Top P avec l’API Mistral

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

Top P bas (0.1 - 0.5) : précision maximale

Utile quand vous voulez des réponses très concentrées sur les options les plus probables :

# Classification stricte : on ne veut que les réponses les plus probables
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
)

Top P moyen (0.5 - 0.8) : équilibre

Pour la plupart des tâches professionnelles :

# Rédaction structurée : cohérent mais pas monotone
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
)

Top P haut (0.8 - 1.0) : exploration

Pour la créativité et l’exploration d’idées :

# Brainstorming : on veut de la diversité
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 :

  1. Fixez le Top P à 1.0 (aucun filtrage) et ajustez uniquement la température
  2. Ou fixez la température à 1.0 et ajustez uniquement le Top P
  3. Puis affinez le second paramètre si nécessaire

Modifier les deux paramètres simultanément rend le débogage difficile : vous ne savez pas lequel est responsable d’un changement de comportement.

Recommandations par cas d’usage

  • Extraction de données / JSON : temperature=0.0, top_p=1.0
  • Rédaction professionnelle : temperature=0.4, top_p=0.9
  • Génération créative : temperature=0.8, top_p=0.95
  • Code / technique : temperature=0.2, top_p=0.9

Ces valeurs sont 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