ChatPaper.aiChatPaper

Schnellere kausale Aufmerksamkeit über große Sequenzen durch spärliches Flash-Attention

Faster Causal Attention Over Large Sequences Through Sparse Flash Attention

June 1, 2023
Autoren: Matteo Pagliardini, Daniele Paliotta, Martin Jaggi, François Fleuret
cs.AI

Zusammenfassung

Transformer-basierte Sprachmodelle haben vielfältige Anwendungen gefunden, die die Verarbeitung von Sequenzen mit zunehmender Länge erfordern. Für diese Anwendungen wird die kausale Selbstaufmerksamkeit – die einzige Komponente, die quadratisch in Bezug auf die Sequenzlänge skaliert – zu einem zentralen Anliegen. Während viele Arbeiten Schemata vorgeschlagen haben, um die Aufmerksamkeitsmuster zu sparsifizieren und den Rechenaufwand der Selbstaufmerksamkeit zu reduzieren, sind diese oft durch Implementierungsprobleme eingeschränkt und führen letztendlich zu einer einfachen und statischen Struktur über der Aufmerksamkeitsmatrix. Im Gegensatz dazu führt die Implementierung dynamischerer sparser Aufmerksamkeiten oft zu Laufzeiten, die deutlich langsamer sind als die Berechnung der vollständigen Aufmerksamkeit mit der Flash-Implementierung von Dao et al. (2022). Wir erweitern FlashAttention, um eine große Klasse von Aufmerksamkeits-Sparsamkeitsmustern zu unterstützen, die insbesondere das Weglassen von Schlüssel-/Abfrage-Paaren und hashing-basierte Aufmerksamkeit umfassen. Dies führt zu Implementierungen ohne zusätzliche Rechenkomplexität und einer mehrfachen Beschleunigung der Laufzeit im Vergleich zu FlashAttention. Selbst bei relativ geringen Sparsamkeitsgraden verbessert unsere Methode sichtbar gegenüber FlashAttention, wenn die Sequenzlänge zunimmt. Ohne die Perplexität zu opfern, erhöhen wir die Trainingsgeschwindigkeit eines Transformer-Sprachmodells um das 2,0-fache bzw. 3,3-fache für Sequenzen von jeweils 8k und 16k Tokens.
English
Transformer-based language models have found many diverse applications requiring them to process sequences of increasing length. For these applications, the causal self-attention -- which is the only component scaling quadratically w.r.t. the sequence length -- becomes a central concern. While many works have proposed schemes to sparsify the attention patterns and reduce the computational overhead of self-attention, those are often limited by implementations concerns and end up imposing a simple and static structure over the attention matrix. Conversely, implementing more dynamic sparse attentions often results in runtimes significantly slower than computing the full attention using the Flash implementation from Dao et al. (2022). We extend FlashAttention to accommodate a large class of attention sparsity patterns that, in particular, encompass key/query dropping and hashing-based attention. This leads to implementations with no computational complexity overhead and a multi-fold runtime speedup on top of FlashAttention. Even with relatively low degrees of sparsity, our method improves visibly upon FlashAttention as the sequence length increases. Without sacrificing perplexity, we increase the training speed of a transformer language model by 2.0times and 3.3times for sequences of respectively 8k and 16k tokens.
PDF12December 15, 2024