P

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

Self-AttentionTransformerFenêtre de contexteMulti-Head AttentionFlash AttentionSliding Window Attention

FAQ

Quelle est la différence entre Sparse Attention et Full Attention ?
La Full Attention (attention dense) calcule les scores d'attention entre toutes les paires de tokens, avec un coût quadratique O(n²). La Sparse Attention ne calcule ces scores qu'entre un sous-ensemble de paires, selon des patterns prédéfinis ou appris, réduisant la complexité à O(n√n) ou O(n log n). La Full Attention est plus précise mais devient impraticable pour les longues séquences, tandis que la Sparse Attention sacrifie légèrement la précision pour un gain massif en efficacité.
La Sparse Attention dégrade-t-elle la qualité des réponses du modèle ?
En pratique, la perte de qualité est minimale et souvent imperceptible. Les patterns d'attention éparse sont conçus pour préserver les connexions les plus importantes (tokens proches et tokens globalement pertinents). Des études montrent que dans l'attention dense, la majorité des scores d'attention sont proches de zéro, ce qui signifie que la Sparse Attention élimine principalement des calculs qui n'apportaient pas d'information utile.
Quels modèles populaires utilisent la Sparse Attention ?
Plusieurs modèles majeurs utilisent des variantes de Sparse Attention : Mistral et Mixtral emploient la Sliding Window Attention, GPT-4 et Claude utilisent des optimisations d'attention pour gérer leurs larges fenêtres de contexte, Longformer et BigBird (Google) ont été des pionniers de l'approche, et le Sparse Transformer d'OpenAI a posé les bases théoriques en 2019. La tendance générale est d'intégrer ces techniques pour permettre des contextes toujours plus longs.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.