Lexique · Concepts / définitions

Transformer : définition, mécanisme d'attention et architecture

L'architecture de réseau de neurones derrière GPT, BERT, Claude ou Llama : le mécanisme d'attention, l'encodeur et le décodeur, les grandes familles de modèles et un exemple de code avec Hugging Face.

Par Équipe Blent· Mis à jour le · 15 min de lecture· Niveau intermédiaire

Transformer en bref

Publication
« Attention Is All You Need », 2017
Auteurs
Vaswani et al., Google
Mécanisme central
Self-attention multi-têtes
Blocs
Encodeur, décodeur, ou les deux
Familles
BERT (encodeur), GPT (décodeur), T5 (les deux)
Tâche d'origine
Traduction automatique
Remplace
Les réseaux récurrents (RNN, LSTM)

Définition : Transformer

Le Transformer est une architecture de réseau de neurones présentée en 2017 par des chercheurs de Google dans l'article « Attention Is All You Need ». Elle traite tous les tokens d'une séquence en parallèle grâce au mécanisme d'attention, qui permet à chaque élément de pondérer l'importance de tous les autres pour construire sa représentation en contexte. Conçu à l'origine pour la traduction automatique, avec un encodeur et un décodeur, le Transformer a remplacé les réseaux récurrents en traitement du langage. Il est aujourd'hui la base des LLM comme GPT, Claude ou Llama, de modèles d'analyse comme BERT et de nombreux modèles de vision et d'audio.

En une phrase : le Transformer est l'architecture de réseau de neurones qui, grâce au mécanisme d'attention, permet à chaque mot de tenir compte de tous les autres et sert de socle à tous les LLM actuels.

Dans cette définition

Qu'est-ce qu'un Transformer ?

Le Transformer est une architecture de réseau de neurones conçue pour traiter des séquences : phrases, lignes de code, signaux audio ou suites de patchs d'image. Son idée centrale tient en une phrase : pour comprendre un élément, il faut regarder tous les autres et décider lesquels comptent. Ce mécanisme, l'attention, remplace la lecture mot à mot des architectures précédentes par une vue d'ensemble de la séquence, calculée en parallèle.

L'architecture a été présentée en 2017 dans l'article « Attention Is All You Need », signé par Ashish Vaswani et sept coauteurs, chercheurs de Google pour la plupart. Elle visait la traduction automatique et se composait d'un encodeur, qui lit la phrase source, et d'un décodeur, qui génère la traduction. Ses résultats, et surtout sa capacité à s'entraîner beaucoup plus vite que les réseaux récurrents sur GPU, l'ont rapidement imposée. Dès 2018, Google publie BERT et OpenAI publie GPT, deux modèles qui n'en conservent chacun qu'une moitié.

Le Transformer est l'architecture des LLM et, plus largement, de la plupart des modèles de fondation. Il intervient après la tokenisation : le modèle ne voit jamais du texte brut, mais une suite d'identifiants de tokens qu'il transforme en vecteurs.

À retenir : le Transformer est un plan de construction, pas un modèle. GPT, BERT, Llama ou Whisper sont des modèles différents, entraînés sur des données différentes, mais bâtis sur cette même architecture.

Comment fonctionne un Transformer ?

Qu'il s'agisse de BERT ou d'un LLM, le traitement d'une séquence suit le même enchaînement : le texte devient une suite de vecteurs, que des couches identiques empilées enrichissent progressivement du contexte de toute la phrase.

  1. Découper et vectoriser

    Le texte est découpé en tokens, puis chaque token est converti en vecteur par une table d'embeddings apprise. Une phrase devient une matrice : un vecteur de plusieurs centaines ou milliers de dimensions par token.

  2. Ajouter l'information de position

    L'attention ne tient pas compte de l'ordre des tokens. On injecte donc leur position, par des encodages sinusoïdaux dans l'article original, ou par des méthodes plus récentes comme les embeddings rotatifs (RoPE).

  3. Calculer l'attention multi-têtes

    Chaque token compare sa requête aux clés de tous les autres pour décider à quoi prêter attention, puis agrège leurs valeurs. Plusieurs têtes travaillent en parallèle et captent des relations différentes : syntaxe, coréférence, proximité de sens.

  4. Transformer chaque position

    Un petit réseau feed-forward traite ensuite chaque token séparément. Des connexions résiduelles et une normalisation entourent chaque sous-couche pour stabiliser l'entraînement de réseaux très profonds.

  5. Empiler les couches et produire la sortie

    Le bloc attention plus feed-forward est répété des dizaines de fois. En sortie, les vecteurs servent à classer un texte (encodeur) ou à prédire la probabilité de chaque token suivant (décodeur).

Le mécanisme d'attention en détail

Prenons la phrase « Le chat n'a pas mangé sa pâtée car il était malade ». Pour représenter correctement « il », le modèle doit le relier à « chat » et non à « pâtée ». La self-attention permet ce lien direct, quelle que soit la distance entre les mots.

