Positional Encoding
Positional Encoding dostarcza modelowi informacji o położeniu elementów sekwencji. Samo pełne Self-attention, bez sygnału pozycji i maski zależnej od pozycji, nie rozpoznaje kolejności na podstawie numerów wierszy macierzy. Po przestawieniu wejść odpowiednio przestawiają się jego wyjścia. Wyjaśnienie: Dive into Deep Learning, §11.6.3.
W oryginalnym Transformer do reprezentacji każdego tokena dodawano wektor zbudowany z sinusów i cosinusów o różnych częstotliwościach. Wektor miał ten sam wymiar co embedding, więc dodawanie odbywało się współrzędna po współrzędnej. Attention Is All You Need, §3.5.
Co dostaje model
Schemat dodawania można zapisać jako : to embedding tokena na pozycji , a zależy od pozycji.
W dwuwymiarowej ilustracji wzoru sinusoidalnego , a . Ten sam token z tym samym embeddingiem otrzyma więc inny wektor wejściowy na tych dwóch pozycjach. Te liczby pokazują kodowanie miejsca, nie znaczenie tokena ani siłę jego związku z sąsiadem.
Positional Encoding nie zastępuje maski przyczynowej. Informacja o położeniu nie zabrania dostępu do przyszłej pozycji; robi to maska. Wariant sinusoidalny jest jednym ze sposobów reprezentowania pozycji, a nie wymaganym rozwiązaniem w każdym modelu.
Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.