Robocikowo>ROBOCIKOWO
Architektura

Sinusoidal PE

2017HistorycznyOpublikowano: 9 czerwca 2026Aktualizacja: 9 czerwca 2026Opublikowany
Sinusoidal Positional Encoding to oryginalna metoda kodowania pozycji z pracy „Attention Is All You Need" (Vaswani et al., 2017). Do każdego embeddingu wejściowego dodawany jest wektor zbudowany z par sinus/cosinus o coraz niższych częstotliwościach, dzięki czemu Transformer rozróżnia kolejność tokenów bez korzystania z rekurencji ani konwolucji.
Kluczowa innowacja
Wprowadza informację o pozycji tokenu do Transformera za pomocą deterministycznych funkcji sinus/cosinus o geometrycznie malejących częstotliwościach, bez żadnych uczonych parametrów — pierwszy mechanizm pozwalający architekturze bezsekwencyjnej („all attention") rozumieć kolejność tokenów.
Kategoria
Architektura
Poziom abstrakcji
Primitive
Poziom operacji
ModelTreningInferencja
Zastosowania
Oryginalny Transformer (Vaswani et al., 2017) i jego wczesne pochodneBERT-base/large (zastąpione później Learned PE w niektórych implementacjach)Wczesne Vision Transformers oraz wiele modeli tłumaczeniowychDydaktyczne implementacje Transformera — kanoniczna baseline'owa metoda kodowania pozycji

Jak działa

Dla pozycji pos i wymiaru i embeddingu o szerokości d_model definiuje się: PE(pos, 2i) = sin(pos / 10000^(2i/d_model)) oraz PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model)). Wymiary parzyste otrzymują sinus, nieparzyste cosinus, a długość fali rośnie geometrycznie od 2π do 2π·10000 wraz z indeksem wymiaru. Tak zbudowany wektor jest dodawany (a nie konkatenowany) do embeddingu tokenu na samym wejściu modelu, przed pierwszym blokiem attention. Kluczowa właściwość: dla dowolnego k istnieje liniowa transformacja przekształcająca PE(pos) w PE(pos+k), dzięki czemu model może łatwo nauczyć się uwagi na pozycje względne, mimo że kodowanie jest absolutne. Encoding jest stały i raz wyliczany — nie ma żadnych parametrów do uczenia.

Rozwiązany problem

Transformer, w odróżnieniu od RNN i CNN, jest z natury permutacyjnie niezmienniczy względem tokenów wejścia — bez dodatkowej informacji o pozycji wszystkie tokeny są dla niego „workiem słów". Sinusoidal Positional Encoding rozwiązuje ten problem najprostszym możliwym sposobem: deterministyczną funkcją pozycji, której nie trzeba uczyć i która działa dla dowolnej długości sekwencji znanej w czasie pretreningu.

Implementacja

Pułapki implementacyjne
Pomyłka między PE jako addytywne a konkatenowaneŚrednia

Sinusoidal PE w oryginalnej pracy jest dodawane do embeddingu, nie konkatenowane. Konkatenacja wymagałaby zmiany d_model i zaburza ustaloną strukturę projekcji query/key/value.

Rozwiązanie:Trzymać się addytywnej formy: x_in = token_emb + PE.
Założenie silnej ekstrapolacji długościWysoka

Mimo że PE jest dobrze zdefiniowane dla dowolnego pos, modele trenowane na długości L w praktyce słabo działają na L' >> L — wzorce attention nigdy nie były widziane przy takich pozycjach.

Rozwiązanie:Dla long-context używać RoPE + YaRN/LongRoPE lub ALiBi zamiast sinusoidal PE.
Niespójność scaling token_emb vs PEWysoka

W oryginalnej pracy embedding tokenu jest mnożony przez sqrt(d_model) przed dodaniem PE, żeby zachować rząd wielkości obu sygnałów. Pominięcie tego skalowania jest częstym błędem dydaktycznych implementacji i znacząco pogarsza trening.

Rozwiązanie:Mnożyć token embedding przez sqrt(d_model) przed dodaniem PE zgodnie z wzorem oryginalnej pracy.

Ewolucja

Oryginalny paper · 2017 · NeurIPS 2017 · Ashish Vaswani
Attention Is All You Need
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin
2017
Wprowadzenie Sinusoidal PE w „Attention Is All You Need"
Punkt przełomowy

Vaswani et al. publikują Transformera i wraz z nim deterministyczne sinusoidalne kodowanie pozycji. Autorzy porównują je z learned PE — uzyskują niemal identyczne wyniki, ale wybierają sinusoidal jako prostsze i ekstrapolujące na większe długości.

2018
Learned Positional Encoding w BERT i GPT

BERT (Devlin et al., 2018) i GPT (Radford, 2018) wybierają uczone embeddingi pozycji zamiast sinusoidalnych — uzyskują bardzo zbliżone wyniki kosztem braku ekstrapolacji poza długość treningu.

2018
Relative Position Representations (Shaw et al.)

Shaw et al. (Google) wprowadzają relatywne kodowania pozycji — pokazują, że jawne modelowanie odległości między tokenami daje lepsze wyniki niż absolutne PE w wielu zadaniach NLP.

2021
RoPE i ALiBi — odejście od absolutnego PE

RoPE (Su et al.) oraz ALiBi (Press et al.) zastępują dodawalne sinusoidalne/learned PE: RoPE rotuje pary wymiarów, ALiBi dodaje liniowy bias w attention. Oba lepiej radzą sobie z długim kontekstem niż klasyczne sinusoidal PE — to początek schyłku oryginalnej metody w nowych dużych LLM.

2023
Sinusoidal PE jako historyczna baseline

W nowych dużych LLM (Llama 2/3, Qwen, DeepSeek, Mistral) Sinusoidal PE jest praktycznie wyparte przez RoPE. Pozostaje w użyciu w starszych modelach, dydaktyce i prostszych Transformerach (np. małe modele audio/wizja).

Hiperparametry (konfigurowalne osie)

Embedding width (d_model)Krytyczna

Szerokość embeddingu, równa szerokości wektora PE. W oryginalnej pracy d_model = 512.

512Oryginalny Transformer (Vaswani 2017)
768 / 1024 / 4096Typowe szerokości w modelach GPT/BERT/LLM
Base wavelength (10000)Średnia

Podstawa potęgi w wzorze: pos / base^(2i/d_model). W oryginalnej pracy 10000 — wybrana empirycznie. Zmiana wpływa na zakres długości fal i pośrednio na zdolność do reprezentacji pozycji.

Max precomputed sequence lengthNiska

Liczba pozycji, dla których PE jest wyliczane z góry i cache'owane. Implementacyjny detal — sama funkcja jest dobrze zdefiniowana dla dowolnego pos.

Paradygmat wykonania

Tryb główny
Gęsty

Sinusoidal PE jest dodawany do każdego embeddingu wejściowego — operacja gęsta, deterministyczna, bez routingu.

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

Poziom równoległości
W pełni równoległy

Encoding jest deterministyczną funkcją pozycji — całą macierz PE można wyliczyć raz przy inicjalizacji i reużywać. Brak jakichkolwiek zależności sekwencyjnych.

Zakres
TreningInferencjaPomiędzy tokenami

Wymagania sprzętowe

Podstawowe

Sinusoidal PE to czysto matematyczna, deterministyczna operacja — precompute raz przy inicjalizacji, w runtime tylko dodawanie. Działa identycznie na każdym hardware.