Pour chaque token, le modèle calcule trois vecteurs par projection linéaire de son embedding :

  • une requête (query, Q) : ce que le token cherche ;
  • une clé (key, K) : ce que le token offre aux autres ;
  • une valeur (value, V) : l'information qu'il transmet s'il est sélectionné.

Le score entre deux tokens est le produit scalaire de la requête de l'un et de la clé de l'autre. Ces scores sont normalisés par une fonction softmax, puis servent à calculer une moyenne pondérée des valeurs :

text
Attention(Q, K, V) = softmax( Q · Kᵀ / √d_k ) · V

La division par la racine de la dimension des clés (d_k) évite que les scores deviennent trop grands et saturent la softmax. Le résultat est une nouvelle représentation de chaque token, enrichie du contexte qui lui est utile.

L'attention multi-têtes répète ce calcul plusieurs fois en parallèle, avec des projections différentes : l'article original utilise 8 têtes dans son modèle de base. Une tête peut suivre les accords grammaticaux, une autre les coréférences, une autre la proximité thématique. Leurs sorties sont concaténées puis projetées.

Dans un décodeur, un masque causal interdit à chaque token de regarder les tokens qui le suivent. C'est ce qui permet d'entraîner le modèle à prédire le token suivant sur toutes les positions d'un texte en une seule passe, puis de générer token par token à l'inférence.

Encodeur, décodeur : les trois familles de modèles

L'architecture originale associait un encodeur et un décodeur. Les modèles qui ont suivi ont souvent gardé une seule des deux parties, selon la tâche visée.

FamilleExemple fondateurAttentionObjectif d'entraînementUsages typiques
Encodeur seulBERT (Google, 2018)Bidirectionnelle : chaque token voit toute la phraseRetrouver des mots masquésClassification, extraction d'entités, embeddings pour la recherche
Décodeur seulGPT (OpenAI, 2018)Causale : chaque token ne voit que le passéPrédire le token suivantGénération de texte, LLM conversationnels, code
Encodeur-décodeurT5 (Google, 2019)Bidirectionnelle à l'encodage, causale au décodageTransformer un texte en un autre texteTraduction, résumé, transcription (Whisper)

Les LLM actuels sont dans leur immense majorité des décodeurs seuls : cette famille passe le mieux à l'échelle et une seule tâche, prédire la suite, suffit à couvrir la traduction, le résumé ou la classification par simple consigne. Les encodeurs restent très utilisés pour produire des embeddings, par exemple dans un RAG.

Exemple : explorer un Transformer avec Hugging Face

La bibliothèque transformers de Hugging Face charge un modèle pré-entraîné en une ligne et donne accès à ses représentations internes. Ce script montre deux propriétés clés de l'architecture : les représentations contextuelles et les matrices d'attention.

python
import torch
from transformers import AutoModel, AutoTokenizer

name = "google-bert/bert-base-uncased"  # encodeur : 12 couches, 12 têtes, vecteurs de 768
tokenizer = AutoTokenizer.from_pretrained(name)
model = AutoModel.from_pretrained(name, attn_implementation="eager")
model.eval()

def encode(sentence: str, word: str):
    inputs = tokenizer(sentence, return_tensors="pt")
    with torch.no_grad():
        outputs = model(**inputs, output_attentions=True)
    tokens = tokenizer.convert_ids_to_tokens(inputs["input_ids"][0])
    vector = outputs.last_hidden_state[0, tokens.index(word)]
    return vector, outputs

money, outputs = encode("I deposited cash at the bank.", "bank")
loan, _ = encode("The bank approved my loan.", "bank")
river, _ = encode("We had a picnic on the river bank.", "bank")

print(outputs.last_hidden_state.shape)  # (1, nombre de tokens, 768)
print(len(outputs.attentions))          # 12 matrices d'attention, une par couche
print(outputs.attentions[0].shape)      # (1, 12 têtes, nombre de tokens, nombre de tokens)

cos = torch.nn.functional.cosine_similarity
print("banque / banque :", cos(money, loan, dim=0).item())
print("banque / berge  :", cos(money, river, dim=0).item())

Le même mot « bank » reçoit un vecteur différent selon la phrase : les deux occurrences au sens financier sont en général nettement plus proches entre elles que de l'occurrence au sens de berge. C'est l'attention qui injecte ce contexte. Pour un décodeur, la logique est la même ; seule la tête de sortie change :

python
from transformers import pipeline

generator = pipeline("text-generation", model="openai-community/gpt2")
result = generator("The Transformer architecture", max_new_tokens=25)
print(result[0]["generated_text"])

Où retrouve-t-on l'architecture Transformer ?

Né pour la traduction, le Transformer s'est imposé dans presque tous les domaines où les données peuvent être vues comme une séquence.

  • Grands modèles de langage

    GPT, Claude, Gemini, Llama ou Mistral reposent tous sur des décodeurs Transformer.

  • Recherche sémantique

    Les modèles d'embedding de type encodeur alimentent la recherche vectorielle et les RAG.

  • Classification de textes

    Analyse de sentiment, détection d'intention, tri de documents avec des modèles de la famille BERT.

  • Traduction et résumé

    Les architectures encodeur-décodeur transforment une séquence d'entrée en séquence de sortie.

  • Vision par ordinateur

    Le Vision Transformer découpe une image en patchs traités comme des tokens.

  • Audio et parole

    Transcription automatique et synthèse vocale, à l'image de Whisper, un encodeur-décodeur.

