Mi az attention valójában (nem a buzzword verzió)
Az attention egy tanulható módszer arra, hogy a modell eldöntse: „mi számít most igazán”. Ahelyett, hogy minden tokent ugyanúgy kezelne, súlyokat rendel hozzájuk, így a releváns kontextusra fókuszál és kiszűri a zajt.
A Transformerben az attention nem egyetlen funkció, hanem mechanizmusok családja. Azért vannak különböző típusok, mert nem ugyanaz az optimális megoldás minden szekvenciahosszra, hardverre vagy feladatra.
Az alap: Q, K, V (miért kell három vetítés?)
A legtöbb modern attention Query (Q), Key (K) és Value (V) köré épül. A Query azt jelenti: mit keres a modell. A Key azt: mit „kínál” egy token. A Value pedig az a tartalom, amit összegzünk, ha a token releváns.
A modell kiszámolja a hasonlóságot Q és K között, ebből súlyokat képez (jellemzően softmax-szal), majd a V-k súlyozott összegét adja ki. Ez lesz a kontextus-érzékeny reprezentáció.
Scaled Dot-Product Attention:
pontszám = (Q · K^T) / sqrt(d_k)
súlyok = softmax(pontszám)
kimenet = súlyok · V
- d_k: a key dimenzió
- a softmax miatt a súlyok összege 1Self-attention vs cross-attention
Self-attention esetén Q, K és V ugyanabból a szekvenciából jön. Ez segít összekapcsolni a tokeneket egy bemeneten belül (mondat, beszélgetés, kódfájl).
Cross-attention esetén a Q egyik szekvenciából jön, a K és V pedig egy másikból. Tipikus encoder–decoder modelleknél (fordítás), vagy RAG rendszereknél, amikor a modell külső dokumentumokra figyel.
- Self-attention: kapcsolatok a bemeneten belül
- Cross-attention: külső/elkülönített kontextus kontrollált használata
- Gyakorlatban: cross-attention jó eszköz „bizonyíték” beemelésére
Causal (maszkolt) attention generáláshoz
Az autoregresszív LLM-ek (chat modellek) causal attentiont használnak: a tokenek csak a korábbi tokenekre figyelhetnek, a jövőre nem. Így a modell valóban lépésenként tud generálni.
A causal maszk szabály, nem trükk. Ez az oka annak is, hogy a hosszú kontextus drága: minden új token az összes korábbi tokenre figyel.
Multi-head attention (miért nem elég egyetlen fej?)
A multi-head attention több részre bontja a reprezentációt. A fejek specializálódhatnak: egyik a szintaxisra, másik a coreference-re, másik hosszú távú függésekre, stb.
Mérnöki szempontból ez robusztusságot ad, viszont drága KV cache memóriában. Emiatt jöttek később olyan változatok, amelyek csökkentik a KV költséget.
MHA vs MQA vs GQA (KV cache és inferencia költség)
Produkcióban sokszor a KV cache mérete a fő költség, különösen hosszú kontextusnál. A Multi-Query Attention (MQA) és Grouped-Query Attention (GQA) ezt csökkenti.
- MHA: minden fejnek saját K és V (jobb minőség, nagy memória).
- MQA: sok query-fej osztozik egy K/V készleten (nagyon hatékony, néha minőségvesztés).
- GQA: kompromisszum—csoportos megosztás (gyakran a legjobb balance produkcióra).
Mérnöki tipp
Hosszú kontextusú chatnél a KV cache dominál. GQA sokszor a legbiztonságosabb gyorsítás és memória-csökkentés minőségromlás nélkül.
Sparse attention (hosszú kontextus megfizethetően)
A teljes attention N² skálázódású. A sparse attention csökkenti a számítást azzal, hogy korlátozza, mely token melyikre figyelhet.
A minták lehetnek lokális ablakok, stride, blokkok vagy tanult routing. A kockázat: ha a releváns információ kívül esik a mintán, a minőség romlik.
- Lokális/windowed: olcsó, de kihagyhat globális infót
- Block-sparse: hardverbarát, struktúrált
- Tanult sparsity: rugalmas, de nehezebb hangolni és debugolni
Lineáris attention (softmax helyett más formuláció)
A lineáris attention célja, hogy elkerülje az N×N mátrixot. Ehhez olyan átalakítást használ, ami közelíti a softmax viselkedést, de közelebb van a lineáris skálázáshoz.
Cserébe approximációs kockázatot kapsz. Bizonyos feladatoknál kiváló, de nem mindig hozza a standard softmax attention univerzalitását.
Memória és retrieval: attention a prompton túl
Ha túl nagy a kontextus, a megoldás nem mindig a „még hosszabb prompt”. Inkább retrieval: releváns dokumentumok visszakeresése és bizonyítékként való beemelése.
A jó RAG rendszer kulcsa: chunkolás, embeddingek, rerank, idézetelés, és refusal szabályok, ha nincs bizonyíték.
Valóság
A legtöbb hallucináció rendszerhiba: gyenge retrieval, hiányzó evidence vagy nincs korlát. Az attention nem tud fókuszálni arra, amit nem adtál oda.
FlashAttention és kernel-optimalizálás (miért számít az implementáció?)
Ugyanaz az attention matematika eltérő sebességet adhat attól függően, hogyan van implementálva GPU-n. A FlashAttention-szerű megoldások csökkentik a memória műveleteket és javítják a kihasználtságot.
Produkcióban gyakran nem a FLOPs a szűk keresztmetszet, hanem a memória-hozzáférés és a cache viselkedés.
Mikor melyiket válaszd? (gyakorlati döntési útmutató)
A legegyszerűbb megoldást válaszd, ami elég. A komplexitás költség: több hibamód, hosszabb debug, több karbantartás.
- Rövid kontextus + max minőség: standard MHA (vagy amit a modell ad).
- Hosszú kontextusú chat skálán: GQA + hatékony attention kernel előnyös.
- Dokumentum-alapú asszisztens: a RAG pipeline + eval a legfontosabb.
- Extrém hossz: sparse/long-context architektúrák, de számolj regressziókkal.
A rejtett réteg: evals az attention jellegű hibákra
Attention-jellegű hibák: utasítások „elfelejtése”, long-context recall bukás, rossz coreference, és citation drift. Evals nélkül ez csak ügyfeleknél derül ki.
Egy jó eval csomag tartalmaz: hosszú kontextusú visszahívás teszteket, grounding ellenőrzést, instruction hierarchy teszteket, és „bait” promptokat, amik előhozzák a figyelem összeomlását.
Szeretnél produkció-érett RAG-ot és evalt (nem demót)?
AI asszisztenseket építünk retrieval-lel, idézetekkel, guardrails-szel és eval csomaggal — hogy a minőség stabil maradjon skálázás közben is.
Kapcsolat
