Aller au contenu
Architecture

Transformer (transformeur)

L'architecture de réseau de neurones sur laquelle tous les LLM sont bâtis : une pile de blocs identiques que le texte traverse de bout en bout.

7 min de lecture
  • #architecture
  • #réseau de neurones
  • #encodeur-décodeur

Le Transformer, « transformeur » en français, est l’architecture de réseau de neurones sur laquelle tous les LLM sont bâtis : une pile de couches identiques que le texte traverse, où les mots s’échangent de l’information avant que chacun retravaille la sienne.

Imagine un couloir d’ateliers identiques. Chaque mot du texte y entre avec sa feuille et les traverse tous, dans l’ordre.

Dans chaque atelier, deux postes. Au premier, les feuilles circulent : chaque mot lit celles des autres et retient ce qui le concerne. Au second, plus personne ne se parle, chacun relit sa feuille seul et complète ses notes.

Rien n’est jamais gommé, on écrit toujours dans la marge. Après trente ou cent ateliers, la feuille du dernier mot est assez chargée pour qu’un guichet de sortie y lise le mot suivant.

En 2017, une équipe de Google publie « Attention Is All You Need » : pour traiter du langage, plus besoin de récurrence ni de convolution. Le modèle décrit n’a rien d’un géant — 65 millions de paramètres, douze heures d’entraînement sur huit GPU — et il ne fait pas la conversation, il traduit. Il aligne deux piles de six couches : un encodeur qui lit la phrase de départ, un décodeur qui écrit la traduction en le consultant.

Sa vraie nouveauté est ailleurs. Sans récurrence, plus besoin de finir un mot avant d’attaquer le suivant : toute la phrase passe d’un coup, en un gros calcul matriciel, exactement ce qu’un GPU sait faire vite. L’architecture n’était pas seulement meilleure, elle était agrandissable. Trois familles en sont sorties.

  • Encodeur seul. BERT (Google, 2018) ne génère rien : il lit dans les deux sens et produit des représentations, bonnes à classer, chercher ou extraire.
  • Décodeur seul. GPT, puis Llama, Mistral, Claude, Gemini. Une seule pile, un seul objectif : prédire le token suivant — un objectif qui s’est révélé couvrir aussi la traduction, le résumé et la classification.
  • Encodeur-décodeur. La forme d’origine, encore utilisée quand l’entrée et la sortie diffèrent de nature : Whisper (OpenAI, 2022) lit du son et écrit du texte.

Un bloc enchaîne deux sous-couches. La première est l’attention : les tokens s’y regardent et se transmettent de l’information. La seconde ne fait circuler personne : un petit réseau à propagation avant (feed-forward), appliqué séparément et à l’identique à chaque token, où son vecteur est élargi, passé dans une fonction d’activation, puis ramené à sa taille. 512 → 2 048 → 512 en 2017 ; 4 096 → 14 336 → 4 096 sur Llama 3 8B.

C’est là que vit l’essentiel des paramètres : sur ce même Llama 3 8B, 5,6 des 8 milliards du modèle, contre 1,3 pour l’attention. L’attention transporte l’information, cette moitié-ci la retient.

Aucune des deux sous-couches ne remplace son entrée : elle y ajoute son résultat. Cette connexion résiduelle, empruntée à la reconnaissance d’images (He et al., 2015), rend une pile profonde entraînable. Elle a un autre effet : chaque token n’a qu’un seul vecteur, du premier embedding jusqu’à la sortie, dans lequel chaque sous-couche vient lire puis ajouter. C’est le flux résiduel, un bus partagé plutôt qu’une chaîne : n’importe quel bloc y dépose ce qu’un bloc bien plus loin ira relire.

Reste à empêcher les valeurs de dériver au fil des additions : c’est le rôle de la normalisation de couche. Le papier de 2017 la place après l’addition (post-norm), un montage instable en profondeur ; Xiong et al. ont montré en 2020 pourquoi, et depuis tout le monde la met avant les sous-couches (pre-norm), dans sa version allégée, la RMSNorm.

Rien dans le calcul de l’attention ne dit quel token arrive avant l’autre : sans repère ajouté, le modèle ne ferait aucune différence entre « le chien mord l’homme » et « l’homme mord le chien ».

