Quand vous utilisez un modèle IA (ChatGPT, Mistral, Llama, etc.), vous voyez souvent passer des réglages comme température, top_p… et parfois top_k.
Le top_k est moins “célèbre” que top_p, mais il est très utile pour comprendre comment un modèle choisit ses mots… et pourquoi parfois il devient trop répétitif, ou au contraire trop inventif.
Comment un modèle “choisit” ses mots (sans magie)
Un modèle de langage ne “pense” pas comme un humain. Il prédit le prochain mot (ou plutôt le prochain token) à partir du contexte.
À chaque étape, il produit une liste de candidats avec des probabilités :
- “est” : 22%
- “sera” : 14%
- “semble” : 9%
- “devient” : 6%
- … et ainsi de suite
Ensuite, il faut décider : faut-il prendre le mot le plus probable à 100% ? Ou laisser un peu de hasard contrôlé pour rendre la réponse plus naturelle ?
C’est là qu’interviennent les réglages de sampling, dont top_k.
Définition simple du top_k
top_k = K signifie :
“À chaque mot, ne gardez que les K mots les plus probables, et choisissez uniquement parmi eux.”
Donc le modèle n’a pas le droit de choisir un mot qui est en dehors du top K, même s’il reste légèrement probable.
Exemple
- top_k = 1
→ le modèle prend toujours le mot n°1 le plus probable
→ résultat : très stable, parfois un peu “robot” - top_k = 10
→ le modèle peut choisir parmi les 10 meilleurs candidats
→ résultat : plus naturel, mais encore cadré - top_k = 50 / 100
→ plus de choix, donc plus de variété
→ résultat : peut devenir plus créatif… ou plus “hors sujet” si la température est élevée
Pourquoi top_k change le style des réponses
En pratique :
- top_k bas = réponses plus prévisibles, plus répétables, plus “sécurisées”
- top_k moyen = bon équilibre (naturel mais cohérent)
- top_k haut = réponses plus variées, mais risque de mots inutiles, digressions, hallucinations
top_k contrôle la taille du “panier de mots autorisés”.
La différence entre top_k et top_p
On confond souvent les deux, pourtant la différence est simple :
top_k = limite fixe
“Vous gardez K candidats.”
C’est strict : si top_k = 40, ce sera toujours 40, peu importe la situation.
top_p = limite adaptative
“Vous gardez assez de candidats pour couvrir p% de probabilité totale.”
Ex : top_p = 0.9
Le modèle garde juste assez de candidats pour atteindre 90% de la masse de probabilité.
- Si la suite est évidente → il gardera peu de mots (parfois 5–10)
- Si la suite est incertaine → il en gardera beaucoup plus
C’est pour cela que beaucoup de systèmes modernes préfèrent top_p à top_k : c’est plus souple.
Comment top_k interagit avec la température
La température modifie la forme des probabilités (plus “plat” ou plus “pointu”).
- température basse → le modèle favorise fortement les mots les plus probables
- température haute → il donne plus de chances aux mots moins probables
Et top_k vient poser une barrière :
- température haute + top_k haut → créativité ++ (mais risque de dérapage)
- température haute + top_k bas → créativité limitée, mais plus cohérent
- température basse + top_k bas → très stable, parfois répétitif
En clair : top_k limite le terrain de jeu, la température décide à quel point vous jouez au hasard dans ce terrain.
Valeurs recommandées (repères simples)
Cela dépend des modèles, mais voici des repères généralement fiables :
| Usage | Température | Top_k | (ou) Top_p | Objectif |
|---|---|---|---|---|
| Support / FAQ / réponses factuelles | 0 à 0.3 | 1 à 20 | 0.7 à 0.9 | Cohérence, pas de blabla |
| Rédaction pro / blog / contenu marketing | 0.4 à 0.7 | 30 à 100 | 0.85 à 0.95 | Naturel, sans partir dans tous les sens |
| Brainstorming / idées créatives | 0.8 à 1.1 | 80 à 200 | 0.9 à 0.98 | Diversité d’idées |
Erreurs fréquentes avec top_k
1) Mettre top_k très haut et température haute
Vous obtenez parfois :
- des digressions,
- des formulations “bizarres”,
- des informations inventées (hallucinations).
2) Mettre top_k trop bas avec une température moyenne
Le modèle peut prendre un ton trop rigide et répéter des structures.
3) Cumuler top_k et top_p sans comprendre
Sur certains moteurs, les deux se combinent (intersection), sur d’autres c’est l’un ou l’autre.
Si vous voulez rester simple :
- utilisez température + top_p
- et laissez top_k par défaut (ou désactivé)
Conclusion
Le top_k, c’est un filtre qui limite le modèle aux K meilleurs choix à chaque mot.
- top_k bas → stable, cohérent, parfois répétitif
- top_k haut → varié, plus créatif, mais plus risqué
Et si vous voulez une règle simple :
top_p est souvent plus moderne et plus pratique, mais top_k reste un excellent réglage quand vous cherchez un comportement très cadré pour des métiers où vous voulez un équilibre entre “naturel” et “pas de dérive” (donc un cadre plus strict que du brainstorming libre).
Exemples très concrets :
- Support client / helpdesk (SAV, IT support)
Réponses courtes, procédures, dépannage.
top_k bas à moyen (ex : 10–40) pour éviter les réponses fantaisistes. - Service desk / technicien systèmes & réseaux / cybersécurité (SOC L1/L2)
Checklist, diagnostic, recommandations prudentes.
top_k bas + température basse pour rester factuel. - Juriste / conformité / RH
Reformulation de clauses, réponses cadrées, ton neutre.
top_k bas à moyen pour limiter les formulations “risquées” (attention : ça ne remplace pas la validation humaine). - Rédacteur technique / documentation produit
Explications claires, cohérentes, vocabulaire stable.
top_k moyen (30–80) pour garder du naturel sans inventer. - SEO / content manager (contenu pro)
Vous voulez un style fluide mais maîtrisé (pas de digressions).
top_k moyen à haut (50–120) selon le niveau de créativité voulu. - Commercial / marketing (emails, scripts d’appel, variantes de wording)
Besoin de plusieurs formulations, tout en restant “dans le thème”.
top_k plus haut (80–200) pour générer des variantes. - Formation / e-learning / pédagogie
Reformuler un concept de 3 façons, créer des quiz, exemples.
top_k moyen : assez de variété, mais toujours pédagogique. - Développeur / intégrateur (code + explications)
Si vous voulez du code stable et standard : top_k bas/moyen.
Pour générer des idées d’archi ou des variantes : top_k plus haut.