Sobes.tech
Middle — Senior

Podrobně vysvětlete multi-head attention: co jsou Q/K/V, jak se počítají váhy pozornosti, proč je několik hlav.

sobes.tech AI

Odpověď od AI

Vícenásobná pozornost — je klíčovým mechanismem v transformerech, který umožňuje modelu současně se zaměřit na různé části vstupní sekvence.

  • Q (Dotaz), K (Klíč), V (Hodnota) — jsou tři matice získané z vstupních dat pomocí učitelných lineárních transformací. Každá pozice v sekvenci je převedena na tři vektory:

    • Dotaz — dotaz, pro který se hledají relevantní informace.
    • Klíč — klíč, se kterým se dotaz porovnává.
    • Hodnota — hodnota, která je vrácena jako odpověď na dotaz.
  • Výpočet vah pozornosti:

    1. Vypočítá se skalární součin mezi Query a Key pro každý pár pozic.
    2. Výsledek se škáluje (obvykle se dělí druhou odmocninou dimenze klíčů) pro stabilizaci gradientů.
    3. Použije se softmax, aby se získalo pravděpodobnostní rozdělení vah.
    4. Vahy se násobí odpovídajícími hodnotami a výsledky se sečtou — to je výstup pozornosti.
  • Proč více hlav (multi-head)? Více hlav umožňuje modelu dívat se na informace z různých "úhlů pohledu", tj. každá hlava se učí zvýraznit různé závislosti a vzory v datech. To zvyšuje výkonnost a kvalitu modelu.

Zjednodušený příklad:

# Pro každou hlavu:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i

váhy pozornosti = softmax((Q_i @ K_i.T) / sqrt(d_k))
výstup_i = váhy pozornosti @ V_i

# Kombinace výstupů všech hlav
výstup = concat(výstup_1, ..., výstup_h) * W_O

Kde W_Q_i, W_K_i, W_V_i, W_O — jsou učitelné matice, d_k — dimenze klíčů, a h — počet hlav.