Modèles autorégressifs : prédire le prochain jeton
Jeton : unité de texte minimale traitée par un LLM. Un jeton n’est ni une lettre ni un mot – c’est quelque chose entre les deux. Le mot incroyable est divisé par l'algorithme BPE en trois jetons : `un` + `believ` + `able`. Les LLM modernes ont des vocabulaires de 32 000 à 128 000 jetons. Règle générale : 1 jeton ≈ 4 caractères, 100 jetons ≈ 75 mots anglais.
La règle de la chaîne : une condition à la fois

Un modèle de langage apprend à calculer P(jeton suivant | tous les jetons précédents). Cela découle directement de la règle de multiplication des probabilités : la probabilité d'une séquence est égale au produit des probabilités conditionnelles de chaque jeton étant donné tout ce qui le précède. Les modèles construits sur ce principe sont appelés autorégressifs car chaque sortie sert d'entrée pour l'étape suivante.

Formellement :

P(t1,t2,,tn)=i=1nP(tit1,,ti1)P(t_1, t_2, \ldots, t_n) = \prod_{i=1}^{n} P(t_i \mid t_1, \ldots, t_{i-1})
Chaque étape de génération est une inférence de probabilité conditionnelle. Pour générer une réponse de 200 jetons, le modèle exécute cette passe avant 200 fois.

Une étape de génération : le pipeline complet

Appuyez sur chaque étape pour retracer ce qui se passe à l'intérieur du modèle lorsqu'il sélectionne le jeton suivant :

Cliquez sur chaque étape — une étape = un jeton généré ▶
Contexte
Tous les jetons jusqu'à présent
Intégration
Jetons → vecteurs denses
Transformateur
Auto-attention + FFN
Logits
Un numéro par jeton de vocabulaire
Softmax
Logits → probabilités
Échantillonnage
Choisissez le prochain jeton
Logits — les nombres bruts générés par la dernière couche du modèle, un par jeton de vocabulaire. Les logits ne sont pas des probabilités : ils peuvent être n'importe quel nombre réel, leur somme n'est pas égale à 1, ils peuvent être négatifs. Plus le logit est grand, plus le modèle « préfère » ce jeton. La fonction softmax convertit les logits en une distribution de probabilité appropriée.
Des logits aux probabilités : softmax

Softmax :σ(xi)=exijexj\sigma(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}}. Chaque sortie est positive, la somme de toutes les sorties est égale à 1. Faites glisser les logits ci-dessous – remarquez comment un petit changement dans un logit éloigne la probabilité de tous les autres. Le paramètre température T divise tous les logits avant softmax : un T faible affine la distribution, un T élevé l'aplatit.

Faites glisser les logits ou modifiez la température – observez les changements de probabilités
SOFTMAX · 6 classes
z=3.8toit
z=3.2canapé
z=2.4sol
z=1.8fenêtre
z=0.9lit
z=0.3eau
softmaxT=1.0
p=0.50toit
p=0.27canapé
p=0.12sol
p=0.07fenêtre
p=0.03lit
p=0.01eau
T = 1.00
T→0
winner-
takes-all
T→∞
uniform
Entropy H = 1.878 / 2.585
softmax(z)ᵢ = exp(zᵢ/T) / Σⱼexp(zⱼ/T). Winner: toit · p = 0.496
La boucle de génération dans le code
Cliquez sur une ligne pour voir son explication ▼
python
1
def generate(model, prompt_tokens, max_new=50):
2
    tokens = list(prompt_tokens)              # context
3
    for _ in range(max_new):
4
        logits = model(tokens)               # [vocab_size]
5
        probs  = softmax(logits)             # sum = 1.0
6
        next_token = sample(probs)           # pick one
7
        tokens.append(next_token)            # context grows
8
        if next_token == EOS_TOKEN: break    # stop signal
9
    return tokens
Regardez le contexte grandir : jeton par jeton

Chaque barre montre la probabilité que le modèle ait attribué à ce jeton candidat à cette position. La barre verte est celle qui a été échantillonnée et ajoutée au contexte.

Appuyez sur « Jeton suivant » — regardez le contexte grandir et le changement de distribution ▶
Lechatassissur|
Fenêtre contextuelle — le nombre maximum de jetons que le modèle peut « voir » en une seule passe. GPT-2 : 1 024 jetons. GPT-4 Turbo : 128 000. Claude 3 : jusqu'à 200 000. Tout ce qui se trouve au-delà de la fenêtre est invisible pour le modèle. L'extension du contexte coûte cher - la complexité de l'attention du transformateur est de O (n²) en longueur de séquence.

Points clés à retenir

Un modèle de langage autorégressif génère du texte en prédisant à plusieurs reprises le prochain jeton le plus probable compte tenu de tous les jetons précédents. Chaque étape de génération est un passage complet à travers le modèle — il n'y a pas de raccourci.
Jeton ≈ 4 caractères. L'algorithme BPE construit un vocabulaire de 32 000 à 128 000 unités de sous-mots
Le modèle prédit P(tᵢ | t₁…tᵢ₋₁) — la règle de la chaîne transforme cela en probabilité de n'importe quelle séquence
Pipeline : Contexte → Transformateur → Logits → Softmax → Probabilités → Échantillon → Nouveau jeton
Les Logits sont des scores bruts, pas des probabilités. Softmax les convertit : tous ≥ 0, somme = 1
La génération est séquentielle : une passe avant par jeton. Une réponse de 200 jetons coûte 200 passes