IAMaîtriser l'IA générative Plan du corpus
Accueil/Fondamentaux des LLM/Comment fonctionne un LLM

Comment fonctionne un LLM

Comprendre la machine à prédire le mot suivant, juste assez pour arrêter de prompter au hasard.

Temps de lecture : 12 min | Niveau : Débutant

Ce que tu sauras faire après

  • Expliquer en une phrase ce que fait réellement un modèle quand tu lui envoies un prompt.
  • Distinguer les trois étapes d'entraînement : pre-training, fine-tuning, RLHF.
  • Anticiper pourquoi deux formulations proches donnent deux résultats différents.
  • Reformuler un prompt flou en prompt qui contraint la prédiction.
  • Utiliser un template de prompt structuré sur tes tâches SQL, Python et pipeline.

1. Le coeur du truc : prédire le token suivant

Un LLM (large language model, grand modèle de langage) ne comprend pas ta question au sens humain. Il calcule quelle suite de tokens est la plus probable après ce que tu viens d'écrire.

Un token est l'unité de base que le modèle manipule. La documentation de Google le définit ainsi : "a token can be a word, a subword (a subset of a word), or even a single character". Donc un token, c'est un mot, un bout de mot, ou un caractère.

Microsoft le formule très bien dans sa doc de prompt engineering : les modèles de type GPT "attempt to produce the next series of words that are most likely to follow from the previous text". Et la phrase importante :

Si tu poses une question dans ton prompt, le modèle ne suit pas un chemin de code séparé dédié aux questions-réponses. Il répond parce qu'une réponse est le type de suite le plus probable après une question.

C'est tout. Tout le reste en découle.

Conséquence directe

Ton prompt n'est pas une commande. C'est un début de texte. Le modèle continue ce texte. Donc :

  • Si tu commences par un texte qui ressemble à une spécification technique, la suite ressemblera à une spécification technique.
  • Si tu commences par un texte vague, la suite sera vague.

2. L'architecture, en cinq lignes

L'architecture dominante s'appelle le Transformer. Elle a deux parties : "An encoder converts input text into an intermediate representation" et "A decoder converts that intermediate representation into useful text" (Google, cours LLM).

Le mécanisme clé est l'auto-attention (self-attention). Le modèle se pose, pour chaque token, la question : "How much does each other token of input affect the interpretation of this token?" — à quel point chaque autre token du texte modifie l'interprétation de celui-ci.

Retiens deux choses :

  1. Le modèle regarde tous les tokens de ton prompt en même temps, pas seulement les derniers.
  2. Plus le prompt est long, plus il y a de paires de tokens à relier. Anthropic explique que c'est la cause de la dégradation sur les longs contextes : avec n tokens, le modèle doit gérer n au carré relations.

Et sur la taille : "Transformers with more parameters consistently outperform Transformers with fewer parameters" (Google). Plus de paramètres = meilleures performances, mais plus cher et plus lent.


3. Les trois étapes d'entraînement

Étape 1 : le pre-training (pré-entraînement)

Définition officielle Anthropic :

Pretraining is the initial process of training language models on a large unlabeled corpus of text. [...] autoregressive language models are pretrained to predict the next word, given the previous context of text in the document.

Traduction : on prend une énorme quantité de texte, on cache des morceaux, et on demande au modèle de les deviner. Google décrit la même mécanique : "The model trains by trying to predict those missing tokens."

Point capital, toujours d'Anthropic :

These pretrained models are not inherently good at answering questions or following instructions.

Un modèle juste pré-entraîné est inutilisable comme assistant. Il complète du texte, c'est tout.

Étape 2 : le fine-tuning (affinage)

Fine-tuning is the process of further training a pretrained language model using additional data.

On rentraîne le modèle sur des données ciblées pour qu'il imite un style ou une tâche. Anthropic précise que Claude "is not a bare language model; it has already been fine-tuned to be a helpful assistant".

Google ajoute une nuance utile : le fine-tuning peut se faire "on just a few hundred or a few thousand training examples". Il existe aussi une variante moins coûteuse, le parameter-efficient tuning, qui ajuste "only a subset of parameters on each backpropagation iteration".

Étape 3 : le RLHF

RLHF = Reinforcement Learning from Human Feedback, apprentissage par renforcement à partir de retours humains. Définition Anthropic :

Human feedback consists of ranking a set of two or more example texts, and the reinforcement learning process encourages the model to prefer outputs that are similar to the higher-ranked ones.

Des humains classent des réponses de la meilleure à la moins bonne. Le modèle apprend à produire ce qui a été bien classé.

Anthropic encadre ça avec le cadre HHH (helpful, honest, harmless) : utile, honnête, inoffensif.

Résumé en tableau

ÉtapeCe qu'on faitRésultat
Pre-trainingPrédire le token manquant sur un énorme corpusLe modèle connaît la langue et le code
Fine-tuningRentraîner sur des données cibléesLe modèle suit un format, un style, un domaine
RLHFFaire classer des réponses par des humainsLe modèle répond comme un assistant utile

4. Pourquoi c'est probabiliste, et pourquoi ça te concerne

À chaque étape, le modèle ne choisit pas le token. Il tire un token dans une distribution de probabilités. Le paramètre temperature contrôle à quel point ce tirage est aventureux. Anthropic :

Higher temperatures lead to more creative and diverse outputs [...] Lower temperatures result in more conservative and deterministic outputs.

