Back to archive
#ai#llm#glossary#aigen

Softmax

Softmax przekształca wektor liczb, zwykle nazywanych logitami, w rozkład prawdopodobieństwa. Dla skończonych logitów matematyczny wynik ma dodatnie składowe, które sumują się do jedności:

pi=exp(zi)j=1nexp(zj)p_i=\frac{\exp(z_i)}{\sum_{j=1}^{n}\exp(z_j)}

ziz_i to logit kandydata ii, nn liczba kandydatów, a pip_i 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: [ln2;0;0][\ln 2;0;0]. Po potęgowaniu otrzymujemy [2;1;1][2;1;1], a po podzieleniu przez sumę: [0,5;0,25;0,25][0{,}5;0{,}25;0{,}25]. 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.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.