EMZETT.
Login

Positionscodierung und RoPE

Kurz: Attention kennt von sich aus keine Reihenfolge. Positionscodierung gibt jedem Token Information darüber, wo es steht. Heute verbreitet ist RoPE, das Vektoren abhängig von der Position dreht.

Genauer: Ohne Position wären „Hund beißt Mann“ und „Mann beißt Hund“ für Attention dieselbe Menge von Wörtern.

Im Detail

  • Sinus-Codierung: Das Original (2017) addiert Sinus- und Kosinuswellen unterschiedlicher Frequenz zum Embedding.
  • Gelernte Positionen: Ein Vektor je Position (GPT-2). Begrenzt auf die Trainingslänge.
  • RoPE (Rotary Position Embedding): Dreht Q und K paarweise um einen positionsabhängigen Winkel. Das Skalarprodukt hängt dann nur vom Abstand der Tokens ab. Standard bei Llama, Qwen, Mistral u. a.
  • ALiBi: Zieht einen Strafwert proportional zum Abstand von den Attention-Werten ab.
  • Längenerweiterung: Modelle sind auf eine Länge trainiert. Mit Tricks (Position Interpolation, NTK, YaRN) streckt man RoPE auf längere Kontexte, oft mit kurzem Nachtraining.
  • Folge: Die nutzbare Kontextlänge ist nicht nur Speicherfrage, sondern hängt vom Training ab, siehe kontextfenster.

Siehe auch: Self-Attention im Detail, kontextfenster