Attention Mechanism

Attention Mechanism je technika, vďaka ktorej sa model pri spracovaní textu (alebo obrazu, zvuku) dynamicky zameriava na tie časti vstupu, ktoré sú pre aktuálny krok najdôležitejšie. Predstav si to ako reflektor na javisku: nesvieti stále rovnako na všetko, ale presúva sa tam, kde sa práve deje podstatná akcia. Je to mechanizmus, ktorý v roku 2017 (práca „Attention Is All You Need" — Vaswani et al., Google Brain) odštartoval éru transformerov a moderných veľkých jazykových modelov. Dnes, v roku 2026, stojí attention v jadre prakticky každého produkčného AI systému — od chatbotov cez medicínsku diagnostiku až po generovanie kódu.


1. Čo to je (definícia + analógia)

Attention rieši starý problém rekurentných sietí (RNN): informácia sa stratila skôr, než sa k nej model dostal znova. Namiesto sériového posúvania „pamäti" cez každý token attention umožňuje modelu pozrieť sa priamo na akýkoľvek token v kontexte — v jedinej operácii, naraz.

Tri praktické analógie pomôžu zasadiť mechanizmus do súvislostí:

  • Reflektor / zvýrazňovač: keď generuješ ďalšie slovo vo vete, model si „posvieti" na slová, ktoré najviac súvisia s tým, čo má nasledovať. Ostatné zostanú v polotme.
  • Knižnica a otázka: máš otázku (čo riešiš) a v knižnici veľa kníh (celý kontext). Attention rýchlo vyberie relevantné pasáže a poskladá z nich odpoveď — bez toho, aby čítala každú stranu od začiatku.
  • Selektívna pamäť pri rozhovore: hovoríš s kolegom o projekte. Z desiatich viet, ktoré si povedal, sa tvoj mozog v správnom momente odvolá na tú jednu zásadnú. Attention je práve tento mechanizmus výberu.

2. Query, Key, Value — tri roly každého tokenu

Jadro attention sú tri roly, ktoré dostane každý token. Každá sa naučí cez tréning (sú to naučiteľné matice váh Wq, Wk, Wv):

Rola Otázka, ktorú reprezentuje Analógia
Query (Q) „Čo hľadám?" Hľadaný výraz vo vyhľadávači
Key (K) „Čím sa ponúkam, podľa čoho ma nájdeš?" Nadpis a metadata dokumentu
Value (V) „Akú informáciu nesiem, ak ma vyberieš?" Samotný obsah dokumentu

Model porovná Query každého tokenu s Key všetkých ostatných tokenov v kontexte. Z podobností vypočíta váhy (cez softmax) a výsledok je vážený priemer Values. Tokeny s vysokou podobnosťou Query–Key dostanú vysokú váhu — teda silno ovplyvnia výsledok.

Kľúčové je, že Q, K, V nie sú pôvodné tokeny — sú to ich lineárne projekcie do iného priestoru. Model sa teda učí, ako tokeny premeniť do rolí, ktoré najlepšie slúžia účelu vyhľadávania relevantného kontextu.


3. Scaled dot-product attention (technicky)

Matematicky je to jeden elegantný vzorec:

Attention(Q, K, V) = softmax( (Q · Kᵀ) / √d_k ) · V

A v PyTorch kóde:

import torch
import torch.nn.functional as F

def scaled_dot_product_attention(Q, K, V, mask=None):
    d_k = Q.size(-1)
    scores = (Q @ K.transpose(-2, -1)) / d_k**0.5  # podobnosti
    if mask is not None:
        scores = scores.masked_fill(mask == 0, float('-inf'))
    weights = F.softmax(scores, dim=-1)             # rozdelenie pozornosti
    return weights @ V                              # vážený mix hodnôt

Delenie √d_k (scaling) drží skóre v rozumnom rozsahu, aby softmax neskolaboval do extrémov — pri veľkých hodnotách by sofmax vrátil takmer nuly a jedničky, gradient by zanikol. Škálovanie to stabilizuje.

Výsledkom je pre každý token nový vektor — „mix" informácií zo všetkých ostatných tokenov, vážený ich relevanciou. Toto je vstup do ďalšej vrstvy siete.


4. Druhy attention, ktoré sa oplatí poznať

Nie všetky varianty attention sú rovnaké. Líšia sa tým, čo sa porovnáva s čím a čo je zakryté:

Typ Popis Kde sa používa
Self-attention Token sa pozerá na všetky ostatné tokeny v tom istom vstupe Encoder aj decoder transformera, GPT, BERT
Cross-attention Token z jednej sekvencie sa pozerá na druhú sekvenciu Prekladač (zdrojový → cieľový jazyk), multimodálne modely
Masked (causal) attention Maska zakryje budúce tokeny — model nevidí dopredu Autoregresívne generovanie (GPT-štýl)
Multi-head attention Viac paralelných „hláv", každá sleduje iný typ vzťahu Takmer všade — základ moderných LLM
Sparse attention Každý token sa pozrie len na podmnožinu iných tokenov Dlhé kontexty, dokumentové modely
Sliding window attention Token sa pozerá len na okolie ±k tokenov Mistral, Gemma — efektívny dlhý kontext

Multi-head attention podrobnejšie

Namiesto jedného reflektora máš viac naraz — každá „hlava" (head) zachytáva iný typ vzťahu medzi tokenmi:

  • Syntaktická hlava: podmet–prísudok, zhoda rodu a čísla
  • Sémantická hlava: synonymá, tematické súvislosti
  • Koreferenčná hlava: kto je „on/ona/oni", čo znamená „toto"
  • Pozičná hlava: vzťahy na základe vzdialenosti medzi tokenmi

Každá hlava pracuje s nižšou dimenziou (d_model / num_heads) — výpočtová cena teda zostáva podobná ako pri jednej hlave plnej dimenzie. Výstupy všetkých hláv sa na konci zreťazia a lineárne premietnu.

Multi-head attention je ako mať viac analytikov nad tým istým textom: jeden sleduje gramatiku, druhý témy, tretí referencie — a ich závery sa skombinujú.


5. Moderné varianty a optimalizácie (2024–2026)

Klasický attention má kvadratickú cenu O(n²) voči dĺžke kontextu. Pre kratšie vstupy to nevadí, ale modely s kontextom stoviek tisíc až miliónov tokenov potrebujú efektívnejšie riešenia.

FlashAttention

FlashAttention (2022, v3 v roku 2024) nerieši kvadratickú asymptotiku, ale drasticky zrýchľuje výpočet tým, že sa vyhýba pomalým presunom dát medzi pamäťou GPU. Výpočet prebieha po blokoch priamo v rýchlej SRAM — výsledok je rovnaký ako klasický attention, ale 2–4× rýchlejší a s oveľa menšou spotrebou pamäte. Väčšina dnešných open-source aj proprietárnych modelov ho používa ako štandard.

Multi-Query Attention (MQA) a Grouped-Query Attention (GQA)

Kľúčový problém pri generovaní (inference) je tzv. KV cache — model si pamätá Keys a Values pre všetky predošlé tokeny. Pri klasickom multi-head attention to vyžaduje obrovskú pamäť.

  • MQA: všetky Query hlavy zdieľajú jednu sadu K a V → dramaticky menší KV cache, rýchlejšia inference
  • GQA: kompromis — skupiny hláv zdieľajú K a V → Llama 3, Gemma 2, Mistral a väčšina modelov 2024–2026
Varianta K/V hláv Q hláv Pamäť KV cache Kvalita
Multi-head (MHA) = Q hlavám N Najvyššia Najvyššia
Grouped-query (GQA) N/skupina N Stredná Takmer MHA
Multi-query (MQA) 1 N Najnižšia Mierne nižšia

Ring Attention a distribuovaný kontext

Pre extrémne dlhé kontexty (1M+ tokenov) sa v roku 2024–2025 udomácnil Ring Attention: sekvenciu rozdelia medzi viac GPU, každé GPU počíta attention pre svoju časť a výsledky kolujú po „kruhu" medzi GPU. Takto sa dajú spracovať kontexty, ktoré sa nezmestia na jedinú kartu.


6. Prečo je to dôležité / kde sa to používa

Bez attention by moderné jazykové modely nefungovali v dnešnej kvalite.

  • Transformery: attention je ich jadro — self-attention v každej vrstve.
  • Preklady, sumarizácie, Q&A: model potrebuje vedieť, ktoré časti textu sú relevantné pre aktuálne generovaný token.
  • Multimodálne modely (GPT-4o, Gemini, Claude): cross-attention spája text s obrazom, audiom alebo videom.
  • Generovanie kódu: attention sleduje referencie na premenné a funkcie definované ďaleko skôr v súbore.
  • Medicína a veda: attention v proteínových modeloch (AlphaFold) sleduje vzťahy medzi aminokyselinami naprieč celou sekvenciou.
  • Kontextové okno: keď model „zabudne" dôležitú informáciu, často sa k nej v správnom momente nedostal alebo ju nedokázal uprednostniť — priamo súvisí s limitmi kontextového okna.

7. Výhody a obmedzenia

Výhody

  • Dlhý kontext: model spája informácie na veľkú vzdialenosť v texte bez straty.
  • Paralelizácia: celá attention matica sa počíta naraz (nie sériovo ako RNN) → rýchlejší tréning.
  • Flexibilita: rovnaká myšlienka funguje pre text, obraz, zvuk, proteíny, grafy.
  • Interpretovateľnosť: attention váhy sa dajú vizualizovať — vidieť, na čo sa model pozrel (hoci s rezervou).

Obmedzenia

  • Kvadratická cena O(n²): klasický attention rastie s druhou mocninou dĺžky kontextu — pri veľmi dlhých vstupoch bolí čas aj pamäť. Rieši to FlashAttention, sparse attention, GQA a ďalšie optimalizácie.
  • Nie je to „pochopenie": vysoké attention váhy nie sú zárukou, že model rozumel vzťahu — len že ho štatisticky korelovalo.
  • Citlivosť na šum: príliš veľa irelevantného kontextu → model sa zameria na nesprávne veci (tzv. lost-in-the-middle efekt).
  • KV cache pamäť: pri dlhej inference rastú pamäťové nároky lineárne — adresuje to GQA/MQA.

8. Čo to znamená pre teba (aj keď nie si programátor)

Pochopenie attention má priamy dopad na to, ako efektívne komunikuješ s AI modelmi.

  • Štruktúra promptu pomáha pozornosti: dôležité fakty daj jasne a oddelene — odrážky, nadpis „Pravidlá", oddeľ „dáta" od „úlohy". Model ľahšie nájde, čo je podstatné.
  • Opakovanie kritických bodov je legitímne: ak je niečo zásadné, pripomeň to aj na konci zadania — attention to znova „zaváži".
  • Dlhý kontext nie je záruka kvality: pomáha sumár na začiatku, jednoznačné kľúčové slová, konzistentné názvy sekcií. Chaotický dlhý prompt môže byť horší než stručný jasný.
  • Lost-in-the-middle: fakty pohrabané v strede veľmi dlhého textu majú štatisticky nižšiu šancu, že ich model správne uprednostní. Kritické informácie daj na začiatok alebo koniec.
  • Keď model halucinuje, často zlyhá výber: model mohol uprednostniť nesprávne tokeny. Pomôže doplniť chýbajúce fakty explicitne alebo zjednodušiť kontext.

Zhrnutie

  • Attention Mechanism priraďuje rôznu dôležitosť častiam vstupu a skladá z nich relevantný „mix" informácie — pre každý token zvlášť, v každej vrstve modelu.
  • Funguje cez trojicu Query–Key–Value a vzorec softmax(QKᵀ/√d_k)·V.
  • Najčastejšie stretneš self-attention, cross-attention a multi-head attention — základ všetkých moderných transformerov.
  • Moderné varianty (FlashAttention, GQA, Ring Attention) riešia kvadratickú cenu a pamäťové nároky pri dlhých kontextoch — sú to optimalizácie, nie zmeny základnej myšlienky.
  • Pre teba ako používateľa platí: dobrá štruktúra promptu reálne zvyšuje šancu, že sa model zameria na podstatné — attention to nie je metafora, je to doslovný mechanizmus výberu.