Wróć do ścieżek
Moduł 5

Wyjście: Linear + Softmax

Wektory naszych tokenów zgromadziły już wystarczająco dużo informacji, aby przewidzieć, jaki będzie następny token. W tym pokoju omówimy mechanizmy, które były stosowane wcześniej, a następnie spróbujemy przewidzieć kolejne tokeny na podstawie informacji, które już posiadamy.

V etap: mapowanie

Zbliżamy się do ostatniego etapu jakim jest przewidywanie tokenu. Po wielu omówionych wcześniej przekształceniach nasze wektory są w takiej samej formie jak przed nimi, każdy token zawiera 3 wymiary, gdzie zakodowana jest informacja o jego znaczeniu, pozycji w zdaniu, oraz o tokenach przed nim. Problem w tym, że model mówi w wymiarach, a my chcemy przewidywać tekeny w takiej samej formie jak daliśmy na wejściu. Potrzebujemy tłumacza z przestrzeni 3 liczb na przestrzeń słownika.

Nasze wektory po przekształceniach:

FFN(Add & Norm(Attention(X)))

x₁ x₂ x₃
The -0.47 0.68 -0.21
cat 0.35 -0.84 0.56
sit 0.72 0.19 -0.63
on -0.14 0.91 0.28
the 0.53 -0.37 -0.75
mat -0.89 0.44 0.17

Może wiesz co może nam w tym pomóc, ponieważ stosowaliśmy to już przy mechanizmach attention, a są to sieci neuronowe, dokładniej warstwa linear, bez biasu i aktywacji. Odnosiliśmy się do tego wcześniej — ten sam wektor cat przepuszczony przez W_Q daje pytanie „czego szukam?", przez W_K wizytówkę „co mam do zaoferowania?", przez W_V treść „co przekazuję dalej?". Trzy różne spojrzenia na tę samą informację. Nie dlatego, że wektor się zmienił, tylko dlatego, że każda macierz patrzy na niego pod innym kątem i wyciąga to, co ją interesuje.

Tutaj jest tak samo: mamy wektor 3-wymiarowy i dajemy go sieci, żeby oceniła, co może być następne. To, w jaki sposób to robi, nie jest oczywiste — model dobiera odpowiednie wagi w trakcie treningu. Ale efekt jest banalnie prosty: token, który model uważa za najbardziej prawdopodobny jako następny, dostaje największą wartość po przepuszczeniu wektora przez warstwę linear.

Zobaczmy to na rysunku:

Warstwa Linear: wektor x rzutowany macierzą W_U na logity dla tokenów słownika
Zdj. 1 — 3 wartości naszego wektora zostały zmapowane na tyle możliwosci ile tokenów znajduje się w naszym słowniku, a ten który jest najbardziej prawdopodobny jako następny sieć ocenia najwyższą wartością.

Trzy wartości naszego wektora zostały zmapowane na tyle możliwości, ile tokenów liczy słownik. W GPT-2 byłoby 50 257, możliwości, ponieważ tyle jest możliwych tokenów, z których można zbudować każde zdnaie. Te surowe wyniki nazywamy logitami — nie są jeszcze prawdopodobieństwami, mogą być ujemne, dopiero następny etap przerobi je na bardziej użyteczną formę. Ten etap to Softmax.

Zaloguj się, aby czytać dalej

To tylko początek modułu. Załóż darmowe konto lub zaloguj się, aby mieć dostęp do bezpłatnych modułów.