Quels sont les avantages du Transformer ?

Le succès du Transformer tient autant à ses qualités de modélisation qu'à son adéquation avec le matériel moderne.

  • Traitement parallèle de toute la séquence, idéal pour les GPU et l'entraînement à grande échelle.
  • Relations directes entre tokens éloignés, sans perte d'information au fil de la séquence.
  • Performances qui progressent de façon régulière avec la taille du modèle et des données.
  • Architecture générique, applicable au texte, à l'image, à l'audio ou au code.
  • Représentations contextuelles : un même mot reçoit un vecteur différent selon la phrase.
  • Écosystème mature de modèles pré-entraînés et de bibliothèques optimisées.

Quelles sont les limites du Transformer ?

Ses points forts ont une contrepartie, surtout lorsque les séquences s'allongent ou que les ressources sont comptées.

  • Coût de l'attention quadratique avec la longueur de la séquence, en calcul comme en mémoire.
  • Génération séquentielle côté décodeur : un token à la fois, ce qui pèse sur la latence.
  • Cache des clés et valeurs volumineux pour les longs contextes, qui limite le nombre d'utilisateurs par GPU.
  • Besoins massifs en données et en calcul pour un pré-entraînement de qualité.
  • Fonctionnement interne difficile à interpréter, malgré les cartes d'attention.

Pourquoi le Transformer a remplacé les RNN

Avant 2017, le traitement du langage reposait sur les réseaux récurrents (RNN) et leurs variantes LSTM et GRU. Ils lisent la séquence un élément après l'autre et résument tout ce qui précède dans un état caché. Ce fonctionnement a deux défauts majeurs : il empêche de paralléliser le calcul sur la longueur de la séquence, et l'information des premiers mots s'estompe au fil de la lecture.

CritèreRNN / LSTMTransformer
Lecture de la séquenceSéquentielle, token par tokenParallèle, tous les tokens à la fois
Contexte lointainS'estompe avec la distanceLien direct entre deux tokens quelconques
Entraînement sur GPUPeu parallélisable, donc lentTrès parallélisable, donc rapide
Passage à l'échelleLimitéGains réguliers avec la taille et les données
Coût selon la longueurLinéaireQuadratique pour l'attention
Pré-entraînement réutilisableRareStandard (BERT, GPT, modèles de fondation)

Le seul point où le RNN garde l'avantage, le coût linéaire, explique les nombreuses optimisations apportées depuis au Transformer : noyaux d'attention optimisés comme FlashAttention, attention à fenêtre glissante, partage des clés et valeurs entre têtes, ou mélange d'experts (MoE) pour augmenter le nombre de paramètres sans augmenter le calcul par token. Notre dossier sur les Transformers en deep learning revient sur ces évolutions.

Quand choisir un modèle Transformer ?

En traitement du langage, la question ne se pose presque plus. Ailleurs, le choix dépend de la nature des données et des contraintes.

Pertinent si

Le Transformer s'impose

  • Les données sont du texte, du code ou de la parole.
  • Des modèles pré-entraînés existent pour votre domaine.
  • Le contexte lointain compte pour bien interpréter chaque élément.
  • Vous disposez de GPU pour l'inférence ou d'une API.
Moins adapté si

D'autres approches suffisent

  • Les données sont tabulaires : le gradient boosting reste souvent meilleur.
  • Le jeu de données est petit et aucun modèle pré-entraîné ne convient.
  • Le matériel embarqué impose un modèle minuscule et très rapide.
  • Une règle simple ou un modèle linéaire atteint déjà la qualité requise.

Bibliothèques et outils autour des Transformers

Peu d'équipes implémentent un Transformer de zéro : elles s'appuient sur des bibliothèques qui fournissent les architectures, les poids pré-entraînés et les optimisations.

Les concepts à connaître pour comprendre le Transformer

Ces notions forment le vocabulaire de base de l'architecture et de ses usages.

Ressources pour approfondir le Transformer

Trois articles pour comprendre l'architecture, ses fondations et ce qu'elle a remplacé.

Questions fréquentes

Questions fréquentes

Avant 2017, l'attention existait déjà, mais comme complément de réseaux récurrents. L'article montre qu'on peut se passer entièrement de récurrence et de convolution en ne gardant que des couches d'attention. Le titre résume cette rupture.

Expertise

À propos de l'auteur

Équipe Blent

Les ingénieurs et mentors Blent conçoivent, évaluent et mettent en production des applications LLM, et forment chaque année des centaines de professionnels à l'IA générative.

Sources et méthodologie

  • Vaswani et al., Attention Is All You Need, NeurIPS 2017
  • Devlin et al., BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, 2018
  • Radford et al., Improving Language Understanding by Generative Pre-Training, OpenAI, 2018
  • Raffel et al., Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (T5), 2019
  • Documentation de la bibliothèque transformers de Hugging Face