Zum Hauptinhalt springen

Kontextfenster & Positionskodierung im Transformer

Die großen Vorteile moderner Transformer-Modelle
#

Die drei wichtigsten Vorteile aktueller LLMs mit Transformer-Architektur:

  • Parallele Verarbeitung: Alle Tokens werden gleichzeitig verarbeitet – nicht Schritt für Schritt.
  • Besseres Textverständnis: Das Modell erkennt komplexe semantische Zusammenhänge.
  • Langer Kontext: Transformer können tausende Tokens gleichzeitig betrachten

Diese Fortschritte ermöglichen Einsatzbereiche, die noch vor wenigen vollkommen Jahren undenkbar waren.

Wie viel Text versteht ein Sprachmodell wirklich?
#

Die Länge des sogenannten Kontextfensters ist ein zentraler Aspekt moderner Sprachmodelle. Ein LLM analysiert alle Tokens im Kontextfenster gleichzeitig und setzt sie miteinander in Beziehung. So kann es den ganzen Text „verstehen“.

💡
Das Kontextfenster ist die maximale Anzahl von Tokens, die ein Modell gleichzeitig analysieren und in Beziehung setzen kann

Je größer dieses Fenster, desto mehr Text kann das Modell auf einmal erfassen – also nicht nur einzelne Wörter und Sätze, sondern sogar ganze Abschnitte oder Kapitel.

Die Größe des Kontextfensters bestimmt maßgeblich das Einsatzgebiet eines Sprachmodells – und ist deshalb ein entscheidender Wettbewerbsfaktor bei der Entwicklung leistungsfähiger LLMs.

In den letzten Jahren hat sich die maximale Kontextlänge massiv erhöht:

Modell Kontextfenster (Tokens) Ca. Seiten Jahr Anbieter
GPT-1 512 < 1 2018 OpenAI
GPT-2 1.024 ~1,5 2019 OpenAI
GPT-3 2.048 ~3 2020 OpenAI
GPT-3.5 4.096 ~5–6 2022 OpenAI
GPT-3.5 Turbo bis 16.384 ~20–25 2023 OpenAI
GPT-4 8.192 / 32.768 ~10 / ~40 2023 OpenAI
GPT-4 Turbo 128.000 ~160 2023 OpenAI
Claude 1 ~9.000 (geschätzt) ~12 2023 Anthropic
Claude 2 100.000 ~130 2023 Anthropic
Claude 3 200.000 ~260 2024 Anthropic
Gemini 1.5 1.000.000 ~1.300+ 2024 Google DeepMind
LLaMA 2 4.096 ~5–6 2023 Meta
LLaMA 3 8.192 – 32.000 ~10–40 2024 Meta
Mistral 7B 8.192 ~10 2023 Mistral.ai
Mixtral (MoE) 32.768 ~40 2023 Mistral.ai
Command R+ 128.000 ~160 2024 Cohere

In der Tabelle erkennt man deutlich: Einige Modelle haben das Kontextfenster beinahe explosionsartig erweitert. Diese Vergrößerung wird jedoch häufig durch technische Workarounds oder Speichertricks erreicht – denn tatsächlich liegt die effektiv nutzbare Kontexttiefe bei den meisten Modellen weiterhin im Bereich von einigen Tausend Tokens.

Aber - wo befindet sich nun welches Token?
#

Die parallele Verarbeitung bringt ein Problem mit sich, das serielle Modelle wie RNNs nicht kennen:
Die Reihenfolge der Tokens im Kontext.

Beispiel:

  • Der Hund biss den Briefträger.
  • Der Briefträger biss den Hund.

Beide Sätze enthalten genau die gleichen Wörter – aber die Reihenfolge der Wörter verändert die Bedeutung vollkommen.

Transformer müssen also wissen: An welcher Position steht jedes Token?

Dieses Problem war auch Vaswani und seinem Team bewusst:
Ein Transformer verarbeitet alle Tokens gleichzeitig – kennt dabei aber nicht die Reihenfolge, in der sie im Satz standen.

