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:
- Oblicza się iloczyn skalarny między Query a Key dla każdej pary pozycji.
- Wynik jest skalowany (zwykle dzielony przez pierwiastek z wymiaru kluczy), aby stabilizować gradienty.
- Zastosowanie softmax, aby uzyskać rozkład prawdopodobieństwa wag.
- 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.