Paramètres
Paramètres de génération des LLM
Temperature, top-p, top-k, pénalités : comment ces paramètres contrôlent la créativité et la cohérence des réponses d'un LLM.
Lorsqu’un LLM génère du texte, il calcule une probabilité pour chaque token possible. Les paramètres de génération contrôlent la façon dont le modèle sélectionne le prochain token, influençant la créativité et la cohérence des réponses.
Les paramètres ne sont PAS inclus dans les modèles. Quand vous téléchargez un modèle GGUF ou MLX dans LM Studio, Ollama ou autre, le fichier contient les poids du réseau et quelques métadonnées (chat template, tokenizer, context length), mais pas les paramètres de génération (temperature, top-p, top-k…). Les logiciels appliquent leurs valeurs par défaut (souvent temperature ~0.7, top-p ~0.9), qui conviennent à la conversation générale mais sont sous-optimales pour le code. Pour la génération de code, JSON ou SQL, pensez à baisser la temperature (0.0-0.3).
Comment un LLM génère du texte
À chaque étape, le modèle produit une distribution de probabilités sur l’ensemble du vocabulaire. Les paramètres ci-dessous modifient cette distribution ou la façon dont on y échantillonne.
Logits → ÷ Temperature → Softmax → Top-K / Top-P → Échantillonnage
(scores (ajuste la (probabilités) (filtrage) (sélection du
bruts) distribution) token)
Temperature
La temperature contrôle le « hasard » ou la « créativité » du modèle. Mathématiquement, elle divise les logits avant l’application de softmax, modifiant la forme de la distribution :
P(token_i) = exp(logit_i / T) / Σ exp(logit_j / T)
- Temperature basse (0.1 - 0.5) : distribution « pointue », les tokens probables dominent. Réponses prévisibles, cohérentes, déterministes. Usage : code, faits, documentation.
- Temperature moyenne (0.7 - 1.0) : distribution équilibrée, bon compromis entre cohérence et variété. Usage : conversation générale, rédaction.
- Temperature haute (1.0 - 2.0) : distribution « aplatie », plus de tokens deviennent probables. Réponses créatives, parfois incohérentes. Usage : brainstorming, poésie.
Temperature = 0. Une temperature de 0 force le modèle à toujours choisir le token le plus probable (greedy decoding). Les réponses deviennent complètement déterministes, mais peuvent mener à des répétitions.
Top-P (nucleus sampling)
Top-P, aussi appelé nucleus sampling, filtre dynamiquement le vocabulaire en ne conservant que les tokens dont la probabilité cumulée atteint un seuil P.
Token Probabilité Cumulée Inclus ?
─────────────────────────────────────────────
"chat" 0.40 0.40 oui
"chien" 0.30 0.70 oui
"oiseau" 0.15 0.85 oui
"poisson" 0.08 0.93 oui (dépasse 0.9)
"serpent" 0.04 0.97 non (exclu)
"hamster" 0.03 1.00 non (exclu)
top_p = 1.0: tous les tokens sont considérés (pas de filtrage).top_p = 0.9: top 90 % de la masse de probabilité (recommandé).top_p = 0.5: très restrictif, réponses prévisibles.
Top-K
Top-K est plus simple : il conserve uniquement les K tokens les plus probables, indépendamment de leur probabilité totale.
top_k = 1: greedy decoding (toujours le plus probable).top_k = 10: choix parmi les 10 meilleurs.top_k = 50: plus de diversité (valeur courante).top_k = 0ou désactivé : pas de filtrage Top-K.
Top-P vs Top-K. Top-P est généralement préféré car il s’adapte au contexte : quand le modèle est très sûr, il retient peu de tokens ; quand l’incertitude est grande, il en retient plus. Top-K est plus brutal et peut exclure de bons candidats ou en inclure de mauvais.
Autres paramètres importants
Repeat penalty (pénalité de répétition)
Réduit la probabilité des tokens déjà générés pour éviter les répétitions. Valeur typique : 1.1 à 1.3. À 1.0, pas de pénalité.
Frequency penalty / Presence penalty
- Frequency penalty : pénalise les tokens proportionnellement à leur fréquence d’apparition.
- Presence penalty : pénalise les tokens dès qu’ils sont apparus (peu importe combien de fois).
Max tokens
Limite le nombre maximum de tokens générés. Important pour contrôler les coûts et éviter les réponses trop longues.
Configurations recommandées
| Cas d’usage | Temperature | Top-P | Top-K | Notes |
|---|---|---|---|---|
| Code / SQL | 0.0 - 0.2 | 0.9 | - | Déterministe, syntaxe correcte |
| Factuel / Documentation | 0.3 - 0.5 | 0.9 | - | Précis mais pas robotique |
| Conversation générale | 0.7 | 0.95 | 50 | Équilibre naturel |
| Rédaction créative | 0.9 - 1.0 | 0.95 | - | Plus de variété |
| Brainstorming | 1.2 - 1.5 | 1.0 | - | Idées inattendues |
Côté SoberCloud, quand on sert Qwen3.6-27B (vLLM) et Qwen3.6-35B-A3B (llama.cpp) derrière une API OpenAI-compatible, ces paramètres se passent par requête (temperature, top_p, top_k), indépendamment des poids chargés. Pour nos charges agentiques de code, nous travaillons systématiquement à temperature basse afin de privilégier le déterminisme.
Pour aller plus loin
- Comprendre les LLM open source — comment naît la distribution de probabilités.
- Décodage accéléré — produire plusieurs tokens par étape sans changer la distribution.
- Logiciels d’inférence — où ces paramètres s’appliquent en production.