Rotary Position Embedding
Rotary Position Embedding (RoPE) wprowadza informację o pozycji przez obracanie par współrzędnych query i key przed obliczeniem ich iloczynu skalarnego w attention. Dla każdej pary kąt zależy od pozycji tokena i ustalonej częstotliwości.
W przeciwieństwie do dodawania wektora w oryginalnym Positional Encoding, tutaj zmienia się orientacja query i key. Dla dwuwymiarowej pary obrót o kąt daje:
Obrót zachowuje długość wektora. Su et al., RoFormer, §3.1–3.2 wyprowadzają konstrukcję i składają wiele takich par z różnymi częstotliwościami.
Przesuń oba tokeny i sprawdź wynik
Jeśli nieobrócone query i key pozostają stałe, to:
i to pozycje, a kąt przypadający na jednostkę odległości dla danej pary. Wynik zależy od różnicy pozycji. Wspólne przesunięcie obu pozycji obraca strzałki, ale zachowuje ich iloczyn skalarny.
Własny przykład używa i umownego . Przy odległości 1 iloczyn wynosi około 0,866; przy 6 wynosi −1, a przy 12 ponownie 1. To jedna para i celowo prosta częstotliwość, nie pełna receptura modelu. Oryginalna praca dla pary o indeksie używa radianów.
Pokazany wynik jest składnikiem obliczenia Scaled Dot-Product Attention, przed skalowaniem i Softmax. Nie jest prawdopodobieństwem. W tym wariancie rotujemy Q i K; V nie wymaga tego obrotu. RoPE nie zastępuje Causal Masking.
Powrót pojedynczej pary do tej samej orientacji pokazuje też, dlaczego nie wolno zakładać, że każdy wynik maleje monotonicznie z odległością. Własność względnych pozycji sama nie dowodzi poprawnego działania całego modelu dla dowolnie długiego tekstu.
Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.