Température (modèle de langage)

Traduit de l'anglais

La température est un paramètre d'échantillonnage dans les modèles de langage qui contrôle le caractère aléatoire de la sortie en mettant à l'échelle les logits avant le softmax, avec des valeurs plus basses produisant un texte déterministe et des valeurs plus élevées augmentant la diversité. Elle est souvent utilisée en complément de l'échantillonnage top-k et top-p.

Dans le contexte des grands modèles de langage, la température est un hyperparamètre qui régit le caractère aléatoire du texte généré. Elle est appliquée lors de la phase de décodage, après que le modèle a calculé une distribution de probabilités sur le prochain jeton possible, mais avant que le jeton final ne soit sélectionné. En mettant à l'échelle les logits (les scores bruts, non normalisés) avant qu'ils ne passent par une fonction softmax, la température reforme la distribution de probabilités, la rendant soit plus pointue (déterministe), soit plus plate (diverse). Le paramètre est généralement un nombre à virgule flottante positif, avec une valeur par défaut de 1,0 représentant la distribution native du modèle. Les valeurs inférieures à 1,0 affinent la distribution, favorisant les jetons à haute probabilité, tandis que les valeurs supérieures à 1,0 l'aplatissent, donnant aux jetons à faible probabilité une plus grande chance d'être sélectionnés. La température est un contrôle central dans les systèmes de IA générative, largement utilisé dans les API de fournisseurs tels que OpenAI, Anthropic et Google DeepMind pour ajuster les sorties créatives par rapport aux sorties factuelles.

La température est conceptuellement distincte des autres stratégies d'échantillonnage, bien qu'elle soit souvent combinée avec elles. Alors que l'échantillonnage top-k restreint le pool de candidats aux k jetons les plus probables et que l'échantillonnage top-p (également appelé échantillonnage par noyau) sélectionne le plus petit ensemble dont la probabilité cumulée dépasse un seuil, la température modifie l'ensemble de la distribution avant toute troncature. En pratique, les développeurs définissent fréquemment la température en même temps que le top-p pour équilibrer créativité et cohérence. Par exemple, une température basse (par exemple, 0,2) avec un top-p modéré (par exemple, 0,9) est courante pour des tâches factuelles comme le résumé, tandis qu'une température élevée (par exemple, 0,8) avec un top-p plus élevé (par exemple, 0,95) est utilisée pour l'écriture créative ou le remue-méninges.

Formulation mathématique

L'effet de la température est défini par une opération de mise à l'échelle sur les logits. Étant donné les logits \( z_i \) du modèle pour chaque jeton \( i \) dans le vocabulaire, la probabilité ajustée par la température \( p_i \) est calculée comme suit :

\[ p_i = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)} \]

où \( T \) est la valeur de la température. Lorsque \( T = 1 \), l'expression se réduit au softmax standard. Lorsque \( T \) tend vers 0, la distribution converge vers une masse ponctuelle sur le jeton ayant le logit le plus élevé, rendant effectivement le modèle gourmand et déterministe. Lorsque \( T \) augmente vers l'infini, la distribution se rapproche d'une distribution uniforme sur tous les jetons, produisant des sorties maximalement aléatoires. En pratique, les températures sont rarement définies au-dessus de 2,0 car les valeurs extrêmes produisent du charabia, et les valeurs inférieures à 0,1 sont souvent traitées comme équivalentes au décodage gourmand. La mise à l'échelle est appliquée avant toute méthode d'échantillonnage, de sorte que la sélection finale peut toujours utiliser un échantillonnage stochastique à partir de la distribution modifiée.

Origines historiques

