Magyarázd el részletesen a multi-head attention-t: mi az a Q/K/V, hogyan számítják ki a figyelem súlyokat, miért több fej.
sobes.tech MI
Válasz az MI-től
Többfejű figyelem — ez egy kulcsfontosságú mechanizmus a transzformátorokban, amely lehetővé teszi a modell számára, hogy egyidejűleg különböző részekre összpontosítson a bemeneti szekvenciában.
-
Q (Lekérdezés), K (Kulcs), V (Érték) — három mátrix, amelyeket tanulható lineáris transzformációk segítségével nyerünk ki a bemeneti adatokból. Minden pozíció a szekvenciában három vektorrá alakul:
- Lekérdezés — a kérés, amelyhez releváns információt keresünk.
- Kulcs — a kulcs, amellyel összehasonlítjuk a lekérdezést.
- Érték — az érték, amelyet a kérésre válaszként adunk vissza.
-
A figyelem súlyainak számítása:
- Számításra kerül a skaláris szorzat a Query és a Key között minden pozíciópárra.
- Az eredményt skálázza (általában a kulcsok dimenziójának négyzetgyökével osztja) a gradiens stabilizálása érdekében.
- Softmax alkalmazása, hogy valószínűségi eloszlást kapjunk a súlyokra.
- A súlyokat megszorozzuk a megfelelő Értékekkel, és összegezzük — ez a figyelem kimenete.
-
Miért több fej (multi-head)? Több fej lehetővé teszi a modell számára, hogy különböző "nézőpontokból" lássa az információt, azaz minden fej megtanulja kiemelni a különböző függőségeket és mintákat az adatokban. Ez növeli a kifejezőképességet és a modell minőségét.
Egyszerűsített példa:
# Minden fejhez:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i
figyelem_súlyok = softmax((Q_i @ K_i.T) / sqrt(d_k))
output_i = figyelem_súlyok @ V_i
# Az összes fej kimenetének összefűzése
output = concat(output_1, ..., output_h) * W_O
Ahol W_Q_i, W_K_i, W_V_i, W_O — tanulható mátrixok, d_k — a kulcsok dimenziója, és h — a fejek száma.