Softmax
Model ocenił trzy możliwe kontynuacje zdania liczbami 2, 1 i 0. Chcesz losować odpowiedź według ich szans. Surowe oceny nie są prawdopodobieństwami: mogą być ujemne i nie sumują się do jedności.
Softmax przelicza takie oceny, zwane logitami, na dodatnie udziały o sumie jeden. Najpierw stosuje funkcję wykładniczą — przekształcenie rosnące wraz z oceną — a następnie dzieli każdą wartość przez ich wspólną sumę.
Dla ocen 2, 1, 0 otrzymujemy około 67%, 24%, 9%. Pierwszy kandydat ma największą szansę, ale losowanie nadal może wskazać drugi lub trzeci. Softmax sam nie wykonuje losowania i nie dopisuje tekstu.
Te same obliczenia mogą wyznaczać udziały fragmentów w attention. Wtedy udziały dotyczą mieszania informacji, a nie wyboru kolejnego tokena. Nawet prawdopodobieństwo 67% dla tokena nie jest oceną prawdziwości całej wypowiedzi.
Mechanizm i szczegóły
to logit kandydata , liczba kandydatów, a jego prawdopodobieństwo. W tensorze trzeba wskazać oś normalizacji: suma wynosi jeden dla każdej grupy rozpatrywanej wzdłuż tej osi. Wzór i znaczenie parametru dim podaje dokumentacja PyTorch: Softmax.
Mały przykład
Załóżmy trzy logity: . Po potęgowaniu otrzymujemy , a po podzieleniu przez sumę: . To własny przykład rachunkowy. Pierwszy kandydat ma dwukrotnie większe prawdopodobieństwo niż każdy z pozostałych.
W modelu językowym LM head wyznacza logity dla słownika. Softmax zamienia je w rozkład, ale sam nie wybiera tokena. W przykładzie wybór maksimum zawsze wskaże pierwszego kandydata; losowanie z rozkładu może dać każdego z trzech.
W Scaled Dot-Product Attention ta sama operacja normalizuje wyniki porównań query z key. Składowe są wtedy wagami pozycji, a nie prawdopodobieństwami tokenów słownika. Oba zastosowania opisuje Attention Is All You Need, §3.2.1 i §3.4.
Wartość 0,5 w rozkładzie tokenów nie oznacza 50% szans, że całe zdanie jest prawdziwe. Wynik dotyczy wyboru z konkretnych kandydatów przy danym wejściu, nie oceny prawdziwości wypowiedzi.