Sparse Attention : Définition et Exemples
La Sparse Attention est un mécanisme d'attention qui ne calcule les relations qu'entre un sous-ensemble de tokens, plutôt qu'entre toutes les paires possibles, réduisant ainsi considérablement le coût computationnel des modèles de langage.
Définition complète
La Sparse Attention (attention éparse) est une optimisation du mécanisme d'attention standard utilisé dans les architectures Transformer. Dans l'attention classique (dite "dense" ou "full attention"), chaque token d'une séquence calcule un score d'attention avec tous les autres tokens, ce qui entraîne une complexité quadratique O(n²) par rapport à la longueur de la séquence. La Sparse Attention résout ce problème en ne calculant l'attention que sur un sous-ensemble soigneusement sélectionné de paires de tokens.
Plusieurs stratégies existent pour déterminer quels tokens doivent "s'observer" mutuellement. Les patterns les plus courants incluent l'attention locale (chaque token ne regarde que ses voisins proches), l'attention par blocs fixes, l'attention diluée (dilated attention, où l'on saute des tokens à intervalles réguliers) et les approches hybrides combinant attention locale et globale. Le modèle Longformer, par exemple, utilise une combinaison d'attention locale glissante et d'attention globale sur certains tokens clés.
L'intérêt principal de la Sparse Attention est de permettre aux modèles de traiter des séquences beaucoup plus longues. Là où l'attention dense devient prohibitive au-delà de quelques milliers de tokens, la Sparse Attention peut gérer des contextes de dizaines, voire de centaines de milliers de tokens, avec une complexité réduite à O(n√n) ou même O(n log n) selon l'implémentation.
Cette technique a été popularisée par des travaux comme Sparse Transformer (OpenAI, 2019), Longformer, BigBird et plus récemment dans des architectures comme Mistral qui utilisent la Sliding Window Attention. Elle est devenue un composant essentiel pour construire des modèles capables de traiter des documents longs, des bases de code entières ou de longues conversations.
Étymologie
Le terme combine "sparse" (éparse, clairsemée en anglais), issu du latin "sparsus" (dispersé), et "attention", le mécanisme central des Transformers introduit dans l'article "Attention Is All You Need" (2017). L'expression désigne donc littéralement une attention qui n'est pas appliquée partout mais de manière sélective et dispersée.
Exemples concrets
Traitement de documents longs
Tu es un assistant qui analyse des contrats juridiques de 100 pages. Grâce à ta fenêtre de contexte étendue rendue possible par la Sparse Attention, identifie toutes les clauses de résiliation dans ce document et résume-les.
Analyse de code source complet
Voici l'intégralité du code source de mon application (50 000 tokens). Analyse l'architecture globale et identifie les dépendances circulaires entre modules.
Conversation longue avec maintien du contexte
Nous avons discuté de nombreux sujets au cours de cette conversation. Rappelle-moi les trois décisions principales que nous avons prises concernant l'architecture du projet, même si elles remontent au début de notre échange.
Usage pratique
En prompt engineering, comprendre la Sparse Attention permet d'exploiter efficacement les modèles à contexte long. Lorsque vous travaillez avec un modèle utilisant cette technique, vous pouvez fournir des documents entiers plutôt que des extraits, tout en sachant que les informations en début et fin de contexte sont généralement mieux captées que celles au milieu. Structurez vos prompts longs avec des marqueurs clairs (titres, sections numérotées) pour aider le mécanisme d'attention éparse à localiser les passages pertinents.
Concepts liés
FAQ
Quelle est la différence entre Sparse Attention et Full Attention ?
La Sparse Attention dégrade-t-elle la qualité des réponses du modèle ?
Quels modèles populaires utilisent la Sparse Attention ?
Voir aussi
Recevez de nouveaux prompts chaque semaine
Rejoignez notre newsletter.