Visualisierung wie Rotary Position Embeddings (RoPE) relative Positionen durch Vektor-Rotation kodieren
RoPE Rotation zeigt, wie Position als Winkel codiert wird. Jedes 2D-Paar im Embedding wird um einen positionsabhängigen Winkel rotiert. Der Clou: Das Dot-Product zwischen zwei rotierten Vektoren hängt nur von ihrer relativen Position ab – perfekt für Attention.
Diese Animation macht die mathematische Idee von RoPE greifbar. Ergänzt die theoretische RoPE-ALiBi-Übersicht mit einer interaktiven Visualisierung.
RoPE ist das Position Encoding in Llama, Mistral, Qwen und den meisten Open-Source-Modellen. Zu verstehen, wie es funktioniert, erklärt, warum diese Modelle auf 128K+ Tokens erweitert werden können.
Rotary Position Embedding (RoPE) rotiert Vektoren in 2D-Unterräumen basierend auf ihrer Position. Der Schlüssel: Relative Position zwischen zwei Tokens entspricht der Rotationsdifferenz ihrer Embeddings. Dies ermöglicht Zero-Shot-Längen-Extrapolation und wird in Llama, PaLM und GPT-NeoX verwendet.
m: Position des Tokens
θ: Rotationsfrequenz (z.B. 1/100002i/d)
x₀, x₁: 2D-Unterraum des Vektors
Das Skalarprodukt zwischen Query an Position m und Key an Position n:
Hängt nur von der relativen Position (m-n) ab, nicht von absoluten Positionen! Dies ermöglicht Längen-Extrapolation: Wenn das Modell auf 2K Tokens trainiert wurde, funktioniert es oft auch bei 8K+ Tokens.