Explică în detaliu despre atenția multi-head: ce sunt Q/K/V, cum se calculează greutățile de atenție, de ce mai multe capete.
sobes.tech AI
Răspuns de la AI
Atenția multi-head — este un mecanism cheie în transformatoare, care permite modelului să se concentreze simultan pe diferite părți ale secvenței de intrare.
-
Q (Interogare), K (Cheie), V (Valoare) — sunt trei matrici obținute din datele de intrare prin transformări liniare antrenabile. Fiecare poziție din secvență este transformată în trei vectori:
- Interogare — cererea pentru care se caută informații relevante.
- Cheie — cheia cu care se compară interogarea.
- Valoare — valoarea returnată ca răspuns la interogare.
-
Calculul ponderilor de atenție:
- Se calculează produsul scalar între Query și Key pentru fiecare pereche de poziții.
- Rezultatul este scalat (de obicei împărțit la rădăcina dimensiunii cheilor) pentru a stabiliza gradientele.
- Se aplică softmax pentru a obține o distribuție de probabilitate asupra ponderilor.
- Ponderile sunt înmulțite cu valorile corespunzătoare, iar rezultatele sunt însumate — aceasta este ieșirea atenției.
-
De ce mai multe capete (multi-head)? Mai multe capete permit modelului să vadă informația din diferite "unghiuri de vedere", adică fiecare cap învață să evidențieze diferite dependențe și modele în date. Acest lucru crește expresivitatea și calitatea modelului.
Exemplu simplificat:
# Pentru fiecare cap:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i
ponderi_atenție = softmax((Q_i @ K_i.T) / sqrt(d_k))
ieșire_i = ponderi_atenție @ V_i
# Combinăm ieșirile tuturor capetelor
ieșire = concat(ieșire_1, ..., ieșire_h) * W_O
Unde W_Q_i, W_K_i, W_V_i, W_O sunt matrici antrenabile, d_k este dimensiunea cheilor, iar h este numărul de capete.