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") odštartoval éru transformerov a moderných veľkých jazykových modelov.


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

  • Pozornosť ako výber: namiesto toho, aby model „prežúval" všetko rovnako, priraďuje rôznym častiam vstupu rôznu dôležitosť.
  • Reflektor / zvýrazňovač: keď píšeš ďalšie slovo vo vete, model si „posvieti" na slová, ktoré najviac súvisia s tým, čo má nasledovať.
  • 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ď.

2. Query, Key, Value

Jadro attention sú tri roly, ktoré dostane každý token:

  • Query (Q): „čo hľadám?"
  • Key (K): „čím sa ponúkam, podľa čoho ma nájdeš?"
  • Value (V): „akú informáciu nesiem, ak ma vyberieš?"

Model porovná Query každého tokenu s Key všetkých ostatných, z podobností spraví váhy a výsledok je vážený mix Values. Analógia s vyhľadávaním: Query je hľadaný výraz, Key sú názvy dokumentov, Value je ich obsah.


3. Scaled dot-product attention (technicky)

Matematicky je to jeden elegantný vzorec:

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

A skrátene v kóde:

import torch
import torch.nn.functional as F

def attention(Q, K, V):
    d_k = Q.size(-1)
    scores = (Q @ K.transpose(-2, -1)) / d_k**0.5  # podobnosti
    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. To je celá podstata — zvyšok transformera sú vrstvy tohto okolo dokola.


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

  • Self-attention: model sa pozerá „sám do seba" — každý token hodnotí, ktoré iné tokeny v kontexte sú preň relevantné.
  • Cross-attention: používa sa pri dvoch zdrojoch (preklad, spájanie textu s obrazom) — jedna strana sa pozerá na druhú.
  • Masked attention: pri generovaní textu sa model nesmie „pozrieť dopredu" — maska zakryje budúce tokeny.
  • Multi-head attention: namiesto jedného reflektora máš viac naraz. Každá „hlava" sleduje iný typ vzťahu:
    • Gramatika: podmet–prísudok, zhoda rodu/čísla
    • Význam: synonymá, tematické súvislosti
    • Referencie: kto je „on/ona/oni", čo znamená „toto"

Multi-head attention je ako mať viac analytikov nad tým istým textom, každý sleduje iné signály.


5. 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 — najmä self-attention.
  • Preklady, sumarizácie, Q&A: model potrebuje vedieť, ktoré časti textu sú relevantné.
  • Multimodálne modely: pozornosť spája text s obrazom alebo audiom.
  • Dôsledok: keď model „zabudne" dôležitú informáciu, často sa k nej v správnom momente nedostal alebo ju nedokázal uprednostniť — súvisí s limitmi kontextového okna.

6. Výhody a obmedzenia

  • Výhody:
    • Lepší kontext: model spája informácie na veľkú vzdialenosť v texte.
    • Paralelizácia: veľa výpočtu naraz → rýchlejší tréning než staršie RNN.
    • Flexibilita: rovnaká myšlienka funguje pre text, obraz aj zvuk.
  • Obmedzenia:
    • Kvadratická cena: klasický attention rastie ~O(n²) s dĺžkou kontextu — pri veľmi dlhých vstupoch bolí čas aj pamäť. Rieši to FlashAttention a ďalšie optimalizácie.
    • Nie je to „pochopenie": váhy nie sú záruka, že model rozumie ako človek.
    • Citlivosť na šum: plný kontext irelevantných informácií → model sa zameria na nesprávne veci.

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

  • Štruktúra promptu pomáha pozornosti: dôležité fakty daj jasne a oddelene (odrážky, nadpis „Pravidlá", oddeľ „dáta" od „úlohy").
  • Opakovanie kritických bodov je legitímne: ak je niečo zásadné, pripomeň to aj na konci zadania.
  • Dlhý kontext nie je záruka: pomáha sumár na začiatku, jednoznačné kľúčové slová, konzistentné názvy sekcií.
  • Keď model halucinuje, často zlyhá výber: doplň chýbajúce fakty alebo zjednoduš kontext.

Zhrnutie

  • Attention Mechanism priraďuje rôznu dôležitosť častiam vstupu a skladá z nich relevantný „mix" informácie.
  • Funguje cez Query–Key–Value a vzorec softmax(QKᵀ/√d_k)·V.
  • Najčastejšie stretneš self-attention, cross-attention a multi-head attention — základ transformerov.
  • Jeho slabina je kvadratická cena pri dlhom kontexte; pre teba ako používateľa platí, že dobrá štruktúra promptu reálne zvyšuje šancu, že sa model zameria na podstatné.