Back to archive
#ai#llm#glossary#aigen

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 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=qR((nm)θ)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/21i=0,\ldots,d/2-1 używa θi=100002i/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.