Back to archive
#ai#llm#glossary#aigen

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 zp=ep+PE(p)z_p=e_p+PE(p): epe_p to embedding tokena na pozycji pp, a PE(p)PE(p) zależy od pozycji.

W dwuwymiarowej ilustracji wzoru sinusoidalnego PE(0)=[0;1]PE(0)=[0;1], a PE(1)[0,841;0,540]PE(1)\approx[0{,}841;0{,}540]. 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.