Sparse Attention
Sparse Attention ermöglicht es jedem Token, nur eine ausgewählte Teilmenge anderer Tokens zu berücksichtigen, etwa ein lokales Fenster, globale Tokens oder die Top-k-Auswahl. So sinken die Kosten bei langen Sequenzen.
Sparse Attention ist eine Familie von Aufmerksamkeitsmechanismen, bei denen jede Query nur eine ausgewählte Teilmenge der Keys statt jedes Keys in der Sequenz bewertet. Vollständige Self-Attention über N Tokens berechnet pro Kopf N² Werte. Eine Verdopplung der Dokumentlänge vervierfacht also die Kosten für Attention. Bei einem Muster, in dem jedes Token auf k andere Tokens achtet, betragen die Kosten dagegen N·k. Das Muster kann vorab festgelegt sein, etwa als lokales Fenster, oder anhand des Inhalts ausgewählt werden, beispielsweise als die am höchsten bewerteten Keys für jede Query. OpenAIs Sparse Transformer von 2019 verwendete Muster mit festen Schrittweiten und Kosten von O(N√N), um Sequenzen mit Zehntausenden Schritten zu modellieren. Aktuelle große Sprachmodelle (LLMs) nutzen Sparse-Layer, um Kontextfenster mit mehr als 100.000 Tokens zu verarbeiten.
Gängige Sparsity-Muster#
Feste Muster legen im Voraus fest, welche Paare bewertet werden. Bei Sliding-Window-Attention sieht jedes Token nur die vorherigen w Tokens: Mistral 7B verwendet ein Fenster mit 4.096 Tokens. OpenAIs Open-Weight-Modelle gpt-oss wechseln zwischen dichten Layern und Layern mit Fenstern von 128 Tokens – dieselbe Abfolge dichter und lokal gebänderter Layer wie bei GPT-3. Jeder Layer mit Fenster überträgt Informationen um weitere w Tokens nach vorn. Ein tief gestapeltes Netz verbindet daher weiterhin weit auseinanderliegende Tokens. Muster mit festen Schrittweiten beziehen jedes s-te vorhergehende Token ein, damit Informationen in einem einzelnen Layer auch über große Entfernungen springen. Globale Tokens achten auf jede Position und werden von jeder Position berücksichtigt: Longformer weist sie Aufgaben-Tokens wie einem Klassifikationstoken zu, BigBird fügt zusätzlich zufällige Verbindungen hinzu, und Attention Sinks sorgen dafür, dass die ersten Tokens für jede Query sichtbar bleiben und die Generierung im Streaming-Modus stabil bleibt.
Inhaltsbasierte Muster wählen die Paare anhand der Daten aus. DeepSeeks Native Sparse Attention (NSA, 2025) kombiniert komprimierte Zusammenfassungen von Key-Blöcken, eine Auswahl der relevantesten Blöcke und ein Sliding Window. Das gesamte Verfahren wird end-to-end trainiert. DeepSeek Sparse Attention in DeepSeek-V3.2 nutzt einen kleinen „Lightning Indexer“, der für jede Query jedes vorhergehende Token bewertet. Anschließend wird vollständige Attention nur über die 2.048 höchstbewerteten Tokens berechnet. Dadurch bleiben die Hauptkosten für Attention pro Query konstant, unabhängig davon, wie stark der Kontext wächst. Produktionsmodelle kombinieren diese Regeln häufig:
Ein Muster in Einsparungen verwandeln#
Eine Maske auf eine dichte Bewertungsmatrix anzuwenden, berechnet weiterhin jeden Wert. Beschleunigungen ergeben sich daher durch Kernel, die leere Kacheln der Matrix überspringen. Flash-Attention-Kernel unterstützen Sliding Windows direkt. FlexAttention von PyTorch kompiliert beliebige Maskenfunktionen zu einem block-sparse GPU-Kernel. Die Ausgabe create_block_mask zeigt, welche Blöcke ein solcher Kernel bei einem Fenster mit 1.024 Tokens und vier Sink-Tokens überspringt:
from torch.nn.attention.flex_attention import create_block_mask
seq_len, window, sinks = 8192, 1024, 4
def local_plus_sinks(b, h, q_idx, kv_idx):
"""Causal attention to the previous 1,024 tokens plus the first 4 tokens."""
causal = q_idx >= kv_idx
return causal & ((q_idx - kv_idx <= window) | (kv_idx < sinks))
# FlexAttention unterteilt die Maske in Blöcke von 128 x 128, damit die Kernel leere Blöcke überspringen können
block_mask = create_block_mask(local_plus_sinks, B=None, H=None, Q_LEN=seq_len, KV_LEN=seq_len, device="cpu")
print(block_mask)Die Ausgabe zeigt sparsity=85.47%: den Anteil der 128 × 128-Blöcke in der Bewertungsmatrix von 8,192 × 8,192, die kein zulässiges Paar enthalten. Außerdem stellt sie das Muster als diagonales Band für das Fenster und als linke Spalte für die Sink-Tokens dar. Wenn flex_attention unter torch.compile läuft, überspringt der Kernel diese Blöcke vollständig.
Sparse Attention und verwandte Begriffe#
- Flash-Attention: Ein IO-effizienter Kernel, der genaue Attention über alle Paare berechnet, indem er die Arbeit in Kacheln des schnellen On-Chip-Speichers aufteilt. Diese Kacheln sind zugleich die Einheiten, die block-sparse Kernel überspringen.
- Lineare Attention: Behält alle Paare bei, ersetzt aber Softmax durch eine Feature-Abbildung, sodass alle bisherigen Keys und Values in einen Zustand fester Größe komprimiert werden.
- Deformierbare Attention: Ein Mechanismus für die Bildverarbeitung, bei dem jede Query statt auf ein festes Muster auf einige Abtastpunkte an gelernten Offsets in einer Feature-Map achtet.
- Expertenmischung (MoE): Sparsity in den Parametern: Jedes Token aktiviert nur einige Expertennetze, während sein Attention-Muster dicht bleibt.
Anwendungen#
Sprachmodelle mit langem Kontext sind der wichtigste Anwendungsfall: Schichten mit sparsamer Aufmerksamkeitsberechnung begrenzen den Rechenaufwand, während Schichten mit fensterbasierter Aufmerksamkeit auch den KV-Cache begrenzen; so können Modelle lange Berichte zusammenfassen oder große Codebasen mit einer einzigen Anfrage durchsuchen. Um Promotorregionen vorherzusagen, wandte BigBird sein sparsames Aufmerksamkeitsmuster auf DNA-Sequenzen an, bei denen eine Eingabe aus Tausenden von Basenpaaren viel länger ist als ein typischer Satz. In der Computer Vision wächst die Anzahl der Tokens mit der Bildauflösung, daher beschränken Modelle die Aufmerksamkeit auf lokale Bereiche: Der Swin Transformer berechnet die Aufmerksamkeit innerhalb verschobener Fenster. YOLO12, ein auf Attention ausgerichteter Detektor von Forschenden an der University at Buffalo und der University of Chinese Academy of Sciences, der im Ultralytics-Paket läuft, nutzt Area Attention: Seine Stufe im Backbone mit einer Schrittweite von 16 teilt die 40 × 40 große Merkmalskarte eines 640 Pixel großen Bildes in vier horizontale Streifen mit jeweils 400 Tokens auf und berechnet die Aufmerksamkeit nur innerhalb jedes Streifens, sodass insgesamt nur ein Viertel der 2,56 Millionen Tokenpaare ausgewertet wird, die bei vollständiger Aufmerksamkeit über alle 1.600 Tokens anfallen würden.










