Back to archive
#ai#llm#glossary#aigen

Scaled Dot-Product Attention

Model ma połączyć informacje z kilku fragmentów zdania. Jeden fragment jest bardziej przydatny, drugi mniej. Potrzebna jest konkretna metoda policzenia ich udziałów, a następnie złożenia informacji w jeden wynik.

Scaled Dot-Product Attention porównuje liczbowe opisy query i key, zamienia wyniki na wagi i miesza odpowiadające im value. Każdy opis jest wektorem, czyli listą liczb. Query opisuje aktualną potrzebę danej pozycji, key służy do dopasowania, a value zawiera informację, którą można przekazać.

Porównanie polega na pomnożeniu odpowiadających sobie liczb i dodaniu iloczynów. Wynik dzieli się przez pierwiastek z długości listy, aby jego skala nie rosła nadmiernie z wymiarem. Softmax przelicza wyniki na nieujemne udziały sumujące się do jedności.

Jeżeli udziały wynoszą 25% i 75%, a przekazywane liczby to 2 i 6, otrzymujemy 0,25 × 2 + 0,75 × 6 = 5. To uproszczenie do jednej liczby; rzeczywiste value są listami. Udziały mówią o mieszaniu informacji, a nie o szansie, że odpowiedź jest poprawna.

Mechanizm i szczegóły

Bez maskowania i dropout zapis wygląda tak:

Attention⁡(Q,K,V)=softmax⁡(QKTdk)V\operatorname{Attention}(Q,K,V)=\operatorname{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

QQ zawiera query, KK — key, a VV — value. Wektory zajmują wiersze macierzy; dkd_k jest wymiarem query i key. Softmax działa osobno dla każdego query, po dostępnych key. Macierz jego wyników służy do połączenia value. Wyprowadzenie i implementacja: Dive into Deep Learning, §11.3.3.

Mały przykład wyniku

Załóżmy, że softmax wyznaczył wagi 0,250{,}25 i 0,750{,}75, a dwa value to [2;0][2;0] i [0;4][0;4]. Wynik wynosi:

0,25[2;0]+0,75[0;4]=[0,5;3].0{,}25[2;0]+0{,}75[0;4]=[0{,}5;3].

To wymyślony przykład rachunku. Wagi rozdzielają udział value; nie są prawdopodobieństwami poprawności odpowiedzi modelu.

Dzielenie przez dk\sqrt{d_k} przeciwdziała wzrostowi skali iloczynów wraz z wymiarem. Zbyt duże wartości mogą nasycać softmax i zmniejszać jego gradienty. Uzasadnienie podano w Attention Is All You Need, §3.2.1.

Ta operacja nie przesądza, skąd pochodzą dane. W Self-attention query, key i value wywodzą się z jednej sekwencji; w attention między sekwencjami ich źródła się różnią. Multi-Head Attention wykonuje takie obliczenia na kilku uczonych projekcjach.