Stratégies d'échantillonnage : recherche de température, top-k, top-p et faisceau
Une fois que le modèle a calculé une distribution de probabilité sur le vocabulaire, quelque chose doit sélectionner le jeton suivant. Ce choix détermine si la production est créative ou conservatrice, diversifiée ou répétitive. Cette leçon couvre les cinq stratégies les plus courantes et quand les utiliser.
Stratégie 1 — Décodage gourmand
ℹ️
Le décodage gourmand sélectionne toujours le jeton avec la probabilité la plus élevée : `next = argmax P(t | context)`. C'est déterministe : la même invite produit toujours le même résultat. Le problème : gourmand est sujet aux boucles répétitives et aux complétions « sûres » mais ennuyeuses. En choisissant le meilleur jeton localement à chaque étape, il peut manquer des séquences globalement meilleures.
Stratégie 2 — Température
ℹ️
La température T divise tous les logits avant softmax : `probs = softmax(logits / T)`. À T < 1, la distribution s'accentue — le modèle devient plus confiant dans les meilleurs jetons. À T > 1, il s'aplatit : les jetons à faible probabilité obtiennent une part plus importante. Lorsque T → 0, le comportement se rapproche de la gourmandise. Valeurs typiques : 0,6 à 0,8 pour des tâches précises (code, faits), 1,0 à 1,2 pour l'écriture créative.
Essayez-le : déplacez les curseurs et observez le changement de distribution
Les barres ci-dessous montrent les probabilités des jetons après application des trois filtres dans l'ordre : température d'abord, puis top-k, puis top-p. Les jetons grisés sont exclus de l'échantillonnage.
Stratégie 3 — Échantillonnage Top-k
ℹ️
L'échantillonnage Top-k conserve uniquement les k jetons avec la probabilité la plus élevée, met à zéro le reste et renormalise. Cela coupe la queue de la distribution, empêchant le modèle de choisir un jeton très improbable (et généralement incohérent). Valeurs typiques : k = 20–100. Limitation : k est fixe et ne s'adapte pas au degré de confiance du modèle à chaque position.
Stratégie 4 — Échantillonnage Top-p (noyau)
ℹ️
L'échantillonnage Top-p (noyau) sélectionne le plus petit ensemble de jetons dont la probabilité cumulée ≥ p (généralement 0,9 à 0,95), met à zéro le reste et renormalise. Contrairement à top-k, la taille du noyau est adaptative : lorsque le modèle est confiant (un jeton à p = 0,95), le noyau a 1 jeton ; lorsqu'il est incertain, il peut en avoir 50. Cela rend le top-p robuste à différents niveaux de confiance.
Stratégie 5 — Recherche de faisceau
ℹ️
La recherche de faisceau conserve les k meilleures séquences partielles (largeur du faisceau) à chaque étape. Chacun est étendu à tous les jetons suivants possibles ; les k séquences les mieux notées survivent. Le gagnant est la séquence avec la probabilité logarithmique totale la plus élevée. La recherche par faisceau est déterministe et populaire en traduction automatique (largeur 4 à 8). Il produit de mauvais résultats pour une génération ouverte : le résultat est plat, répétitif et manque de diversité.
Comparaison côte à côte
💡
Recette pratique pour les modèles de chat : température = 0,7–0,8 combinée avec top-p = 0,9–0,95. OpenAI recommande de ne pas utiliser simultanément la température et le top-p (modifier l'un, laisser l'autre par défaut), mais une combinaison modérée fonctionne souvent mieux dans la pratique. Pour la génération de code : température = 0,2, top-p = 0,95, ou simplement gourmand.