ChatPaper.aiChatPaper

Atención Causal Más Rápida en Secuencias Largas mediante Flash Attention Escaso

Faster Causal Attention Over Large Sequences Through Sparse Flash Attention

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

Resumen

Los modelos de lenguaje basados en Transformers han encontrado diversas aplicaciones que requieren procesar secuencias de longitud creciente. Para estas aplicaciones, la atención causal auto-referencial —que es el único componente que escala cuadráticamente respecto a la longitud de la secuencia— se convierte en un aspecto central de preocupación. Aunque muchos trabajos han propuesto esquemas para esparcir los patrones de atención y reducir la sobrecarga computacional de la atención auto-referencial, estos suelen estar limitados por problemas de implementación y terminan imponiendo una estructura simple y estática sobre la matriz de atención. Por el contrario, implementar atenciones dispersas más dinámicas a menudo resulta en tiempos de ejecución significativamente más lentos que calcular la atención completa utilizando la implementación Flash de Dao et al. (2022). Extendemos FlashAttention para acomodar una amplia clase de patrones de atención dispersa que, en particular, incluyen el descarte de claves/consultas y la atención basada en hashing. Esto conduce a implementaciones sin sobrecarga de complejidad computacional y a una aceleración múltiple en el tiempo de ejecución sobre FlashAttention. Incluso con grados relativamente bajos de dispersión, nuestro método mejora visiblemente sobre FlashAttention a medida que aumenta la longitud de la secuencia. Sin sacrificar la perplejidad, aumentamos la velocidad de entrenamiento de un modelo de lenguaje Transformer en 2.0 veces y 3.3 veces para secuencias de 8k y 16k tokens, respectivamente.
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