Longformer
Longformer kombiniert Sliding-Window-Attention mit einigen globalen Tokens. Dadurch steigt der Rechenaufwand linear mit der Sequenzlänge, und das Modell kann Dokumente mit 4.096 Tokens verarbeiten.
Longformer ist ein Transformer für lange Dokumente, der die vollständige Selbstaufmerksamkeit durch gleitende Fensteraufmerksamkeit um jedes Token und globale Aufmerksamkeit auf einige wenige, für die jeweilige Aufgabe ausgewählte Tokens ersetzt. Dadurch steigt der Aufwand linear statt quadratisch mit der Eingabelänge. Iz Beltagy, Matthew Peters und Arman Cohan vom Allen Institute for AI stellten Longformer 2020 in der Arbeit Longformer: The Long-Document Transformer vor. Encoder wie BERT und RoBERTa lesen höchstens 512 Tokens. Längere Texte mussten daher in Abschnitte aufgeteilt werden, wodurch die Zusammenhänge zwischen den Abschnitten verloren gingen. Die veröffentlichten Longformer-Modelle lesen 4.096 Tokens in einem Durchlauf – ein Kontextfenster, das achtmal länger ist.
So funktioniert die Aufmerksamkeit bei Longformer#
Jede Schicht kombiniert lokale und globale Muster innerhalb eines Aufmerksamkeitsmechanismus:
- Aufmerksamkeit mit gleitendem Fenster: Jedes Token berücksichtigt ein festes Fenster benachbarter Tokens, in den veröffentlichten Modellen 256 auf jeder Seite.
- Gleitendes Fenster mit Dilatation: Lücken zwischen den berücksichtigten Positionen ermöglichen es einem Attention Head, bei gleichem Aufwand weiter zu sehen. Die Autoren verwendeten Dilatation bei einigen wenigen Heads in den oberen Schichten ihrer zeichenbasierten Sprachmodelle.
- Globale Aufmerksamkeit: Ausgewählte Tokens berücksichtigen jede Position, und jede Position berücksichtigt diese ausgewählten Tokens. Dafür werden separate Abbildungen für Query, Key und Value verwendet. Die Aufgabe bestimmt, welche Tokens ausgewählt werden: das Token
[CLS]für die Klassifizierung und die Fragetokens für die Fragebeantwortung.
Das Stapeln von Schichten vergrößert die Reichweite des Fensters, so wie gestapelte Faltungen das rezeptive Feld eines Faltungsneuronalen Netzes (CNN) vergrößern: l Schichten mit Fenstergröße w decken l × w Tokens ab. Jede Schicht berechnet ungefähr n × w Aufmerksamkeitswerte statt n × n. Ein Vergleich der Token-Paare in einer Longformer-Maske macht den Unterschied sichtbar:
import torch
window = 512 # Longformer-base: 256 tokens on each side of every token
for n in (1024, 2048, 4096):
pos = torch.arange(n)
# Sliding window: each token attends to neighbors within window / 2 positions
mask = (pos[:, None] - pos[None, :]).abs() <= window // 2
# Global attention on token 0 ([CLS]): it sees every token and every token sees it
mask[0, :] = True
mask[:, 0] = True
print(f"{n} tokens: full attention {n * n / 1e6:.1f}M scores, Longformer {mask.sum().item() / 1e6:.1f}M")Die Ausgabe zeigt 0,5M, 1,0M und 2,0M Longformer-Aufmerksamkeitswerte gegenüber 1,0M, 4,2M und 16,8M bei vollständiger Aufmerksamkeit: Mit jeder Verdoppelung der Eingabe verdoppelt sich der Aufwand für Longformers Aufmerksamkeit, während sich der Aufwand bei vollständiger Aufmerksamkeit vervierfacht. Tatsächliche Implementierungen berechnen nur das Band der Werte. Dadurch wird Speicher eingespart.
Training und Ergebnisse#
Longformer geht vom RoBERTa-Checkpoint aus. Die Forschenden kopierten dessen 512 gelernte Positionseinbettungen achtmal, um 4.096 Positionen abzudecken, und setzten das Vortraining eines maskierten Sprachmodells mit langen Dokumenten fort. Nach dem Feintuning übertraf das Modell RoBERTa bei Aufgaben mit langen Dokumenten durchgehend und erzielte damals Spitzenergebnisse bei den Fragebeantwortungs-Benchmarks WikiHop und TriviaQA. Das zeichenbasierte Sprachmodell erzielte außerdem neue Ergebnisse bei text8 und enwik8.
Longformer-Encoder-Decoder (LED) ergänzt einen Decoder für Textzusammenfassung und andere Aufgaben der Textgenerierung. Das wurde anhand von Zusammenfassungen vollständiger wissenschaftlicher Arbeiten von arXiv demonstriert. Hugging Face Transformers implementiert beide Modelle und übernimmt die globalen Tokens als global_attention_mask. Später kamen domänenspezifische Versionen hinzu, etwa Clinical-Longformer, das mit großen klinischen Textkorpora vortrainiert und anhand von zehn Aufgaben ausgewertet wurde, darunter Erkennung benannter Entitäten, Fragebeantwortung und Dokumentklassifizierung.
Longformer und verwandte Modelle#
- Transformer-XL: Liest einen langen Text abschnittsweise und lässt jeden Abschnitt die zwischengespeicherten verborgenen Zustände des vorherigen Abschnitts berücksichtigen. So wird der Kontext bei der Generierung von links nach rechts durch Rekurrenz erweitert.
- BigBird: Ein Google-Modell aus demselben Jahr, das zufällige Verbindungen für die Aufmerksamkeit zu Fenster- und globaler Aufmerksamkeit hinzufügt und ebenfalls 4.096 Tokens liest.
- Sparse Attention: Die übergeordnete Familie fester Aufmerksamkeitsmuster, zu der Longformer gehört.
- Flash Attention: Berechnet vollständige Aufmerksamkeit exakt in Kacheln des chipinternen Speichers. Dadurch steigt der Speicherbedarf linear mit der Länge, während die Anzahl der Werte quadratisch bleibt.
Lokale und globale Aufmerksamkeit in der Bildverarbeitung#
Hochauflösende Bilder stellen dasselbe Problem dar, da ein Vision Transformer (ViT) ein Bild in Tausende von Patch-Tokens umwandelt. Der Swin Transformer löst das mit verschobenen lokalen Fenstern. Meta's Segment Anything Model (SAM), das im Ultralytics-Paket ausgeführt wird, kombiniert blockweise Fenster- und globale Aufmerksamkeit für die Bildsegmentierung: Sein ViT-B-Bildencoder berücksichtigt in 8 seiner 12 Blöcke nicht überlappende Fenster von 14 × 14 innerhalb seines 64 × 64-Patchrasters und in den Blöcken 2, 5, 8 und 11 alle 4.096 Patches gleichzeitig.










