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écanismeAnnéeConceptComplexité
Bahdanau Attention2014 — alignement additif
Luong Attention2015 — dot product, plus simple que Bahdanau
Self-Attention2017
Multi-Head Attention2017 têtes en parallèle, concaténées + projetées
Relative Position Bias2018T5 bias, ajouté au score d’attention
Linformer2020Projection de en basse dimension
Performer (FAVOR+)2020Kernel approximation de softmax
FlashAttention2022Tiling GPU, pas de matériel en VRAM IO-aware
FlashAttention-22023Réduction des non-multiplications (softmax)2× plus rapide
FlashAttention-32024FP8, asynchrone, adapté H1001.5-2× vs FA2
Ring Attention2023Distribué sur plusieurs GPUs,
MQA (Multi-Query)2019Têtes partagent les clés/valeurs — mémoire réduite
GQA (Grouped Query)2023Compromis MHA/MQA — utilisé dans Llama 2/3
Sliding Window2023Attention locale (Mistral) — contexte linéaire
Strided + Global2024Attention 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 Loss32Positional Encodings →