Positional Encoding

Eine Technik, die Transformern die Position von Tokens in einer Sequenz mitteilt – notwendig, weil Attention allein keine Reihenfolge kennt.

Experte2 Min Lesezeit

Erklärung starten

Auf einen Blick

3 Punkte

  1. Transformer-Attention ist positions-agnostisch – braucht explizite Positionsinfo
  2. Ursprünglich: Sinusförmige Funktionen (feste Positionen)
  3. Modern: RoPE, ALiBi für bessere Längen-Generalisierung

Sofortantwort

Positional Encoding einfach erklärt

Gibt Transformern Information über Token-Positionen.

Kurz gesagt
Transformer-Attention ist positions-agnostisch – braucht explizite Positionsinfo
Typischer Einsatz
Alle Transformer-Modelle, Lange Kontexte, Relative Positionen
Wichtig zu wissen
Modern: RoPE, ALiBi für bessere Längen-Generalisierung

Positional Encoding im Überblick

Positional Encoding sagt dem Transformer, wo jedes Token in der Sequenz steht. Ohne diese Information wäre “Hund beißt Mann” identisch zu “Mann beißt Hund” – die Reihenfolge ginge verloren.

Das Problem:

Attention berechnet: Wie relevant ist Token A für Token B?
Aber: Attention ist symmetrisch und positions-agnostisch!

"Der Hund beißt den Mann"
"Der Mann beißt den Hund"
-> Ohne Positionen: Gleiche Attention-Muster 😱

Die Lösung:

Token-Embedding + Positional Encoding = Finales Embedding

"Der"  + Position 1 = [0.2, 0.5, ...] + [0.0, 0.1, ...]
"Hund" + Position 2 = [0.8, 0.3, ...] + [0.1, 0.2, ...]
...

Technisch betrachtet

Sinusförmiges Encoding (Original)

PE(pos, 2i) = sin(pos / 10000^(2i/d))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d))

pos = Position in Sequenz
i = Dimension
d = Embedding-Dimension

Varianten

MethodeBeschreibungVerwendet in
SinusoidalFeste Sinus/CosinusOriginal Transformer
LearnedTrainierbare EmbeddingsBERT, GPT-2
RoPERotationen im Embedding-RaumLlama, Mistral
ALiBiAttention-Bias statt EmbeddingMPT, Falcon

RoPE (Rotary Position Embedding)

# Vereinfacht: Position als Rotation
def apply_rope(x, position):
    # Rotationsmatrix basierend auf Position
    cos_pos = cos(position * theta)
    sin_pos = sin(position * theta)
    
    # Rotation anwenden
    x_rotated = x * cos_pos + rotate(x) * sin_pos
    return x_rotated

Vorteil: Relative Positionen werden durch Rotation natürlich kodiert. Generalisiert besser auf längere Sequenzen.

Kontextlängen-Erweiterung

Training: 4K Tokens
Inference: 32K Tokens möglich?

Mit RoPE + Position Interpolation:
-> Ja, mit leichtem Qualitätsverlust
-> "YaRN", "NTK-aware" verbessern das weiter

01Einsatzbereiche

Wann ist Positional Encoding sinnvoll?

Geeignet für

  • Alle Transformer-ModelleGPT, BERT, Llama – alle brauchen Positionsinformation
  • Lange KontexteRoPE ermöglicht Generalisierung auf längere Sequenzen
  • Relative PositionenALiBi für effiziente relative Positionsberechnung

↑ Inhalt

02Werkzeuge

Womit Positional Encoding umgesetzt wird

↑ Inhalt

Merksatz

Positional Encoding ist wie Seitenzahlen in einem Buch

Der Text allein sagt nicht, welche Seite zuerst kommt. Die Seitenzahlen (Positionen) geben die Reihenfolge vor.

  1. Transformer-Attention ist positions-agnostisch – braucht explizite Positionsinfo
  2. Ursprünglich: Sinusförmige Funktionen (feste Positionen)
  3. Modern: RoPE, ALiBi für bessere Längen-Generalisierung

04Redaktion

Herkunft und Stand

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Dieses Feld entwickelt sich schnell. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald die Erklärung nach ihrer letzten Änderung geprüft wurde.

↑ Inhalt

05FAQ

Häufige Fragen zu Positional Encoding

Warum brauchen Transformer Positional Encoding?

Attention berechnet Beziehungen zwischen allen Token-Paaren, aber ohne Reihenfolge. 'Der Hund beißt den Mann' und 'Der Mann beißt den Hund' hätten ohne Positionen die gleiche Attention. Positional Encoding gibt die Reihenfolge.

Was ist RoPE und warum ist es besser?

RoPE (Rotary Position Embedding) kodiert Positionen als Rotationen im Embedding-Raum. Vorteil: Bessere Generalisierung auf längere Sequenzen als im Training gesehen. Wird in Llama, Mistral und vielen modernen LLMs verwendet.

Begrenzt Positional Encoding die Kontextlänge?

Bei gelernten Positional Embeddings ja – das Modell kennt nur trainierte Positionen. RoPE und ALiBi können besser auf längere Sequenzen generalisieren, aber auch mit Grenzen.

↑ Inhalt

06Weiterlernen

Was möchtest du als Nächstes verstehen?

  • Grundlage nachholen

    Transformer

    Neuronale Netzwerk-Architektur, die moderne Sprachmodelle unterstützt.

  • Technisch vertiefen

    Attention Mechanism

    Mechanismus zur Fokussierung auf relevante Eingabeteile.

↑ Inhalt