Attention Causale Plus Rapide sur de Longues Séquences grâce à l'Attention Flash Éparse
Faster Causal Attention Over Large Sequences Through Sparse Flash Attention
June 1, 2023
Auteurs: Matteo Pagliardini, Daniele Paliotta, Martin Jaggi, François Fleuret
cs.AI
Résumé
Les modèles de langage basés sur Transformer ont trouvé de nombreuses applications variées nécessitant de traiter des séquences de longueur croissante. Pour ces applications, l'auto-attention causale -- qui est le seul composant dont la complexité évolue de manière quadratique par rapport à la longueur de la séquence -- devient une préoccupation centrale. Bien que de nombreux travaux aient proposé des schémas pour sparsifier les motifs d'attention et réduire la surcharge computationnelle de l'auto-attention, ceux-ci sont souvent limités par des contraintes d'implémentation et finissent par imposer une structure simple et statique sur la matrice d'attention. À l'inverse, l'implémentation d'auto-attentions éparses plus dynamiques entraîne souvent des temps d'exécution significativement plus lents que le calcul de l'attention complète en utilisant l'implémentation Flash de Dao et al. (2022). Nous étendons FlashAttention pour accommoder une large classe de motifs de sparsité d'attention qui, en particulier, englobent l'abandon de clés/requêtes et l'attention basée sur le hachage. Cela conduit à des implémentations sans surcharge de complexité computationnelle et à une accélération du temps d'exécution par un facteur multiple par rapport à FlashAttention. Même avec des degrés de sparsité relativement faibles, notre méthode améliore visiblement FlashAttention à mesure que la longueur de la séquence augmente. Sans sacrifier la perplexité, nous augmentons la vitesse d'entraînement d'un modèle de langage Transformer par un facteur de 2,0 et 3,3 pour des séquences de respectivement 8k et 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.