Sobes.tech
Middle — Senior

Opowiedz szczegółowo o wielogłowej uwadze: czym są Q/K/V, jak oblicza się wagi uwagi, dlaczego jest kilka głów.

sobes.tech AI

Odpowiedź od AI

Wielogłowa uwaga — to kluczowy mechanizm w transformatorach, który pozwala modelowi jednocześnie skupiać się na różnych częściach wejściowej sekwencji.

  • Q (Zapytanie), K (Klucz), V (Wartość) — to trzy macierze uzyskane z danych wejściowych za pomocą uczonych, liniowych przekształceń. Każda pozycja w sekwencji jest przekształcana w trzy wektory:

    • Zapytanie — zapytanie, dla którego poszukuje się istotnych informacji.
    • Klucz — klucz, z którym porównuje się zapytanie.
    • Wartość — wartość, która jest zwracana jako odpowiedź na zapytanie.
  • Obliczanie wag uwagi:

    1. Oblicza się iloczyn skalarny między Query a Key dla każdej pary pozycji.
    2. Wynik jest skalowany (zwykle dzielony przez pierwiastek z wymiaru kluczy), aby stabilizować gradienty.
    3. Zastosowanie softmax, aby uzyskać rozkład prawdopodobieństwa wag.
    4. Wagi są mnożone przez odpowiadające im Wartości, a wyniki sumowane — to jest wyjście uwagi.
  • Dlaczego wiele głów (multi-head)? Wiele głów pozwala modelowi patrzeć na informacje z różnych "kątów widzenia", czyli każda głowa uczy się wyodrębniać różne zależności i wzorce w danych. To zwiększa wyrazistość i jakość modelu.

Przykład uproszczony:

# Dla każdej głowy:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i

attention_weights = softmax((Q_i @ K_i.T) / sqrt(d_k))
output_i = attention_weights @ V_i

# Łączymy wyjścia wszystkich głów
output = concat(output_1, ..., output_h) * W_O

Gdzie W_Q_i, W_K_i, W_V_i, W_O — to uczone macierze, d_k — wymiar kluczy, a h — liczba głów.