Sobes.tech
Middle — Senior

Multi-head diqqət haqqında ətraflı məlumat verin: Q/K/V nədir, diqqət çəkisi necə hesablanır, niyə bir neçə baş var.

sobes.tech Süni İntellekt

AI-dan cavab

Çox başlı diqqət — transformatorlarda əsas mexanizmdir və modelə giriş ardıcıllığının müxtəlif hissələrinə eyni zamanda diqqət yetirməyə imkan verir.

  • Q (Sorğu), K (Açar), V (Dəyər) — bunlar öyrədilə bilən xətti transformasiyalar vasitəsilə giriş məlumatlarından alınan üç matritsdir. Ardıcıllıqda hər bir mövqe üç vektora çevrilir:

    • Sorğu — müvafiq məlumat axtarışında olan sorğu.
    • Açar — sorğu ilə müqayisə olunan açar.
    • Dəyər — sorğuya cavab olaraq qaytarılan dəyər.
  • Diqqət çəkisinin hesablanması:

    1. Hər bir mövqe cütlüyü üçün Query və Key arasında skalyar hasil hesablanır.
    2. Nəticə (adətən açarların ölçüsünün kvadrat kökü ilə bölünür) ölçüləndirilir, bu da gradientləri stabilləşdirir.
    3. Softmax tətbiq edilir və ehtimal paylanması alınır.
    4. Çəki, müvafiq Dəyərlərlə vurulur və nəticələr toplanır — bu diqqətin çıxışıdır.
  • Niyə çox baş (multi-head)? Bir neçə baş modelə müxtəlif "bucaqdan" məlumat görməyə imkan verir, yəni hər baş müxtəlif asılılıqları və naxışları öyrənir. Bu, modelin ifadə gücünü və keyfiyyətini artırır.

Sadələşdirilmiş nümunə:

# Hər baş üçün:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i

diqqət_çəkiləri = softmax((Q_i @ K_i.T) / sqrt(d_k))
çıxış_i = diqqət_çəkiləri @ V_i

# Bütün başların çıxışlarını birləşdiririk
çıxış = concat(çıxış_1, ..., çıxış_h) * W_O

Burada W_Q_i, W_K_i, W_V_i, W_O — öyrədilə bilən matritsələr, d_k — açarların ölçüsü və h — başların sayı.