Słownik

Hasło słownika · · 2 min czytania

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.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.