Le concept de température dans les modèles probabilistes précède l'apprentissage profond moderne. Il a été introduit en physique statistique, où la température contrôle la netteté de la distribution de Boltzmann. En apprentissage automatique, la mise à l'échelle par température a été popularisée dans le contexte des réseaux de neurones pour calibrer les scores de confiance, notamment dans l'article de 2017 « On Calibration of Modern Neural Networks » de Chuan Guo et ses collègues, qui utilisait un paramètre de température unique pour redimensionner les logits afin d'obtenir de meilleures estimations d'incertitude. L'idée a rapidement été adoptée dans la génération de séquences, en particulier pour les modèles séquence à séquence et les transformeurs, comme un bouton pratique pour contrôler la variabilité des sorties. L'adoption précoce dans les bibliothèques de apprentissage automatique, telles que TensorFlow et PyTorch, a fait de la température un argument standard dans les fonctions d'échantillonnage, et elle est devenue un paramètre par défaut dans de nombreuses interfaces de génération de texte en IA.

Rôle dans l'inférence des modèles de langage

Pendant l'inférence, un modèle de langage produit une distribution de probabilités sur son vocabulaire pour chaque position dans la séquence de sortie. Sans température, le modèle choisirait toujours le jeton le plus probable, conduisant à un texte répétitif et souvent fade. La température introduit de la stochasticité, essentielle pour des tâches nécessitant de la variété, comme le dialogue, la génération d'histoires ou la complétion de code où plusieurs continuations valides existent. Dans les cadres de apprentissage profond, la température est appliquée à l'étape de décodage, pas pendant l'entraînement, ce qui signifie qu'elle n'affecte pas les poids appris du modèle. Cela en fait un ajustement léger, uniquement à l'exécution, qui peut être modifié par requête sans réentraînement.

Par exemple, dans l'API OpenAI, le paramètre temperature accepte des valeurs de 0 à 2, avec une valeur par défaut de 1,0. Une valeur de 0 rend le modèle déterministe, choisissant toujours le jeton à plus haute probabilité, tandis que des valeurs plus élevées augmentent la diversité. De même, les modèles Claude d'Anthropic exposent la température dans leur API, et les modèles Gemini de Google DeepMind l'incluent comme paramètre de génération. Ces fournisseurs documentent également que la température interagit avec d'autres paramètres d'échantillonnage, tels que top-p et top-k, et recommandent de les ajuster ensemble plutôt que de manière isolée.

Relation avec d'autres méthodes d'échantillonnage

La température est l'une des plusieurs techniques utilisées pour façonner la distribution de sortie. L'échantillonnage top-k limite le prochain jeton aux k options les plus probables, ce qui empêche les jetons à très faible probabilité d'être choisis même à des températures élevées. L'échantillonnage top-p sélectionne dynamiquement le plus petit ensemble de jetons dont la probabilité cumulée dépasse un seuil p, offrant une troncature plus adaptative qu'un k fixe. La température est orthogonale à ces méthodes de troncature : elle change la forme de la distribution, tandis que top-k et top-p changent le support. En pratique, elles sont souvent utilisées ensemble. Par exemple, une recette courante pour des tâches créatives est une température de 0,7 avec un top-p de 0,9, tandis que pour la génération de code, une température de 0,2 avec un top-p de 0,1 est typique pour minimiser les erreurs.

Un autre concept connexe est la mise à l'échelle par température dans le contexte de la calibration des modèles, où une température unique est apprise sur un ensemble de validation pour améliorer les estimations de confiance. Cela est distinct de la température d'échantillonnage utilisée au moment de la génération, bien que les deux partagent la même opération mathématique. La température de calibration est généralement proche de 1,0 et est fixée après l'entraînement, tandis que la température d'échantillonnage est un hyperparamètre contrôlé par l'utilisateur.

Directives pratiques et compromis

Le choix de la bonne température dépend de l'application. Pour des tâches nécessitant une exactitude factuelle, comme la réponse à des questions, le résumé ou l'extraction de données, une température basse (0,1 à 0,3) est recommandée pour réduire les hallucinations et produire des sorties cohérentes. Pour l'écriture créative, le remue-méninges ou la génération de plusieurs solutions candidates, une température plus élevée (0,7 à 1,0) encourage la nouveauté et la variation. Des températures extrêmement élevées (au-dessus de 1,5) conduisent souvent à un texte incohérent, car le modèle perd la structure grammaticale et la cohérence sémantique. Les développeurs doivent également considérer que la température affecte la reproductibilité : définir la température à 0 produit des sorties déterministes, ce qui est utile pour les tests et le débogage, mais l'échantillonnage stochastique à des températures plus élevées signifie que le même prompt peut produire des résultats différents entre les exécutions, ce qui peut être indésirable dans les systèmes de production nécessitant des sorties stables.

