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:
- Vypočítá se skalární součin mezi Query a Key pro každý pár pozic.
- Výsledek se škáluje (obvykle se dělí druhou odmocninou dimenze klíčů) pro stabilizaci gradientů.
- Použije se softmax, aby se získalo pravděpodobnostní rozdělení vah.
- 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.