Garden of KnowledgeApplied Sciences › Computer Science › Software › Data Science › Machine Learning › DeepLearning
February 22, 2026

Transformers

Les Transformers sont une architecture de réseau de neurones introduite en 2017 dans l’article “Attention Is All You Need”. Ils ont révolutionné le traitement du langage naturel (NLP) et sont aujourd’hui la base des modèles les plus performants (GPT, BERT, Claude, LLaMA, etc.).

Pourquoi les Transformers ?§

Avant les Transformers, les modèles de séquences (RNN, LSTM) avaient deux problèmes majeurs :

  1. Traitement séquentiel : les tokens sont traités un par un, impossible de paralléliser
  2. Mémoire limitée : difficulté à capturer les dépendances à longue distance

Les Transformers résolvent ces deux problèmes grâce au mécanisme d’attention.

graph LR
    subgraph "RNN / LSTM"
        direction LR
        R1["Token 1"] --> R2["Token 2"] --> R3["Token 3"] --> R4["Token 4"]
    end

    subgraph "Transformer"
        direction LR
        T1["Token 1"] ~~~ T2["Token 2"] ~~~ T3["Token 3"] ~~~ T4["Token 4"]
        T1 <--> T2
        T1 <--> T3
        T1 <--> T4
        T2 <--> T3
        T2 <--> T4
        T3 <--> T4
    end

    style R4 fill:#F44336,color:#fff
    style T1 fill:#4CAF50,color:#fff
    style T2 fill:#4CAF50,color:#fff
    style T3 fill:#4CAF50,color:#fff
    style T4 fill:#4CAF50,color:#fff
RNN / LSTMTransformer
TraitementSéquentielParallèle
Dépendances longuesDifficileFacile (attention)
Vitesse d’entraînementLentRapide (GPU)
ScalabilitéLimitéeExcellente

Le mécanisme d’attention (Self-Attention)§

L’idée clé : pour comprendre un mot, le modèle regarde tous les autres mots de la phrase et décide lesquels sont importants.

Queries, Keys, Values (Q, K, V)§

Chaque token est projeté en trois vecteurs :

Formule de l’attention :

$$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V$$

graph TB
    INPUT["Entrée (tokens)"] --> Q["Projection Q<br/>(Query)"]
    INPUT --> K["Projection K<br/>(Key)"]
    INPUT --> V["Projection V<br/>(Value)"]

    Q --> MATMUL1["Q × Kᵀ"]
    K --> MATMUL1
    MATMUL1 --> SCALE["÷ √dₖ"]
    SCALE --> SOFT["Softmax"]
    SOFT --> MATMUL2["× V"]
    V --> MATMUL2
    MATMUL2 --> OUT["Sortie<br/>(représentation contextualisée)"]

    style INPUT fill:#2196F3,color:#fff
    style SOFT fill:#FF9800,color:#fff
    style OUT fill:#4CAF50,color:#fff

Multi-Head Attention§

Plutôt qu’une seule attention, on en fait plusieurs en parallèle (les “heads”), chacune capturant des relations différentes :

$$\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W^O$$

Architecture complète§

graph TB
    subgraph "Encodeur (x N)"
        direction TB
        IN_E["Embeddings<br/>+ Position"] --> MHA_E["Multi-Head<br/>Self-Attention"]
        MHA_E --> AN1["Add & Norm"]
        AN1 --> FFN_E["Feed-Forward<br/>Network"]
        FFN_E --> AN2["Add & Norm"]
    end

    subgraph "Décodeur (x N)"
        direction TB
        IN_D["Embeddings<br/>+ Position"] --> MMHA["Masked Multi-Head<br/>Self-Attention"]
        MMHA --> AN3["Add & Norm"]
        AN3 --> CROSS["Cross-Attention<br/>(attend à l'encodeur)"]
        CROSS --> AN4["Add & Norm"]
        AN4 --> FFN_D["Feed-Forward<br/>Network"]
        FFN_D --> AN5["Add & Norm"]
    end

    AN2 --> CROSS
    AN5 --> LINEAR["Linear + Softmax"]
    LINEAR --> OUTPUT["Prédiction<br/>du prochain token"]

    style IN_E fill:#2196F3,color:#fff
    style IN_D fill:#4CAF50,color:#fff
    style OUTPUT fill:#FF5722,color:#fff

Composants clés§

ComposantRôle
EmbeddingsConvertir les tokens en vecteurs numériques
Positional EncodingEncoder la position des tokens (le Transformer n’a pas de notion d’ordre)
Self-AttentionPermettre à chaque token de regarder tous les autres
Masked AttentionEmpêcher le décodeur de “tricher” en regardant les tokens futurs
Cross-AttentionLe décodeur regarde la sortie de l’encodeur
Feed-ForwardRéseau dense appliqué indépendamment à chaque position
Add & NormConnexion résiduelle + normalisation (stabilise l’entraînement)

Positional Encoding§

Les Transformers n’ayant pas de récurrence, il faut injecter l’information de position :

$$PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d}}\right)$$ $$PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d}}\right)$$

Les modèles modernes utilisent souvent des positional embeddings apprenables ou RoPE (Rotary Position Embedding).

Les trois familles de Transformers§

graph TB
    TRANS["Transformer"] --> ENC["Encoder-only<br/>(Compréhension)"]
    TRANS --> DEC["Decoder-only<br/>(Génération)"]
    TRANS --> ED["Encoder-Decoder<br/>(Séquence → Séquence)"]

    ENC --> BERT2["BERT"]
    ENC --> ROBERTA["RoBERTa"]

    DEC --> GPT2["GPT"]
    DEC --> LLAMA["LLaMA"]
    DEC --> CLAUDE["Claude"]

    ED --> T5["T5"]
    ED --> BART["BART"]

    style TRANS fill:#673AB7,color:#fff
    style ENC fill:#2196F3,color:#fff
    style DEC fill:#4CAF50,color:#fff
    style ED fill:#FF9800,color:#fff
FamillePrincipeTâches typiquesExemples
Encoder-onlyVoit toute la séquence en même temps (bidirectionnel)Classification, NER, recherche sémantiqueBERT, RoBERTa
Decoder-onlyGénère token par token (autorégressif)Génération de texte, chatbots, codeGPT-4, Claude, LLaMA
Encoder-DecoderEncode l’entrée, décode la sortieTraduction, résuméT5, BART

Les modèles marquants§

BERT (2018)§

GPT (2018 → GPT-4)§

LLaMA (2023)§

Scaling Laws§

Les Transformers suivent des lois d’échelle prévisibles :

La relation est logarithmique : doubler les performances nécessite ~10x plus de ressources.

Au-delà du NLP§

Les Transformers ne sont plus limités au texte :

DomaineApplicationModèle
VisionClassification d’imagesViT (Vision Transformer)
AudioTranscriptionWhisper
MultimodalTexte + ImageGPT-4V, LLaVA
ProtéinesPrédiction de structureAlphaFold 2
CodeGénération de codeCodex, StarCoder
MusiqueGénération musicaleMusicLM
—The Gardener