Expert • Les 8

Sparse attention: efficiënte transformers op schaal

De standaard self-attention in transformers heeft een rekencomplexiteit van O(n²) ten opzichte van de sequentielengte n. Voor lange contexten van 100k+ tokens wordt dit onbeheersbaar. Sparse attention-methoden reduceren deze complexiteit door niet elk token met elk ander token te laten interageren.

Flash Attention

Flash Attention is geen sparse methode maar een IO-geoptimaliseerde implementatie van standaard attention die de GPU-bandbreedte efficiënt benut door het attention-patroon te berekenen in tiles die in SRAM passen. Flash Attention 2 en 3 zijn de defacto standaard voor efficiënte attention in moderne frameworks. Ze zijn exact (niet approximate) maar significant sneller door betere geheugentoegang.

Sliding window attention

Sliding window attention laat elk token alleen interageren met de w dichtstbijzijnde tokens in plaats van alle tokens. Dit geeft O(n*w) complexiteit. Mistral gebruikt sliding window attention gecombineerd met rolling buffer KV-cache. Het nadeel is dat informatie over lange afstanden minder direct wordt doorgegeven.

Grouped Query Attention (GQA)

GQA reduceert de KV-cache grootte door meerdere query heads te laten delen van dezelfde sleutel- en waarde-projecties. Llama 3 en Mistral gebruiken GQA: in plaats van n_heads K en V matrices zijn er slechts n_kv_groups, typisch 4 tot 8. Dit verlaagt het geheugenverbruik tijdens inference significant zonder grote kwaliteitsimpact.

Linear attention en alternatieven

Linear attention-methoden zoals Performer en RWKV benaderen of vervangen de softmax-attention door een lineaire kernelfunctie, waarmee O(n) complexiteit haalbaar is. Deze benaderingen zijn veelbelovend maar presteren in de praktijk nog altijd iets minder dan standaard attention op taalmodelleringtaken.