Back to archive
#ai#llm#glossary#aigen

Rotary Position Embedding

Model porównuje fragmenty tekstu, ale potrzebuje wiedzieć również, jak daleko od siebie leżą. „Wczoraj” obok czasownika może pełnić inną rolę niż to samo słowo w odległym cytacie. Jak włączyć pozycję do porównania liczbowych opisów?

Rotary Position Embedding (RoPE) obraca pary liczb w query i key zgodnie z pozycją tokena, czyli kawałka tekstu. Query i key są wektorami — listami liczb porównywanymi w attention.

Wyobraź sobie dwie strzałki o określonych długościach. Pozycja ustala ich kąt obrotu. Przy porównaniu znaczenie ma różnica kątów, a więc różnica pozycji. W rzeczywistym modelu obraca się wiele par z różnymi częstotliwościami.

To analogia operacji na liczbach, a nie ruch tekstu w pamięci. RoPE nie zakazuje dostępu do przyszłości i nie gwarantuje dobrego działania poza długościami znanymi z treningu. Różni się od dodawania sygnału pozycji w oryginalnym Positional Encoding.

Mechanizm i szczegóły

W przeciwieństwie do dodawania wektora w oryginalnym Positional Encoding, tutaj zmienia się orientacja query i key. Dla dwuwymiarowej pary u=(a,b)u=(a,b) obrót o kąt ϕ\phi daje:

R(ϕ)u=(acos⁡ϕ−bsin⁡ϕ, asin⁡ϕ+bcos⁡ϕ)R(\phi)u=(a\cos\phi-b\sin\phi,\ a\sin\phi+b\cos\phi)

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:

(R(mθ)q)⊤R(nθ)k=q⊤R((n−m)θ)k(R(m\theta)q)^\top R(n\theta)k=q^\top R((n-m)\theta)k

mm i nn to pozycje, a θ\theta 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 q=k=(1,0)q=k=(1,0) i umownego θ=30∘\theta=30^\circ. 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 i=0,…,d/2−1i=0,\ldots,d/2-1 używa θi=10000−2i/d\theta_i=10000^{-2i/d} 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.