Attention, piège classique, documenté noir sur blanc par Anthropic :

Even with temperature set to 0, the results will not be fully deterministic and identical inputs may produce different outputs across API calls.

Même à temperature 0, tu n'as aucune garantie de reproductibilité. Concrètement en data engineering : ne construis jamais un test de pipeline qui compare la sortie du modèle à une chaîne de caractères exacte. Compare des structures (un JSON parsé, un nombre de lignes, un schéma), pas du texte brut.


5. Pourquoi la formulation change le résultat

Puisque le modèle continue le texte le plus probable, chaque mot de ton prompt déplace la distribution. Trois effets documentés par Microsoft :

  1. L'ordre compte. "The order in which you present information to the model might impact the output."
  2. Biais de récence (recency bias). "Information at the end of the prompt might have more significant influence over the output than information at the beginning of the prompt." D'où le conseil de Microsoft : répète l'instruction importante à la fin d'un long prompt.
  3. Une syntaxe claire aide. "If you're not sure what syntax to use, consider using Markdown or XML. The models have been trained on a large quantity web content in XML and Markdown."

Exemple AVANT / APRÈS : un besoin SQL

AVANT (mauvais)

tu peux me faire une requete pour les ventes par mois

Problème : aucun nom de table, aucun moteur SQL, aucun format attendu. Le modèle va inventer un schéma plausible. C'est exactement ce qu'on lui a appris à faire : produire la suite la plus probable.

APRÈS (bon)

Tu es data engineer PostgreSQL 16.

TABLE
public.commandes(id_commande bigint, date_commande timestamptz, montant_ht numeric, id_client bigint, statut text)

TACHE
Ecris une requete qui donne le chiffre d'affaires HT par mois civil, sur les 12 derniers mois glissants, uniquement pour statut = 'validee'.

CONTRAINTES
- PostgreSQL uniquement, pas de syntaxe MySQL.
- Utilise date_trunc.
- Trie par mois croissant.
- Renvoie uniquement le bloc SQL, sans explication.

Pourquoi c'est mieux : on a donné le schéma (le modèle n'a plus besoin de l'inventer), le moteur (il ne mélange plus les dialectes), le format de sortie (il ne rajoute pas trois paragraphes), et des sections en majuscules qui servent de balises. Microsoft recommande exactement ça : "section headings or special variables are presented in uppercase to differentiate them".

Exemple AVANT / APRÈS : un bug Python

AVANT

mon script pandas plante, aide moi

APRÈS

CONTEXTE
Python 3.12, pandas 2.2. Le script lit un CSV de 400 Mo puis fait un groupby.

CODE
df = pd.read_csv("ventes.csv")
res = df.groupby("region")["montant"].sum()

ERREUR
MemoryError

TACHE
1. Donne la cause la plus probable.
2. Propose une correction qui tient en memoire sur une machine de 8 Go.
3. Si tu n'es pas sur, dis-le au lieu de deviner.

Pourquoi c'est mieux : versions précises, code et erreur isolés dans leurs sections, tâches numérotées, et une porte de sortie. Microsoft appelle ça "give the model an out" : autoriser explicitement le modèle à dire qu'il ne sait pas réduit les réponses inventées.


6. Template prêt à copier-coller

Garde celui-là sous la main. Il marche pour SQL, Python, dbt, Airflow ou une analyse.

ROLE
Tu es [METIER_PRECIS, ex: data engineer specialise PostgreSQL et dbt].

CONTEXTE TECHNIQUE
- Outils et versions : [OUTILS_ET_VERSIONS]
- Schema ou structure des donnees : [SCHEMA_OU_COLONNES]
- Volume : [VOLUME_DE_DONNEES]

TACHE
[VERBE_D_ACTION + RESULTAT_ATTENDU_EN_UNE_PHRASE]

CONTRAINTES
- [CONTRAINTE_1, ex: pas de CTE recursive]
- [CONTRAINTE_2, ex: compatible Airflow 2.9]
- [CONTRAINTE_3]

FORMAT DE SORTIE
[FORMAT_EXACT, ex: uniquement un bloc de code SQL, sans commentaire]

SI TU N'AS PAS ASSEZ D'INFORMATION
Pose-moi les questions manquantes au lieu d'inventer un schema.

RAPPEL
[REPETE_ICI_LA_CONTRAINTE_LA_PLUS_IMPORTANTE]

La dernière section n'est pas du remplissage : elle exploite le biais de récence documenté par Microsoft.


À retenir

  • Un LLM prédit le token suivant. Il ne raisonne pas sur ta question, il continue ton texte.
  • Pre-training = deviner le token manquant. Fine-tuning = spécialiser. RLHF = faire classer des réponses par des humains pour obtenir un assistant.
  • Le modèle est probabiliste : même à temperature 0, deux appels identiques peuvent différer. Ne teste jamais une sortie par égalité de chaîne.
  • L'ordre des informations change le résultat, et la fin du prompt pèse plus lourd que le début (biais de récence).
  • Markdown et XML sont les syntaxes que les modèles lisent le mieux : structure tes prompts en sections.
  • Donne toujours une porte de sortie du type "si tu ne sais pas, dis-le" pour réduire l'invention.

Sources

Corpus personnel de formation · genere le 26/09/2026 · source : 01-comment-fonctionne-un-llm.md