En 2017, la position est ajoutée à l’embedding sous forme d’un motif de sinus et de cosinus. Les modèles actuels utilisent presque tous RoPE (Su et al., 2021) : au lieu d’ajouter, on fait tourner les vecteurs de requête et de clé d’un angle proportionnel à la position, si bien que le score entre deux tokens ne dépend plus que de l’écart qui les sépare.

Le bloc est ensuite recopié tel quel : GPT-3 en aligne 96, Llama 3 8B 32, Llama 3.1 405B 126.

La profondeur n’est pas décorative, car un bloc ne peut travailler que sur ce que les précédents ont écrit. L’exemple le plus net est le circuit d’induction, qui recopie un motif déjà vu : une tête marque chaque token de son prédécesseur, une seconde s’en sert pour retrouver ce qui suivait la fois d’avant. Deux têtes en série, dans deux couches distinctes — un modèle à une seule couche en est incapable (Olsson et al., 2022). Empiler, c’est acheter de la composition.

Au bout de la pile, une ultime normalisation, puis une matrice aussi large que le vocabulaire convertit le vecteur en un score par token possible : les logits. Un softmax en fait des probabilités, et la suite — choisir, écrire, recommencer — appartient à l’inférence. Sur Llama 3 8B, cette seule porte de sortie fait 128 256 lignes de 4 096 nombres, un demi-milliard de valeurs.

Six blocs au lieu de trente-deux, cinq tokens au lieu de la phrase entière : la pile est réduite pour tenir dans l’image, le mécanisme est le même. Ouvre un bloc à l’étape 4, puis regarde les fils verticaux de l’étape 6 — c’est le même vecteur, du premier embedding jusqu’au pari final.

Que traverse un token, de l'entrée à la prédiction ?

Ce qui entre

  • Le
  • ␣chat
  • ␣dort
  • ␣sur
  • ␣le

Étape 1/7 Cinq tokens entrent — le début de la phrase, découpé comme dans l'animation Token. Chacun devient une liste de nombres, son embedding : c'est cette liste qui va traverser toute la machine.

Pile réduite et chiffres illustratifs, choisis pour rendre l'architecture lisible.

  • Tous les assistants grand public sont des décodeurs seuls, et leur fiche technique — « 32 couches, dimension 4 096, 8 têtes de clés » — se lit maintenant sans dictionnaire.
  • Les encodeurs n’ont pas disparu, ils sont devenus invisibles. Google a mis BERT dans son moteur de recherche en octobre 2019, sur une requête sur dix en anglais américain ; un an plus tard, sur presque toutes les requêtes en anglais.
  • Le même bloc sert au-delà du texte : le Vision Transformer (2020) traite une image comme une suite de carrés de 16 pixels de côté.
  • Sa domination n’est pas que théorique : puces, bibliothèques et compilateurs sont réglés pour ce bloc précis, au point que NVIDIA a baptisé « Transformer Engine » un morceau de ses GPU. Une architecture concurrente comme Mamba doit donc être nettement meilleure pour rattraper ce retard d’outillage — la « loterie du matériel » décrite par Sara Hooker en 2020.
  • « Le Transformer a été inventé pour faire des chatbots. » Il a été conçu pour la traduction : le papier de 2017 n’évalue rien d’autre que de la traduction et de l’analyse syntaxique. Les assistants sont arrivés cinq ans plus tard, sur une variante — le décodeur seul — que le papier ne mettait pas en avant.
  • « L’architecture n’a pas bougé depuis 2017. » Le squelette, en effet : mêmes blocs, mêmes deux sous-couches, même flux résiduel. Les organes, eux, ont presque tous changé : la normalisation est passée devant, la LayerNorm a cédé à la RMSNorm, le ReLU au SwiGLU, les sinus à RoPE, et les têtes se partagent désormais leurs clés.
  • « Plus il y a de couches, plus le modèle est intelligent. » La profondeur n’est qu’un curseur parmi d’autres, avec la largeur des vecteurs et la quantité de données. Llama 3 8B et ses 32 couches (2024) devancent nettement GPT-3 et ses 96 (2020).

Voir aussi