Votre phrase est découpée en fragments, chaque fragment devient une liste de nombres, ces nombres se déplacent selon les mots qui les entourent, puis traversent des couches de calcul. Le tout tourne deux fois, dans deux régimes très différents : d'abord pour lire votre message d'un bloc, ensuite pour écrire la réponse mot après mot.
Six mécanismes, et chacun devient un poste de consommation. Les deux du milieu forment le motif qu'on appelle transformer, empilé des dizaines de fois. Ils expliquent pourquoi le français coûte plus cher que l'anglais, pourquoi écrire coûte 35 fois plus que lire, pourquoi une longue conversation devient chère, et pourquoi un modèle géant peut consommer moins qu'un petit.
Ce chapitre les parcourt avec le minimum de chiffres. Chacun a ensuite son chapitre dédié.
Étape 1 : votre texte devient des fragments
Un modèle ne lit pas des lettres, il ne lit même pas des mots. Il lit des numéros de ligne dans un dictionnaire fixe, construit une fois pour toutes avant l'entraînement.
Ce dictionnaire ne contient pas des mots entiers, mais des fragments. « Bonjour » tient probablement en un seul fragment parce qu'il revient souvent. Un mot rare comme « anticonstitutionnellement » sera cassé en cinq ou six morceaux.
L'unité que le modèle manipule vraiment. Un token vaut environ 4,9 caractères en anglais et 4,3 en français. Le français en fait donc moins par token, donc plus de tokens pour le même texte.
Tout se compte en tokens : ce que vous payez, ce que la machine calcule, et l'électricité qu'elle consomme. C'est la seule unité commune aux trois.
Le même texte demande donc environ 37 % de tokens de plus en français qu'en anglais, et jusqu'à trois fois plus dans une langue peu représentée. Vous payez la différence, en euros comme en carbone.
Le détail et la mesure : le français coûte-t-il plus cher que l'anglais.
Étape 2 : chaque fragment devient une liste de nombres
Un numéro de ligne dans un dictionnaire ne veut rien dire pour un calcul. Le token 4 827 n'est pas « plus grand » que le token 312. Il faut donc remplacer chaque numéro par quelque chose qui porte du sens.
Ce quelque chose est une longue liste de nombres, plusieurs milliers, qui situe le fragment dans un espace. Les fragments de sens proche s'y retrouvent proches, parce que l'entraînement les y a placés.
La liste de nombres qui représente un token à l'intérieur du modèle. Sur un modèle de classe 70 milliards de paramètres, elle compte 8 192 valeurs.
Le modèle range ces listes dans une grande table, une ligne par entrée du dictionnaire. Avec 128 000 entrées de 8 192 nombres, cette seule table pèse un peu plus d'un milliard de paramètres. Elle s'apprend comme le reste.
Un point important pour la suite : ce vecteur est figé. Le mot « avocat » a une seule et unique liste de nombres à l'entrée du modèle, la même dans « l'avocat a plaidé » et dans « l'avocat était mûr ». Le dictionnaire ne sait pas de quel avocat il s'agit. C'est l'étape suivante qui tranchera.
Le modèle ne sait pas non plus dans quel ordre
Deuxième manque à combler. Le mécanisme qui suit traite tous les tokens en même temps, sans notion d'avant ni d'après. « Le chien mord l'homme » et « l'homme mord le chien » lui arriveraient identiques.
Il faut donc injecter la position. La méthode dominante depuis 2021 consiste à faire tourner les vecteurs d'un angle proportionnel à leur position, comme les aiguilles d'une horloge.
Une rotation appliquée aux vecteurs selon la place du token dans la phrase.
Sa propriété utile : quand deux tokens se comparent, le résultat ne dépend que de leur écart de position, pas de leur position absolue. L'information devient relative, gratuitement, par géométrie.
Conséquence commerciale directe : comme la position est un angle et non une valeur apprise, on peut étendre la fenêtre de contexte d'un modèle sans le réentraîner entièrement. Les fenêtres sont ainsi passées de 4 000 à un million de tokens en trois ans.
Retenez cette dernière phrase, elle explique une bonne partie du sujet. Étendre la fenêtre est devenu presque gratuit à l'entraînement. La servir ne l'est pas du tout, et l'étape 6 dira pourquoi.
Étape 3 : l'attention déplace ces vecteurs selon le contexte
Voilà le mécanisme central, celui qui a rendu ces modèles possibles.
Le problème à résoudre : un vecteur unique ne peut pas porter à la fois le juriste et le fruit. Il faut donc un mécanisme qui, en fonction des mots autour, déplace le vecteur de « avocat » vers l'une ou l'autre région de l'espace.
Le mécanisme se formalise avec trois listes de nombres dérivées du même vecteur.
Chaque token produit trois choses. Une requête, ce qu'il cherche. Une clé, ce qu'il propose aux autres. Une valeur, ce qu'il transmet si on le sélectionne.
Le modèle compare la requête de chaque token à la clé de tous les autres. Ça donne une note pour chaque paire. Ces notes deviennent des poids, et chaque token récupère une moyenne pondérée des valeurs de ses voisins.
Trois conséquences, dans l'ordre où elles comptent pour la consommation.
Le nombre de comparaisons grimpe au carré. Chaque token se compare à chaque autre : cent tokens font dix mille comparaisons, deux cents en font quarante mille. C'est le fameux coût quadratique de l'attention. Il est réel, et il domine moins qu'on ne le dit : sur un modèle de classe 70 milliards, il ne devient le poste principal qu'au-delà de 100 000 tokens, très loin du régime où tourne la quasi-totalité des requêtes.
Le modèle fait ça plusieurs fois en parallèle. Une seule comparaison ne capte qu'un type de relation. On en met donc plusieurs côte à côte, chacune libre d'apprendre un motif différent : l'accord sujet-verbe, à quoi renvoie un pronom, l'appariement des parenthèses. Ce sont les têtes d'attention. Un modèle de 70 milliards en compte typiquement 64 par couche, sur 80 couches.
Chaque token ne regarde que le passé. Le modèle prédit le mot suivant, donc pendant l'entraînement il ne doit pas pouvoir lire la réponse. On lui interdit de regarder vers l'avant.
Cette dernière contrainte a une conséquence qu'il faut avoir en tête pour comprendre l'étape 6 : puisque la représentation d'un token ne dépend jamais de ce qui vient après lui, elle ne change plus une fois calculée. On peut donc la garder au lieu de la recalculer.
Le détail : pourquoi le contexte long coûte si cher.
Étape 4 : le reste du calcul, là où dorment les paramètres
L'attention fait circuler l'information entre les mots. Elle ne contient pourtant qu'une minorité des paramètres du modèle. Le gros du stock est dans les couches qui suivent chaque bloc d'attention, et qui transforment chaque vecteur indépendamment des autres.
Ces couches représentent les deux tiers des paramètres d'un modèle classique.
Et c'est ici qu'on peut enfin chiffrer le travail. Sur un modèle classique, produire un token coûte environ deux opérations par paramètre traversé. Un modèle de 70 milliards de paramètres demande donc à peu près 140 milliards d'opérations par token, à chaque token.
Un FLOP est une opération en virgule flottante : une quantité de travail. On compte des FLOP comme on compte des kilomètres.
Un FLOPS est un débit, des opérations par seconde : une capacité de machine. On mesure des FLOPS comme on mesure des kilomètres par heure.
Le premier dit combien de calcul une requête demande. Le second dit à quelle vitesse la puce peut le fournir. Les confondre, c'est confondre la distance d'un trajet avec la vitesse de la voiture, et les deux mots circulent l'un pour l'autre en permanence.
Cette unité compte pour deux raisons pratiques. Le règlement européen sur l'IA admet explicitement une estimation de consommation d'énergie par proxy FLOP, faute de méthode normée. Et un fournisseur qui publie une empreinte par PFLOPS publie une intensité, pas un total : le chiffre peut baisser pendant que la consommation absolue monte.
Ces couches denses coûtent proportionnellement à la longueur du texte, pas à son carré, ce qui explique pourquoi le terme quadratique de l'attention met si longtemps à devenir dominant.
C'est là qu'intervient l'architecture qui a brouillé toutes les intuitions sur la taille des modèles.
Au lieu d'une grosse couche unique, le modèle en contient des dizaines, spécialisées. Un aiguilleur choisit lesquelles réveiller pour chaque token, et laisse les autres éteintes.
Résultat : un modèle annoncé à 2 800 milliards de paramètres peut n'en traverser qu'une centaine par token. Le calcul chute. Mais tous les experts doivent rester chargés en mémoire, puisqu'on ne sait pas à l'avance lesquels serviront.
Conséquence directe pour qui compare deux modèles : le nombre de paramètres annoncé ne dit plus rien de la consommation. La question est devenue « combien de paramètres actifs par token », et la réponse est parfois trente fois plus petite que le chiffre du communiqué de presse.
Le détail : ce que change vraiment le Mixture of Experts.
Ces deux couches forment le bloc qu'on appelle transformer
Attention puis couche dense, avec quelques normalisations entre les deux : voilà le motif. Il est empilé quatre-vingts fois sur un modèle de classe 70 milliards de paramètres, et chaque étage reprend le travail du précédent.
Le nom vient de l'article de 2017 qui a posé l'architecture, et il désigne exactement ce motif répété. Tous les modèles dont parle ce cours en sont des variantes : ce qui change d'un modèle à l'autre, c'est le nombre d'étages, la largeur des vecteurs, la façon dont l'attention partage ses clés, et si la couche dense est unique ou découpée en experts.
À la sortie du dernier étage, le modèle produit un score pour chaque entrée de son dictionnaire. Le token suivant est tiré de ces scores, et c'est là que se règlent la température et les autres paramètres de génération.
Étape 5 : tout ça tourne deux fois, dans deux régimes opposés
Une pile de quatre-vingts blocs, donc. Elle est parcourue de deux façons très différentes selon que le modèle lit ou qu'il écrit.
La machine absorbe tout votre message d'un seul bloc. Tous les tokens traversent la pile en même temps, en parallèle.
Les unités de calcul travaillent alors à pleine capacité. C'est la phase la moins chère par token de tout le processus.
La machine produit sa réponse token après token. Impossible de paralléliser : chaque mot dépend de celui d'avant.
Pour produire un seul token, elle doit relire l'intégralité des poids du modèle depuis la mémoire. Les unités de calcul passent alors l'essentiel de leur temps à attendre.
D'où l'asymétrie qui structure tout le reste du cours : un token que le modèle écrit coûte environ 35 fois un token qu'il lit, mesuré à lot unitaire. Le prix facturé, lui, n'affiche qu'un rapport de 5. Si vous cherchez où agir sur la consommation, cherchez du côté de ce qui sort, pas de ce qui entre.
Le détail et les mesures : pourquoi un token de sortie coûte 35 fois un token d'entrée.
Étape 6 : ce que le décodage garde sous la main
Pour écrire son cinquantième mot, le modèle a besoin de tout ce qui précède. Recalculer l'étape 3 sur toute la conversation à chaque nouveau mot serait absurde. Et on a vu qu'il n'a pas à le faire, puisque ces représentations ne bougent plus une fois calculées.
Il les garde donc en mémoire.
Les clés et les valeurs de tous les tokens déjà vus, conservées pour ne pas les recalculer.
Cette réserve grandit avec la longueur de la conversation et doit rester dans la mémoire rapide de l'accélérateur pendant toute la génération. Sur un modèle de 70 milliards de paramètres, une seule requête d'un million de tokens demande environ 328 Go, contre 140 Go pour le modèle entier.
Ce partage du bureau est le premier facteur de consommation de toute la chaîne. Un accélérateur qui traite trente-deux conversations à la fois lit les poids du modèle une fois pour trente-deux réponses. Le même accélérateur qui n'en traite qu'une seule les lit pour une seule réponse. L'énergie par token varie d'un facteur 17 à 25 entre les deux situations.
Ce levier appartient au fournisseur, presque jamais au client. Il explique pourquoi héberger soi-même un modèle à faible volume consomme plus qu'appeler une API mutualisée.
Question
Vous écrivez un prompt de 2 000 mots et le modèle répond en 100 mots. Où est passée l'essentiel de l'énergie ?
Choisissez une réponse pour voir l'explication.
Ce qu'il faut retenir avant la suite
Le découpage en tokens fixe l'unité de compte, et il pénalise les langues mal servies. Chaque token devient un vecteur figé, que l'attention déplace ensuite selon son contexte. Le gros des paramètres dort dans les couches qui suivent, et les architectures à experts n'en réveillent qu'une fraction.
Cette pile est parcourue en parallèle pour lire, une position à la fois pour écrire, dans un rapport de 35. Et la mémoire de travail du décodage décide du nombre de conversations qu'un accélérateur mène de front, donc de l'énergie de chacune.
Tout le reste du cours consiste à mettre des chiffres sourcés sur ces six mécanismes, puis à en tirer un facteur d'émission défendable.
La suite logique : pourquoi compter en tokens plutôt qu'en requêtes.
FAQ
Comment fonctionne un LLM, étape par étape ?
Votre texte est d'abord découpé en tokens, des fragments de mots issus d'un dictionnaire fixe. Chaque token est remplacé par un vecteur, une liste de plusieurs milliers de nombres qui le situe dans un espace de sens, à laquelle on ajoute sa position. Le mécanisme d'attention déplace ensuite ce vecteur selon les mots qui l'entourent. Les couches suivantes, où dorment les deux tiers des paramètres, transforment chaque vecteur. Cette pile est parcourue une première fois pour lire tout le prompt en parallèle, puis une fois par token produit pour écrire la réponse.
Qu'est-ce que le mécanisme d'attention dans un modèle de langage ?
Le mécanisme qui permet à chaque mot d'ajuster son sens en fonction des autres. Chaque token émet une requête, ce qu'il cherche, et une clé, ce qu'il propose. Le modèle compare toutes les requêtes à toutes les clés, en tire des poids, et chaque token récupère une moyenne pondérée de ce que ses voisins transmettent. Le mot « avocat » entre avec le même vecteur dans « l'avocat a plaidé » et « l'avocat était mûr » : c'est l'attention qui le fait basculer vers le juriste ou vers le fruit.
Pourquoi dit-on que l'attention est quadratique ?
Parce que chaque token se compare à tous les autres. Cent tokens produisent dix mille comparaisons, deux cents en produisent quarante mille. Doubler la longueur du texte quadruple donc le nombre de scores à calculer. En pratique ce terme reste minoritaire longtemps : sur un modèle de classe 70 milliards de paramètres, il ne devient dominant qu'au-delà de 100 000 tokens, parce que les couches qui suivent l'attention, elles, ne croissent que linéairement.
Qu'est-ce qu'un embedding et pourquoi le modèle en a-t-il besoin ?
Un numéro de ligne dans un dictionnaire ne porte aucun sens exploitable par un calcul. L'embedding remplace ce numéro par une liste de plusieurs milliers de nombres, apprise à l'entraînement, qui place les fragments de sens proche à des positions proches. Sur un modèle de 70 milliards de paramètres, cette table pèse à elle seule plus d'un milliard de paramètres. Le vecteur d'entrée est figé : toute la désambiguïsation par le contexte se fait ensuite, dans l'attention.
Pourquoi écrire coûte-t-il plus cher que lire pour une IA ?
Parce que les deux phases n'ont pas le même régime physique. La lecture traite tous les tokens du prompt en parallèle et sature les unités de calcul. L'écriture est séquentielle : chaque token dépend du précédent, et le modèle doit relire tous ses poids depuis la mémoire pour en produire un seul. Le processeur passe alors l'essentiel de son temps à attendre la mémoire. Le rapport mesuré à lot unitaire est d'environ 35 pour 1 en énergie, contre 5 pour 1 en prix facturé.