ChatPaper.aiChatPaper

Быстрое причинное внимание в длинных последовательностях с использованием разреженного Flash Attention

Faster Causal Attention Over Large Sequences Through Sparse Flash Attention

June 1, 2023
Авторы: Matteo Pagliardini, Daniele Paliotta, Martin Jaggi, François Fleuret
cs.AI

Аннотация

Трансформерные языковые модели нашли множество разнообразных применений, требующих обработки последовательностей увеличивающейся длины. В таких задачах причинно-следственное самовнимание (causal self-attention) — единственный компонент, масштабирующийся квадратично относительно длины последовательности — становится ключевой проблемой. Хотя многие работы предлагали схемы для разрежения паттернов внимания и снижения вычислительных затрат на самовнимание, они часто ограничиваются проблемами реализации и в итоге накладывают простую и статичную структуру на матрицу внимания. С другой стороны, реализация более динамичного разреженного внимания часто приводит к значительно более медленному времени выполнения по сравнению с вычислением полного внимания с использованием реализации FlashAttention от Dao et al. (2022). Мы расширяем FlashAttention для поддержки широкого класса паттернов разреженного внимания, которые, в частности, включают отбрасывание ключей/запросов и внимание на основе хэширования. Это приводит к реализациям без увеличения вычислительной сложности и многократному ускорению времени выполнения поверх FlashAttention. Даже при относительно низкой степени разреженности наш метод заметно улучшает производительность FlashAttention с увеличением длины последовательности. Без ухудшения перплексии мы увеличиваем скорость обучения трансформерной языковой модели в 2.0 и 3.3 раза для последовательностей длиной 8k и 16k токенов соответственно.
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