Gå til indhold
atlas

Attention-mekanisme

Også kendt som: attention, self-attention

Det trin i en model, der for hvert token afgør, hvilke andre tokens i inputtet der betyder mest lige nu.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En metode i et neuralt netværk, hvor hvert tokens embedding sammenlignes med alle andre tokens, matchscorerne laves om til andele, der tilsammen giver én, og tokenet optager en blanding af de andre vægtet efter de andele.

Forklaret enkelt

Som at følge med i, hvad én ven siger til en larmende fest - af alle stemmerne i rummet opfanger du de få, der har betydning, og lader resten glide i baggrunden.

I praksis

En sagsbehandler i en kommune spørger en chatassistent, om en lokalplan på 120 sider tillader en carport; attention lader spørgsmålet trække direkte på det ene afsnit langt tilbage i teksten, der afgør sagen.

Hvorfor det betyder noget

Hvert token sammenlignes med alle de andre, så arbejdet vokser langt hurtigere end inputtets længde - hovedårsagen til, at et længere kontekstvindue koster mere tid og flere penge.

Teknisk uddybning

Attention blev introduceret af Bahdanau, Cho og Bengio (2014) som et alignment-lag i rekurrente encoder-decoder-modeller til maskinoversættelse: I stedet for at presse en kildesætning ned i én fast vektor beregnede decoderen ved hvert output-trin et vægtet gennemsnit af alle encoderens tilstande, med vægte fra et lille feed-forward-scoringsnetværk (additiv attention). Luong m.fl. (2015) forenklede scoren til et prikprodukt. Vaswani m.fl. (2017) fjernede derefter rekursionen helt og gjorde attention til transformerens centrale operation.

Transformer-varianten er scaled dot-product attention: Attention(Q, K, V) = softmax(QKᵀ / √d_k) V. Hvert tokens skjulte tilstand projiceres med lærte matricer til en query-, en key- og en value-vektor; query for token i sammenlignes med key for hvert token j, scorerne divideres med √d_k, så softmax ikke går i mætning, når dimensionen vokser, og de resulterende vægte blander value-vektorerne. Multi-head attention kører h sådanne operationer parallelt på projektioner med lavere dimension og sætter resultaterne sammen; den oprindelige basismodel brugte d_model = 512 med 8 hoveder à d_k = 64. Self-attention tager Q, K og V fra samme sekvens; cross-attention tager queries fra én sekvens (decoderen) og keys og values fra en anden (encoderens output). En kausal maske sætter scorerne for fremtidige positioner til −∞, så en decoder ikke kan kigge frem. Attention er i sig selv permutationsinvariant, så position skal tilføjes separat, oprindeligt med sinusformede kodninger og i dag typisk med rotary position embeddings (RoPE) eller relative bias som ALiBi.

Prisen er den afgørende begrænsning. Scorematricen er n × n, så beregning og naivt hukommelsesforbrug vokser som O(n²·d) i sekvenslængden n. FlashAttention (Dao m.fl., 2022) giver det eksakte resultat, men opdeler beregningen i fliser, så hele matricen aldrig skrives til GPU'ens hovedhukommelse; det fjerner den kvadratiske hukommelsestrafik, men ikke den kvadratiske regnemængde. Under generering caches keys og values for tidligere tokens (KV-cachen), og multi-query attention (Shazeer, 2019) og grouped-query attention (Ainslie m.fl., 2023) deler key/value-hoveder mellem flere query-hoveder for at gøre cachen mindre. Sparse, sliding-window- og lineære attention-varianter bytter eksakthed eller udtrykskraft for en pris under det kvadratiske.

To misforståelser går igen. Attention-vægte er ikke en pålidelig forklaring på, hvorfor en model gav et bestemt output: Hovederne vekselvirker på tværs af mange lag og residualforbindelser, og flere studier har vist, at ret forskellige vægtmønstre kan give samme forudsigelse. Og at en model accepterer en lang kontekst, betyder ikke, at den udnytter det hele lige godt; genfindingen falder ofte for stof midt i lange input, så et stort kontekstvindue er ikke det samme som pålidelig attention over lange afstande.

Hvad du bør lære først

Alt det, dette bygger på - grundlaget først.

  1. Neuralt netværk
  2. →Token
  3. →Embedding
  4. →Attention-mekanisme

Relationer

Forudsætter
Embedding
Bruges sammen med
KontekstvindueKV-cache

Kilder og videre læsning

Opslagsværker

  • Bahdanau, Cho & Bengio (2014), Neural Machine Translation by Jointly Learning to Align and Translate
  • Vaswani et al. (2017), Attention Is All You Need

Lærebøger

  • Goodfellow, Bengio & Courville, Deep Learning (ch. 12.4) · MIT Press

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Test dig selv

Indlæser…

Atlas er i beta.