Mécanismes d’Attention (Deep Dive)
L’attention est probablement l’innovation la plus importante en deep learning depuis la backpropagation. L’idée est élégante : plutôt que de compresser toute une phrase dans un vecteur fixe (le goulot d’étranglement des RNN), le décodeur regarde directement les mots de l’entrée qui sont pertinents pour générer le mot suivant.
Bahdanau (2014) introduit l’attention additive pour la traduction. Luong (2015) simplifie avec un produit scalaire. Mais c’est le self-attention du Transformer (2017) qui change tout : chaque mot d’une phrase regarde tous les autres mots — pas seulement ceux de l’entrée. La complexité est , mais le calcul est entièrement parallélisable sur GPU.
Le vrai problème n’est pas la complexité théorique — c’est l’accès mémoire. La matrice de taille doit être écrite en VRAM puis relue, saturant la bande passante mémoire bien avant la puissance de calcul. FlashAttention (2022) résout ce goulot en utilisant le tiling — découper la matrice en blocs calculables entièrement dans la SRAM (ultra-rapide) du GPU sans jamais matérialiser la matrice complète en HBM (VRAM lente). Le résultat : 2-4× plus rapide, mémoire divisée par 10, et la possibilité de fenêtres de contexte à 128k tokens.
FlashAttention-2 (2023) affine le parallélisme, FlashAttention-3 (2024) exploite le FP8 asynchrone du H100. Ring Attention distribue le calcul sur plusieurs GPUs pour des contextes quasi-illimités.
| Mécanisme | Année | Concept | Complexité |
|---|---|---|---|
| Bahdanau Attention | 2014 | — alignement additif | |
| Luong Attention | 2015 | — dot product, plus simple que Bahdanau | |
| Self-Attention | 2017 | ||
| Multi-Head Attention | 2017 | têtes en parallèle, concaténées + projetées | |
| Relative Position Bias | 2018 | T5 bias, ajouté au score d’attention | |
| Linformer | 2020 | Projection de en basse dimension | |
| Performer (FAVOR+) | 2020 | Kernel approximation de softmax | |
| FlashAttention | 2022 | Tiling GPU, pas de matériel en VRAM | IO-aware |
| FlashAttention-2 | 2023 | Réduction des non-multiplications (softmax) | 2× plus rapide |
| FlashAttention-3 | 2024 | FP8, asynchrone, adapté H100 | 1.5-2× vs FA2 |
| Ring Attention | 2023 | Distribué sur plusieurs GPUs, | |
| MQA (Multi-Query) | 2019 | Têtes partagent les clés/valeurs — mémoire réduite | |
| GQA (Grouped Query) | 2023 | Compromis MHA/MQA — utilisé dans Llama 2/3 | |
| Sliding Window | 2023 | Attention locale (Mistral) — contexte linéaire | |
| Strided + Global | 2024 | Attention hybride (MosaicML, LongNet) |
Impact FlashAttention : A permis d’augmenter les fenêtres de contexte de 2k (GPT-3) à 128k (GPT-4/5), puis 2M (GPT-5.5 Pro/Gemini 3 Ultra) sans changer l’architecture, juste en optimisant les accès mémoire GPU.
← Fonctions de Loss • 32 • Positional Encodings →