Skip to main content

Prédiction du token suivant (Next-Token Prediction)

POUR AGENT IAChatGPTClaude

Mécanisme fondamental des grands modèles de langage (LLM) autorégressifs. Calcul des logits, fonction Softmax, influence de la température et de l'échantillonnage (Top-P/Top-K). Explication de la génération de texte comme processus séquentiel O(N) et visualisation des probabilités via l'API.

1. Vue d’ensemble du concept et essence mathématique

Lorsque vous observez une intelligence artificielle concevoir une architecture microservices ou composer un poème, il est tentant de croire qu’une conscience dotée d’un monologue intérieur a émergé au sein de l’ordinateur.

Pourtant, au niveau des calculs sous le capot de n’importe quel LLM autoregressif (GPT-4o, Claude 3.7, Llama 3.3, DeepSeek R1), un seul cycle itératif s’exécute :

$$P(W) = \prod_{t=1}^{T} P(w_t \mid w_1, w_2, \dots, w_{t-1})$$

  1. Lire la séquence d’entrée de tokens $w_1, \dots, w_{t-1}$.
  2. Faire passer les vecteurs à travers les couches Transformer (Self-Attention + MLP).
  3. Calculer un score numérique (Logit) pour chacun des 128 000 tokens du vocabulaire.
  4. Appliquer Softmax et des algorithmes de sélection (Temperature, Top-P), en choisissant un unique token $w_t$.
  5. Ajouter $w_t$ au contexte et répéter l’étape.

Modèle mental : ce n’est pas un oracle qui connaît la pensée finale à l’avance, mais un générateur statistique de trajectoire qui fait un pas et ne voit où poser le pied suivant qu’après coup.

┌─────────────────────────────────────────────────────────────┐
│              CONVEYEUR MATHÉMATIQUE À PAS UNIQUE            │
├─────────────────────────────────────────────────────────────┤
│ 1. Contexte d'entrée : « Kyiv est la capitale »             │
│    Vectorisation des tokens ➔ Passage à travers les         │
│    couches du transformateur                                │
├─────────────────────────────────────────────────────────────┤
│ 2. Couche de sortie (Unembedding) : 128 000 logits          │
│    • Token " de l'Ukraine"   ➔ Logit : +14,2                │
│    • Token " ancienne"       ➔ Logit : +8,1                 │
│    • Token " de France"      ➔ Logit : -4,5                 │
├─────────────────────────────────────────────────────────────┤
│ 3. Normalisation Softmax(Logits / Température) :            │
│    • " de l'Ukraine"   ➔ 94,2 %                             │
│    • " ancienne"       ➔ 5,1 %                              │
│    • " de France"      ➔ 0,0001 %                           │
├─────────────────────────────────────────────────────────────┤
│ 4. Échantillonnage : sélection du token " de l'Ukraine"     │
│    Nouveau contexte : « Kyiv est la capitale de l'Ukraine » │
│    ➔ Prochaine étape                                        │
└─────────────────────────────────────────────────────────────┘

2. Implémentation du sampling en Python et inspection via CLI

Voici à quoi ressemble le calcul des probabilités du prochain token en Python, tenant compte de la température :

import numpy as np

def compute_next_token_probs(logits: np.ndarray, temperature: float = 0.7) -> np.ndarray:
    # 1. Масштабування температурою
    scaled = logits / max(temperature, 1e-4)
    # 2. Стабільний Softmax (віднімання максимуму для запобігання overflow)
    exp_logits = np.exp(scaled - np.max(scaled))
    probs = exp_logits / np.sum(exp_logits)
    return probs

# Приклад виклику: 4 можливі токени
mock_logits = np.array([12.5, 9.1, 4.0, 1.2])
print("Ймовірності токенів:", np.round(compute_next_token_probs(mock_logits, temperature=0.7), 4))

Comment visualiser les probabilités brutes des tokens via cURL dans le terminal :

Vous pouvez demander à l’API de retourner les logprobs exacts (probabilités logarithmiques) afin de voir les alternatives que le modèle a envisagées :

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "Столиця Франції — це"}],
    "max_tokens": 1,
    "logprobs": true,
    "top_logprobs": 3
  }'

Dans la réponse JSON, le paramètre top_logprobs affichera les scores mathématiques précis pour des options comme Paris, ville, etc.


3. Pourquoi le Next-Token provoque des hallucinations et comment y remédier

Puisque le modèle génère le texte localement « ici et maintenant », il est sujet aux pièges statistiques :

  1. Erreur d’engagement précoce (Early Commitment) : Si, dès les deux premiers mots, le modèle a choisi par hasard un token inapproprié, tous les tokens suivants tenteront de justifier ce mauvais choix plutôt que de reconnaître l’erreur.
  2. Impossibilité de retour en arrière (No Backtracking) : L’inférence standard ne peut pas effacer un mot déjà généré.
  3. Pourquoi les modèles de raisonnement (Reasoning Models / DeepSeek R1 / o3) fonctionnent mieux : Ils utilisent des chaînes de réflexion (<thought>...</thought>), générant des centaines de tokens d’analyse interne et d’auto-vérification avant de fournir la réponse finale.

4. Conclusion pratique pour le développeur

Gardez à l’esprit le pipeline autoregressif :

  • Les prompts tels que "Réfléchis avant de répondre" ou "Développe étape par étape" fonctionnent non pas parce que l’IA devient plus attentive, mais parce que vous la forcez à générer des tokens de réflexion qui deviennent physiquement le contexte d’entrée pour le token final contenant la bonne réponse !
/ Questions fréquentesSchema.org FAQPage

FAQ: Prédiction du token suivant (Next-Token Prediction)

Pour prédire avec précision mathématique le token suivant dans du code ou un article scientifique, le modèle ne peut pas se fier à une simple statistique superficielle des mots : lors du pretraining sur des billions de tokens, il a été contraint de former dans ses poids une représentation compressée du monde, des liens causaux et une logique algorithmique.
/ Liens internes
Tous les termes
Modèles & Inférence

Les tokens expliqués simplement (Combien de mots dans un token)

Unité de base de mesure du texte dans les modèles de langage. Explication de la manière dont les mots sont divisés en tokens, de l'impact sur le coût des requêtes et de la raison pour laquelle les mots ukrainiens consomment plus de tokens que les mots anglais.

Lire le terme
Modèles & Inférence

Température de génération (Curseur de créativité et d'aléatoire)

Paramètre numérique clé pour la génération de texte (généralement compris entre 0,0 et 1,0 ou 2,0). Il détermine le degré d'imprévisibilité dans le choix du token suivant : allant d'une logique déterministe stricte à une imagination plus libre.

Lire le terme
Modèles & Inférence

Architecture Transformer

Une architecture de réseau neuronal présentée par les chercheurs de Google en 2017 dans l'article « Attention Is All You Need ». Fondement de tous les modèles linguistiques modernes (GPT, Claude, Gemini, Llama), elle a remplacé les réseaux récurrents lents et appris à traiter tout le texte simultanément en parallèle.

Lire le terme
Modèles & Inférence

KV-кеш (Key-Value Cache)

Оптимізація пам'яті в моделях Transformer, яка зберігає вектори ключів і значень (Keys and Values) уже оброблених токенів у швидкій пам'яті GPU. Дозволяє генерувати кожне наступне слово миттєво, але стрімко росте в розмірі з кожним новим повідомленням у чаті.

Lire le terme