Playground Softmax intéractif
Comment les LLMs choisissent leurs mots
Quand ChatGPT ou Claude génèrent du texte, ils ne 'réfléchissent' pas - ils calculent instantanément des probabilités pour chaque mot possible. Ce playground vous permet de visualiser ce calcul mathématique et de comprendre comment les modèles de langage transforment des probabilités en décisions concrètes.
Le contexte de l'exercice
Imaginez qu'on demande à un modèle de langage d'écrire une histoire sur un chat. Il a commencé le texte mais ne l'a pas encore terminé. Comment écrire la suite ? c'est ce que nous allons découvrir ci-dessous.
Contexte
" La fenêtre était ouverte et la lumière du soleil se déversait dans le jardin où les fleurs éclosaient. Une petite souris courut à travers le sol de la cuisine, inconsciente du danger proche. Le chat curieux s'approcha lentement ... "
Paramètres
| Token | Logit de base | Logit ajusté | Probabilité | Prob. cumulée |
|---|
Simplifications pédagogiques
→ En réalité, les modèles travaillent avec des tokens, pas des mots (un token peut être un mot complet, une partie de mot, ou même un caractère).
→ Les logits de base ont été conçus pour ce playground et ne sont pas des valeurs réelles d'un modèle.
→ Les domaines des paramètres sont adaptés pour ce playground et peuvent différer des modèles réels.
Métriques
Perplexité
Perplexité mesure à quel point le modèle est "surpris" par la distribution de probabilité.
Interprétation :
- Perplexité faible (proche de 1) = plus confiant, moins incertain
- Perplexité élevée = plus incertain, prédictions plus diverses
- Une perplexité de 2 signifie que le modèle est aussi incertain que s'il choisissait entre 2 options également probables
Comment fonctionne Softmax
La fonction softmax convertit les scores bruts (logits) en distribution de probabilité. Elle est couramment utilisée dans les modèles de langage pour déterminer quel token générer ensuite.
Descriptions des paramètres
Tous les modèles de langage n'implémentent pas tous les paramètres présentés ici, et certains ont des contrôles supplémentaires. Par exemple, GPT-4 ne supporte pas l'échantillonnage top-k mais propose logit_bias qui peut être utilisé pour modifier les logits de tokens spécifiques. Différents modèles peuvent avoir des plages de paramètres, valeurs par défaut ou stratégies d'échantillonnage entièrement différentes. Consultez toujours la documentation du modèle spécifique pour les paramètres disponibles et leurs effets.
Température (T)
Contrôle l'aléatoire de la sélection de tokens. Des valeurs faibles (0,2-0,8) rendent le modèle plus déterministe et focalisé sur les tokens à haute probabilité. Des valeurs élevées (1,2-2,0) augmentent la créativité et la diversité en aplatissant la distribution de probabilité.
Top-k
Limite la sélection aux k tokens les plus probables. Définir k=1 fait que le modèle choisit toujours le token le plus probable (décodage glouton). Des valeurs k plus élevées permettent plus de variété tout en filtrant les tokens très improbables.
Top-p
Échantillonnage nucléaire : sélectionne le plus petit ensemble de tokens dont la probabilité cumulative dépasse p. Cela ajuste dynamiquement le nombre de tokens considérés basé sur la distribution de probabilité, offrant une diversité plus naturelle qu'un top-k fixe.
Pénalité de présence (λₚ)
Réduit la probabilité des tokens qui n'ont pas apparu dans le contexte récent. Des valeurs positives encouragent le modèle à utiliser un nouveau vocabulaire et éviter la répétition. Utile pour l'écriture créative et éviter les patterns répétitifs.
Pénalité de fréquence (λᶠ)
Réduit la probabilité des tokens basée sur leur fréquence d'apparition dans le contexte récent. Des valeurs plus élevées pénalisent plus agressivement les tokens répétés, aidant à maintenir la variété et réduire la redondance dans le texte généré.
Étapes de calcul
- Appliquer les pénalités : Ajuster les logits basés sur les pénalités de fréquence et de présence.
- Appliquer la température : Diviser les logits par la température pour contrôler l'aléatoire.
- Calculer softmax : Convertir en probabilités en utilisant la fonction exponentielle.
- Appliquer les filtres : Utiliser top-k et top-p pour limiter la sélection de tokens.
- Renormaliser : Recalculer les probabilités après filtrage.
Formules mathématiques
Logit ajusté : z'ᵢ = zᵢ + λₚ·1[countᵢ = 0] - λᶠ·countᵢ
Température : z̃ᵢ = z'ᵢ / T
Softmax : pᵢ = e^(z̃ᵢ - max(z̃)) / Σⱼ e^(z̃ⱼ - max(z̃))
Entropie : H = -Σᵢ pᵢ log(pᵢ)
Perplexité : PP = e^H
AiBrain