Sobes.tech
Middle — Senior

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:

    1. Számításra kerül a skaláris szorzat a Query és a Key között minden pozíciópárra.
    2. 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.
    3. Softmax alkalmazása, hogy valószínűségi eloszlást kapjunk a súlyokra.
    4. 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.