Zurück zum Archiv
#ai#llm#glossary#aigen

Rotary Position Embedding

Das Modell vergleicht Textfragmente, muss aber auch wissen, wie weit sie voneinander entfernt liegen. „Gestern“ neben einem Verb kann eine andere Rolle spielen als dasselbe Wort in einem entfernten Zitat. Wie lässt sich die Position in den Vergleich numerischer Beschreibungen einbeziehen?

Rotary Position Embedding (RoPE) dreht Zahlenpaare in Query und Key entsprechend der Position des Tokens, also eines Textstücks. Query und Key sind Vektoren — Listen von Zahlen, die in Attention verglichen werden.

Stell dir zwei Pfeile mit bestimmten Längen vor. Die Position legt ihren Drehwinkel fest. Beim Vergleich zählt der Unterschied der Winkel und damit der Unterschied der Positionen. Im tatsächlichen Modell werden viele Paare mit unterschiedlichen Frequenzen gedreht.

Das ist eine Analogie für eine Operation auf Zahlen, keine Bewegung des Textes im Speicher. RoPE verbietet keinen Zugang zur Zukunft und garantiert kein gutes Verhalten jenseits der aus dem Training bekannten Längen. Es unterscheidet sich vom Hinzufügen eines Positionssignals im ursprünglichen Positional Encoding.

Mechanismus und Details

Anders als beim Addieren eines Vektors in der ursprünglichen Positionskodierung verändert sich hier die Orientierung von Query und Key. Für das zweidimensionale Paar u=(a,b)u=(a,b) ergibt eine Rotation um ϕ\phi:

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

Die Rotation erhält die Vektorlänge. Su et al., RoFormer, §3.1–3.2 leiten die Konstruktion her und kombinieren viele solcher Paare mit unterschiedlichen Frequenzen.

Verschiebe beide Tokens und prüfe das Ergebnis

Bleiben die unrotierten Queries und Keys fest, gilt:

(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 und nn sind Positionen; θ\theta ist der Winkel pro Abstandseinheit für das jeweilige Paar. Das Ergebnis hängt von der Positionsdifferenz ab. Eine gemeinsame Verschiebung beider Positionen dreht die Pfeile, erhält aber ihr Skalarprodukt.

Das eigene Beispiel verwendet q=k=(1,0)q=k=(1,0) und ein angenommenes θ=30∘\theta=30^\circ. Bei Abstand 1 beträgt das Produkt ungefähr 0,866, bei 6 ist es −1 und bei 12 wieder 1. Dies ist ein einzelnes Paar mit bewusst einfacher Frequenz, keine vollständige Modellrezeptur. Die Originalarbeit verwendet für das Paar mit Index i=0,…,d/2−1i=0,\ldots,d/2-1 den Wert θi=10000−2i/d\theta_i=10000^{-2i/d} Radiant.

Das gezeigte Ergebnis ist ein Bestandteil der Scaled Dot-Product Attention vor Skalierung und Softmax. Es ist keine Wahrscheinlichkeit. In dieser Variante rotieren wir Q und K; V benötigt diese Rotation nicht. RoPE ersetzt keine kausale Maskierung.

Die Rückkehr eines einzelnen Paares zur gleichen Orientierung zeigt auch, warum nicht angenommen werden darf, dass jeder Wert mit dem Abstand monoton abnimmt. Die Eigenschaft relativer Positionen allein beweist keine korrekte Funktion des gesamten Modells für beliebig lange Texte.

Ich verwende KI-generierte Inhalte als Teil meines täglichen Lernprozesses.