Transformer
Eine revolutionäre neuronale Netzwerk-Architektur, die auf dem Attention-Mechanismus basiert und die Grundlage für moderne Sprachmodelle wie GPT und BERT bildet.
Eine Technik, die Transformern die Position von Tokens in einer Sequenz mitteilt – notwendig, weil Attention allein keine Reihenfolge kennt.
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, ...]
...
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
| Methode | Beschreibung | Verwendet in |
|---|---|---|
| Sinusoidal | Feste Sinus/Cosinus | Original Transformer |
| Learned | Trainierbare Embeddings | BERT, GPT-2 |
| RoPE | Rotationen im Embedding-Raum | Llama, Mistral |
| ALiBi | Attention-Bias statt Embedding | MPT, Falcon |
# 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.
Training: 4K Tokens
Inference: 32K Tokens möglich?
Mit RoPE + Position Interpolation:
-> Ja, mit leichtem Qualitätsverlust
-> "YaRN", "NTK-aware" verbessern das weiter Positional Encoding ist wie Seitenzahlen in einem Buch: Der Text allein sagt nicht, welche Seite zuerst kommt. Die Seitenzahlen (Positionen) geben die Reihenfolge vor.
Transformer-Attention ist positions-agnostisch – braucht explizite Positionsinfo
Ursprünglich: Sinusförmige Funktionen (feste Positionen)
Modern: RoPE, ALiBi für bessere Längen-Generalisierung
Alle Transformer-Modelle
GPT, BERT, Llama – alle brauchen Positionsinformation
Lange Kontexte
RoPE ermöglicht Generalisierung auf längere Sequenzen
Relative Positionen
ALiBi für effiziente relative Positionsberechnung
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.
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.
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.