Wat is Attention?

Mechanisme in Transformers waarbij elk token de sterkte van de relatie met alle andere tokens berekent om informatie te verzamelen. De rekenkosten zijn evenredig met het kwadraat van de sequentielengte.

Japanse benaming: アテンション

“Attention” komt voor in 3 oefenvragen uit 1 onderwerpen, bijv. AI-hardware en softwarestack.

Vakgebied: AI-hardware en softwarestack

Nu oefenen: vragen over Attention

Hoe neemt de rekenlast van self-attention in een Transformer toe met de lengte n van de invoerreeks?

  1. AEvenredig met n
  2. BEvenredig met het kwadraat van n
  3. CConstant, onafhankelijk van n
Antwoord en toelichting tonen

Antwoord: B. Evenredig met het kwadraat van n

Bij self-attention wordt het inwendig product van de Query van elk token met de Key van alle tokens berekend, wat een n×n-tabel met gewichten oplevert. De rekenlast en het geheugen voor de tussentabel bij een eenvoudige implementatie zijn daarom evenredig met het kwadraat van de lengte van de reeks. Bij verdubbeling van de lengte wordt het attentiongedeelte viermaal zo groot, zodat bij lange teksten de efficiëntie van de attention de prestaties bepaalt.

Welke uitspraak over het basisprincipe van snelle attention-implementaties zoals FlashAttention is juist?

  1. ADe berekening wordt in tegels (tiles) verdeeld en verloopt in het geheugen op de chip, zonder de grote n×n-tussentabel naar HBM te schrijven, waardoor lees- en schrijfacties van het geheugen afnemen
  2. BDe attentionberekening wordt weggelaten en er wordt een benaderd antwoord gegeven
  3. CDe attention wordt op de CPU berekend
Antwoord en toelichting tonen

Antwoord: A. De berekening wordt in tegels (tiles) verdeeld en verloopt in het geheugen op de chip, zonder de grote n×n-tussentabel naar HBM te schrijven, waardoor lees- en schrijfacties van het geheugen afnemen

Bij een eenvoudige implementatie wordt de n×n-tabel naar HBM geschreven, voor de softmax opnieuw gelezen en daarna nogmaals voor het product met Value, zodat het lezen en schrijven van geheugen de prestaties bepaalt. FlashAttention verdeelt Query en Key/Value in blokken die in het gedeelde geheugen worden geladen en voert de berekening in één doorgang uit terwijl de softmax stapsgewijs wordt bijgewerkt, zonder de tabel naar HBM te schrijven. Het rekenwerk blijft gelijk, maar het lezen en schrijven van geheugen neemt sterk af, zodat het sneller wordt.

“Attention” in de toelichting

Vragen met “Attention” (3)

  1. Hoe neemt de rekenlast van self-attention in een Transformer toe met de lengte n van de invoerreeks?
  2. Welke uitspraak over het basisprincipe van snelle attention-implementaties zoals FlashAttention is juist?
  3. Waarom wordt bij de berekening van de softmaxfunctie exp(xi)/Σexp(xj) vaak eerst de maximumwaarde van elke xi afgetrokken?

Verwante termen

FlashAttention HBM (high bandwidth memory) Exponent AI-compiler All-reduce Backpropagatie Batchgrootte Dataparallellisme Gestructureerde sparsity Gradient checkpointing

Naar de woordenlijst