Daher musste eine Methode gefunden werden, dem Modell Positionsinformationen mitzugeben:
Es muss wissen, an welcher Stelle im Satz sich ein Token ursprünglich befand.

Positional Encoding
#

Dazu wird jedem Token eine Positionsangabe hinzugefügt.
Das kann entweder statisch erfolgen – über eine feste Zahl für jede Position –
oder das Modell lernt selbst, wie es sich die Position merken kann – mithilfe einer internen Tabelle.

Doch das Problem ist jedoch etwas komplexer, als es erstmals klingt:
Es genügt nicht, dem Token einfach eine Zahl mitzugeben – wie z.B. Position 1, 2, 3 …
denn die Position muss sich auch in den Embeddings widerspiegeln, also in den einzelnen Merkmalsdimensionen, die das Modell intern verarbeitet. Nur so kann das Modell lernen, wie sich semantische Beziehungen ändern, wenn die Tokens an unterschiedlichen Positionen im Satz stehen.

💡
Da das Modell Tokens parallel verarbeitet, muss ihre Position in den Embeddings enthalten sein, damit es erfassen kann, wie sich Bedeutungen durch unterschiedliche Anordnungen verändern.

Vaswani wählte dafür eine sehr elegante Lösung: Das sogenannte Sinusoidal Position Encoding – auch als „Vaswani-Methode“ bekannt.

„Vaswani-Methode“
#

Die Idee:
Jede Position im Satz wird mithilfe von Sinus- und Kosinus-Funktionen in unterschiedliche Werte umgewandelt – separat für jede Dimension im Embedding.
So entsteht ein einzigartiges Wellenmuster, das die Position codiert – mathematisch unterscheidbar für jedes Token und jede Dimension im Embedding.

$$ PE_{(pos, i)} = \begin{cases} \sin\left(\frac{pos}{10000^{\frac{2i}{d}}}\right), & \text{für gerade } i \\ \cos\left(\frac{pos}{10000^{\frac{2i}{d}}}\right), & \text{für ungerade } i \end{cases} $$ wobei:

  • ( pos ): Position im Satz
  • ( i ): Index der Dimension
  • ( d ): Dimension des Embeddings

Die exakte Formel ist weniger entscheidend – wichtig ist: Man kann erkennen, dass die Positionskodierung je nach Position im Satz und Embedding-Dimension variiert. Dabei wechseln sich Sinus- und Kosinus Funktionen ab und beginnen mit versetzten Phasen – so entsteht für jede Position ein eindeutiges, unterscheidbares Wellenmuster.

💡
Bei der “Vaswani-Methode” entstehen Positionskodierungen durch sinus- und kosinus-basierte Muster, die je nach Position und Dimension variieren – so wird jede Position eindeutig unterscheidbar.

Die folgende interaktive Grafik zeigt die Positionskodierung im Detail – du kannst sie selbst steuern und erkunden.

Das Positions-Encoding wird einfach zum Vektor des Tokens addiert – also zu jedem einzelnen Embedding. Dadurch verschiebt sich die Lage des Tokens im Merkmalsraum leicht, sodass das LLM erkennen kann, an welcher Stelle im Satz das Token ursprünglich stand.

Moderne Methoden wie RoPE
#

Neuere Modelle verwenden eine verfeinerte Form der Positionskodierung – etwa RoPE (Rotary Positional Encoding).
Dabei wird nicht das Token selbst im Merkmalsraum verschoben, sondern die Art der Betrachtung des Tokens leicht gedreht. RoPE ist eine relative, aber fest definierte Positionskodierung – sie integriert die Abstände zwischen Tokens direkt in die Berechnung, statt absolute Positionen zu kodieren.

Das zugrunde liegende Prinzip bleibt jedoch gleich:
Die Positions-Information muss dem Modell mitgegeben werden – sonst kann es die Reihenfolge der Tokens nicht erfassen.


© 2025 Oskar Kohler. Alle Rechte vorbehalten.
Hinweis: Der Text wurde manuell vom Autor verfasst. Stilistische Optimierungen, Übersetzungen sowie einzelne Tabellen, Diagramme und Abbildungen wurden mit Unterstützung von KI-Tools vorgenommen.