In plain words: Attention makes every word in a sequence compare with every earlier one, which gets slow fast. This work lets the standard fast attention routine skip comparisons, including flexible changing patterns, and trains 3.3 times faster on 16,000-token sequences with no loss in prediction quality.
Abstract · Faster Causal Attention Over Large Sequences Through Sparse Flash Attention
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.0\times$ and $3.3\times$ for sequences of respectively $8k$ and $16k$ tokens.
Matteo Pagliardini, Daniele Paliotta, Martin Jaggi, François Fleuret
arXiv:2306.01160 · cs.LG, cs.AI, cs.CL · submitted Jun 1, 2023
abstract · pdf · html