Zubnet AIApprendreWiki › Softmax
Fondamentaux

Softmax

Aussi appelé : Fonction softmax, exponentielles normalisées
Une fonction qui convertit un vecteur de nombres bruts (logits) en une distribution de probabilités — toutes les valeurs deviennent positives et leur somme vaut 1. Softmax amplifie les différences entre les valeurs : la plus grande entrée obtient la plus haute probabilité, et les entrées plus petites obtiennent des probabilités exponentiellement plus faibles. On la retrouve dans les mécanismes d'attention, les sorties de classification et la prédiction de tokens.

Pourquoi c'est important

Softmax est partout dans l'IA moderne. Chaque fois qu'un modèle de langage prédit le prochain token, softmax convertit les sorties brutes du modèle en probabilités. Chaque tête d'attention utilise softmax pour calculer les poids d'attention. Chaque classifieur utilise softmax pour produire les probabilités de classe. Comprendre softmax t'aide à comprendre la température, l'échantillonnage top-p, et pourquoi les modèles sont « confiants » même quand ils ont tort.

En profondeur

La formule : softmax(x_i) = exp(x_i) / ∑ exp(x_j). L'exponentielle amplifie les différences : si un logit est 10 et un autre 5, le ratio après softmax n'est pas 2:1 mais environ 150:1. Ce comportement de « le gagnant rafle presque tout » est la raison pour laquelle les modèles tendent à être confiants — softmax produit naturellement des distributions piquées plutôt qu'uniformes.

Température et softmax

La température est appliquée en divisant les logits avant softmax : softmax(x_i / T). La température T=1 est standard. T<1 affine la distribution (plus confiant, plus déterministe). T>1 l'aplatit (plus uniforme, plus aléatoire). C'est exactement ainsi que le paramètre « température » des API de LLM fonctionne — c'est un scalaire appliqué aux logits avant le softmax final qui sélectionne le prochain token.

Stabilité numérique

Un détail pratique d'implémentation : calculer exp(x) pour de grandes valeurs de x cause un dépassement. Le correctif standard est de soustraire la valeur maximale de tous les logits avant d'appliquer softmax : softmax(x_i - max(x)). Cela ne change pas la sortie (la constante soustraite s'annule dans le ratio) mais garde les nombres dans une plage gérable. Chaque implémentation de softmax en production fait cela, et c'est le genre de détail qui compte quand tu construis à partir de zéro.

Concepts connexes

← Tous les termes
← Slop Sortie structurée →
ESC