La température est un hyperparamètre utilisé dans les grands modèles de langage pour contrôler le caractère aléatoire de la sortie du modèle lors de la génération de texte. Il s'agit d'un facteur d'échelle appliqué aux logits (les scores bruts et non normalisés) produits par la dernière couche du modèle avant que la fonction softmax ne les convertisse en une distribution de probabilité sur le vocabulaire. En ajustant la température, les développeurs et les utilisateurs peuvent influencer l'équilibre entre créativité et prévisibilité dans le texte généré.
Ce concept provient de la mécanique statistique, où la température gouverne l'entropie d'un système. En apprentissage automatique, la température a été introduite comme une modification de la fonction softmax, parfois appelée « température softmax », afin d'accentuer ou de réduire la netteté de la distribution de sortie. Une température de 1.0 laisse la distribution inchangée. Des valeurs supérieures à 1.0 augmentent l'entropie, rendant la distribution plus uniforme et donc plus aléatoire. Des valeurs inférieures à 1.0 diminuent l'entropie, rendant la distribution plus pointue et donc plus déterministe. Une température de 0.0 (ou proche de zéro) sélectionne effectivement le jeton avec la probabilité la plus élevée, ce qui résulte en un décodage glouton.
La température est l'une des plusieurs stratégies d'échantillonnage utilisées lors de l'inférence des LLM, aux côtés de l'échantillonnage top-k et de l'échantillonnage nucleaire (top-p). Ces méthodes sont souvent utilisées ensemble pour contrôler la qualité et la diversité du texte généré. En pratique, la température est définie en fonction de l'application souhaitée : des températures plus faibles pour les tâches exigeant une précision factuelle ou la génération de code, et des températures plus élevées pour l'écriture créative ou le brainstorming.
Rôle dans l'inférence des LLM
Lors de l'inférence, un LLM prédit le jeton suivant en calculant une distribution de probabilité sur son vocabulaire entier. Le paramètre de température modifie cette distribution avant l'échantillonnage. Pour un ensemble donné de logits z, la probabilité du jeton i est calculée comme softmax(z_i / T), où T est la température. Lorsque T est faible, les différences entre les logits sont amplifiées, ce qui fait dominer le jeton le plus probable. Lorsque T est élevée, les différences sont réduites, donnant une plus grande chance à des jetons moins probables d'être sélectionnés.
Ce mécanisme permet à un même modèle de produire des sorties variées pour une même invite. Par exemple, une température de 0.2 pourrait être utilisée pour un chatbot de support client afin d'assurer des réponses cohérentes et fiables, tandis qu'une température de 0.8 pourrait être utilisée pour un assistant d'écriture créative afin de générer une prose plus imaginative. De nombreuses API de LLM, comme celles de OpenAI, Anthropic et Google DeepMind, exposent la température comme paramètre configurable.
Effet sur la qualité de la sortie
La température a un impact direct sur la qualité et la cohérence du texte généré. Les températures faibles ont tendance à produire des sorties répétitives et sûres, mais elles peuvent également conduire à un « effondrement du mode » où le modèle reste bloqué dans une boucle. Les températures élevées peuvent introduire des erreurs grammaticales, des incohérences logiques ou du contenu absurde, car le modèle peut sélectionner des jetons improbables. Trouver la température optimale nécessite souvent une expérimentation et dépend de la tâche et du modèle spécifiques.
La recherche et l'expérience pratique ont montré que des températures modérées (par exemple, 0.7 à 0.9) offrent souvent un bon équilibre pour la génération de texte à usage général. Cependant, pour des tâches comme la génération de code, des températures plus faibles (par exemple, 0.1 à 0.3) sont recommandées pour réduire les erreurs de syntaxe et améliorer la correction. À l'inverse, pour des tâches comme la génération de récits ou le dialogue, des températures plus élevées peuvent produire des réponses plus engageantes et variées.
Relation avec d'autres méthodes d'échantillonnage
La température est souvent utilisée en conjonction avec d'autres techniques d'échantillonnage. L'échantillonnage top-k restreint le bassin d'échantillonnage aux k jetons suivants les plus probable, tandis que l'échantillonnage nucléaire (top-p) sélectionne l'ensemble le plus petit de jetons dont la probabilité cumulée dépasse un seuil p. Ces méthodes peuvent être combinées avec la température pour contrôler further le caractère aléatoire. Par exemple, un modèle pourrait utiliser une température de 0.8 avec un top-p de 0.9, ce qui signifie que la température est appliquée en premier, puis le filtre nucléaire sélectionne les jetons les plus probablement qui représentent ensemble 90 % de la masse de probabilité.
Dans certaines implémentations, la température est appliquée avant le filtre top-k ou top-p, tandis que dans d'autres, elle l'est après. L'ordre exact peut affecter la distribution résultante, mais le principe général reste : la température ajuste le caractère aléatoire global, tandis que le top-k et le top-p se concentrent sur les jetons les plus probablement.
Considérations pratiques
Lors du déploiement de LLM en production, la température est un paramètre critique à ajuster. Elle affecte non seulement la qualité des sorties, mais aussi le coût et la latence, car des températures plus élevées peuvent conduire à une génération plus longue si le modèle explore des chemins plus diversifiés. Certains frameworks, comme la bibliothèque Hugging Face Transformers, offrent un support intégré pour la température et d'autres paramètres d'échantillonnage.
La température est également utile en fine-tuning et en renforcement d'apprentissage. Lors de la phase de formation, une technique appelée distillation des connaissances utilise une température pour atténuer les distributions de sortie d'un modèle enseignant, ce qui permet à un modèle élève d'apprendre à partir des sorties probabilistiques de l'enseignant. Dans ce contexte, la température est utilisée pour contrôler la « douceur » des étiquettes, ce qui peut améliorer la généralisation du modèle étudiant.
Contexte historique
L'utilisation de la température dans les fonctions softmax est antérieure aux LLM modernes. Elle a été introduite dans le domaine des réseaux de neurones dans les années 1980 et 1990, notamment par des chercheurs comme Geoffrey Hinton et d'autres travaillant sur les machines de Boltzmann et l'apprentissage des réseaux de neurones. Ce concept a été ensuite adopté dans les modèles séquence à séquence et a finalement avec le time use become a feature standard dans les LLM basés sur le transformer. À partir du début des années 2020, la température est un paramètre omniprésent dans les API de LLM et les implémentations open source.
Voir aussi
- Top-P (Nucleus) Sampling
- Top-K Sampling
- softmax
- logits