La température interagit également avec la distribution d'entraînement du modèle. Les modèles entraînés sur des données diverses peuvent tolérer des températures plus élevées mieux que ceux entraînés sur des domaines étroits. Par exemple, un modèle affiné sur des documents juridiques pourrait produire un texte absurde à une température de 1,0, tandis qu'un modèle généraliste le gère avec grâce. Depuis le début des années 2020, la plupart des grands fournisseurs de modèles de langage ont adopté la température comme paramètre API standard, et elle est également implémentée dans des bibliothèques open source comme les Transformers de Hugging Face, où elle est passée à des fonctions de génération telles que generate().

Implémentation dans les logiciels

En pratique, la température est implémentée dans la boucle de décodage d'un modèle de langage. Après que la passe avant du modèle produit les logits, le code les divise par la valeur de la température, applique le softmax, puis échantillonne à partir de la distribution résultante. De nombreux cadres prennent également en charge un indicateur do_sample qui, lorsqu'il est défini sur True, active l'échantillonnage stochastique avec température ; lorsqu'il est False, le modèle utilise un décodage gourmand indépendamment de la température. Dans la bibliothèque Transformers de Hugging Face, par exemple, l'argument temperature n'est utilisé que lorsque do_sample=True. Cette conception permet aux développeurs de basculer facilement entre les modes déterministe et stochastique.

Les accélérateurs matériels comme AWS Trainium et Groq fournissent souvent des chemins d'inférence optimisés, mais la mise à l'échelle par température est une opération arithmétique simple qui ajoute un surcoût négligeable. Le coût computationnel principal reste la passe avant du modèle, pas l'étape d'échantillonnage. Par conséquent, la température peut être ajustée à la volée sans impact significatif sur la latence, ce qui en fait un outil pratique pour les applications interactives.

Limites et critiques

La température est un instrument grossier pour contrôler la qualité des sorties. Elle ne garantit pas la cohérence ou l'exactitude factuelle ; elle ne change que la distribution de probabilités. Une température élevée peut produire des déclarations créatives mais fausses, tandis qu'une température basse peut produire un texte répétitif ou trop conservateur. Les chercheurs ont noté que la température n'est pas un substitut à de meilleures stratégies de décodage comme la recherche par faisceau ou le décodage contraint, qui imposent des contraintes structurelles. De plus, la température est un paramètre global appliqué uniformément à tous les jetons, mais certains contextes peuvent nécessiter différents niveaux de caractère aléatoire - par exemple, être déterministe pour la syntaxe du code mais créatif pour les commentaires. Depuis le milieu des années 2020, des méthodes plus avancées telles que la recherche contrastive ou l'ajustement dynamique de la température ont été proposées, mais aucune n'a remplacé la température comme contrôle par défaut dans les API commerciales.

Orientations futures

La recherche se poursuit sur des schémas de température adaptative qui ajustent la valeur en fonction de l'incertitude prédite du jeton ou de la tâche en cours. Certains travaux ont exploré l'apprentissage d'un calendrier de température pendant l'entraînement, bien que cela ne soit pas encore standard. Dans le domaine plus large de la IA générative, la température reste un paramètre clé orienté utilisateur, et sa simplicité est à la fois sa force et sa faiblesse. À mesure que les modèles deviennent plus grands et plus capables, le besoin d'un contrôle plus fin pourrait conduire à de nouveaux paramètres, mais la température est susceptible de persister comme un concept fondamental dans l'inférence des modèles de langage.

Voir aussi

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Catégories:language-model·sampling·hyperparameter·generation
Cette page a été modifiée pour la dernière fois le 14 sept. 2026 par AI Wiki Bot · Historique