P

Sliding Window Attention : Définition et Exemples

Mécanisme d'attention qui limite le calcul à une fenêtre locale de tokens adjacents, réduisant la complexité computationnelle tout en préservant la capacité du modèle à traiter de longues séquences.

Définition complète

Le Sliding Window Attention (attention à fenêtre glissante) est une variante optimisée du mécanisme d'attention des Transformers. Contrairement à l'attention classique (full attention) où chaque token interagit avec tous les autres tokens de la séquence, le Sliding Window Attention restreint le champ d'attention de chaque token à une fenêtre fixe de voisins immédiats. Par exemple, avec une fenêtre de taille 4096, chaque token ne "regarde" que les 4096 tokens précédents.

Cette approche résout un problème fondamental des Transformers : la complexité quadratique de l'attention classique. Lorsqu'un modèle doit traiter une séquence de 100 000 tokens, calculer l'attention entre toutes les paires de tokens devient extrêmement coûteux en mémoire et en calcul. Le Sliding Window Attention ramène cette complexité à un coût linéaire par rapport à la longueur de la séquence, rendant possible le traitement de contextes très longs.

Un aspect subtil mais essentiel est l'effet de propagation à travers les couches. Même si chaque couche ne voit qu'une fenêtre locale, l'empilement de plusieurs couches permet à l'information de se propager sur des distances beaucoup plus grandes. Avec L couches et une fenêtre de taille W, l'information peut théoriquement traverser L × W tokens, offrant ainsi une portée effective bien supérieure à la taille de la fenêtre individuelle.

Ce mécanisme a été popularisé par des modèles comme Mistral 7B et Mixtral, et constitue un composant clé de l'architecture Longformer. Il est souvent combiné avec d'autres techniques comme l'attention globale sur certains tokens spéciaux ou le GQA (Grouped Query Attention) pour obtenir un équilibre optimal entre performance et efficacité.

Étymologie

Le terme combine "sliding window" (fenêtre glissante), concept emprunté au traitement du signal et aux réseaux informatiques où une fenêtre de taille fixe se déplace séquentiellement sur des données, et "attention", le mécanisme central des architectures Transformer introduit dans le papier "Attention Is All You Need" (2017).

Exemples concrets

Traitement de documents longs

Tu es un assistant qui analyse des documents juridiques de plus de 50 pages. Grâce au sliding window attention, tu peux traiter l'intégralité du document. Résume les clauses principales du contrat suivant en identifiant les obligations de chaque partie.

Choix de modèle pour une application

Je dois choisir un LLM pour une application de résumé de livres entiers. Compare les approches des modèles utilisant le sliding window attention (comme Mistral) versus l'attention complète pour mon cas d'usage, en termes de qualité et de coût.

Optimisation de l'inférence

Explique-moi comment configurer la taille de la fenêtre d'attention glissante dans un modèle Mistral pour optimiser le rapport qualité/vitesse lors du traitement de conversations longues avec historique de 30 000 tokens.

Usage pratique

En prompt engineering, comprendre le sliding window attention aide à structurer ses prompts pour les modèles qui l'utilisent : les informations les plus critiques doivent être placées à proximité de la question ou de l'instruction finale, car l'attention locale y est la plus forte. Pour les tâches sur de très longs documents, il est préférable de découper le contenu en sections cohérentes plutôt que de compter sur la propagation inter-couches pour relier des informations très éloignées.

Concepts liés

Self-AttentionContext WindowSparse AttentionKV Cache

FAQ

Le sliding window attention perd-il de l'information par rapport à l'attention complète ?
En théorie, oui — chaque couche individuelle ne voit qu'un contexte local. En pratique, l'empilement des couches permet à l'information de se propager sur de longues distances, et les benchmarks montrent que les modèles utilisant cette technique (comme Mistral 7B) atteignent des performances comparables voire supérieures à des modèles avec attention complète, tout en étant significativement plus rapides.
Quelle est la différence entre sliding window attention et sparse attention ?
Le sliding window attention est une forme spécifique de sparse attention (attention clairsemée). La sparse attention est un terme générique désignant toute technique qui réduit le nombre de paires de tokens calculées. Le sliding window est le pattern local le plus simple : chaque token n'attend que ses W voisins les plus proches. D'autres patterns sparse incluent l'attention dilatée, l'attention aléatoire, ou des combinaisons de patterns locaux et globaux comme dans Longformer ou BigBird.
Comment la taille de la fenêtre affecte-t-elle les performances du modèle ?
Une fenêtre plus grande permet au modèle de capturer des dépendances plus longues à chaque couche, améliorant la compréhension contextuelle, mais augmente la consommation mémoire et le temps de calcul. Une fenêtre trop petite peut dégrader la qualité sur des tâches nécessitant de relier des informations distantes. Les valeurs typiques vont de 4096 (Mistral 7B) à 32768 tokens, choisies comme compromis entre qualité et efficacité.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.