Kapitel 09 · Kontext · 8 min
Was das Modell erinnert
Das Kontextfenster: perfektes, aber begrenztes Gedächtnis. Warum ChatGPT vergisst und was es kostet.
Das Gedächtnisparadox
Ein LLM hat ein perfektes Gedächtnis — und vergisst trotzdem.
Perfekt, weil alles, was sich in seinem Kontextfenster befindet, sofort mit absoluter Präzision zugänglich ist. Das Modell „erinnert sich nicht ungefähr" daran, was du vor zehn Austauschen gesagt hast: Es sieht es noch, unverändert.
Begrenzt, weil dieses Fenster eine maximale Größe hat. Darüber hinaus verschwinden Tokens — endgültig, ohne Rückstände. Kein schrittweises Verblassen, kein Unschärfeeffekt. Nur: vorhanden oder nicht.
Das erklärt die seltsame Erfahrung, eine Stunde lang mit ChatGPT über ein Projekt zu reden, dann ein neues Gespräch zu öffnen und es den gesamten Kontext „vergessen" zu sehen. Das ist kein Bug — es ist die grundlegende Grenze der Architektur.
Was das Kontextfenster wirklich ist
Das Kontextfenster ist die Anzahl der Tokens, die das Modell auf einmal verarbeiten kann. Alles, was in dieses Fenster eingeht — deine Frage, der Gesprächsverlauf, die Systemanweisungen, die eingefügten Dokumente — wird zusammen in einem Durchgang verarbeitet.
Die ersten Versionen von GPT-3 hatten Fenster von 2.048 Tokens. Heute erreichen manche Modelle 1 Million Tokens. Das ist eine massive Entwicklung, aber sie ändert nicht die Natur des Problems: Es gibt immer eine Grenze.
Und diese Grenze hat direkte Auswirkungen auf die Kosten.
Attention ist teuer
Erinnerst du dich an den Attention-Mechanismus? Jeder Token schaut alle anderen Tokens an, um seine Gewichte zu berechnen. Wenn du n Tokens in deinem Fenster hast, führt Attention n² Operationen durch.
Den Kontext zu verdoppeln verdoppelt nicht die Kosten — er vervierfacht sie.
Bei 1.000 Tokens: 1 Million Operationen.
Bei 2.000 Tokens: 4 Millionen.
Bei 8.000 Tokens: 64 Millionen.
Bei 128.000 Tokens: 16 Milliarden.
Deshalb berechnen Provider per Token ab. Und deshalb kosten lange Gespräche exponentiell mehr als kurze.
Spiel mit dem Fenster
Sende Nachrichten eine nach der anderen. Beobachte, wenn alte Gesprächsrunden aus dem Fenster fallen — das Modell kann nicht mehr darauf zugreifen, selbst wenn du explizit darauf verweist.
Ändere die Fenstergröße, um zu sehen, wie das Vergessen sich beschleunigt oder verlangsamt.
Schiebe den Inhalt: alles, was aus dem Fenster läuft, ist endgültig vergessen. Der Rechenaufwand von Attention wächst in O(n²) mit der Kontextgröße, was den Wettlauf um 1M-Token-Fenster erklärt.
Der KV-Cache, in zwei Worten
Bei jedem neuen Schritt die Attention über alle Tokens neu zu berechnen wäre katastrophal. Die rettende Optimierung heißt KV-Cache: Man hält die bereits gemachten Berechnungen im Speicher und fügt bei jedem Schritt nur die Zeile des neuen Tokens hinzu.
Genau das macht Generierung in Echtzeit möglich — und genau das verbraucht VRAM proportional zur Kontextlänge. Wir kommen in Kapitel 18 ausführlich darauf zurück.
System Prompts und Chat Templates
Wenn du eine Nachricht an ChatGPT oder Claude sendest, ist das, was das Modell empfängt, nicht genau deine Nachricht. Es ist eine sorgfältig formatierte Sequenz, die ungefähr so aussieht:
<|im_start|>system
You are a helpful and concise assistant.
<|im_end|>
<|im_start|>user
What's the capital of France?
<|im_end|>
<|im_start|>assistant
Diese Formatierung — das Chat Template — verwandelt einen Dialog in eine lineare Token-Sequenz, mit speziellen Markierungen, die die Rollen unterscheiden (system, user, assistant). Das ist es, was das Modell beim Fine-Tuning gelernt hat zu erkennen.
Der System Prompt ist eine spezielle Nachricht ganz am Anfang. Er legt das Verhalten, den Ton, die Einschränkungen fest („antworte in JSON", „beantworte niemals Fragen zu Thema X", „du bist ein US-amerikanischer Anwalt für geistiges Eigentum"). Er lebt im Kontextfenster wie alles andere, aber seine Position am Anfang und seine privilegierte Rolle geben ihm mehr Gewicht als gewöhnliche Nachrichten.
Jede Modellfamilie hat ihr eigenes Template: ChatML für OpenAI, [INST]…[/INST] für Llama 2, neuere Varianten für Llama 3 und Claude. Wenn du deinen Dialog von Hand tippst, ohne das richtige Format einzuhalten, verhält sich das Modell schlecht — es wurde darauf trainiert, diese Markierungen zu sehen, und erwartet sie.
Warum die Position im Fenster wichtig ist
Eine überraschende Entdeckung der jüngsten Forschung: LLMs nutzen nicht den gesamten Kontext mit gleicher Effizienz.
Informationen am Anfang und am Ende des Fensters werden besser genutzt als solche in der Mitte. Dieses Phänomen nennt sich „Lost in the Middle" — das Modell neigt dazu, in einem langen Kontext vergrabene Passagen zu ignorieren.
Praktische Konsequenz: Wenn du einen Assistenten mit Referenzdokumenten erstellst, platziere die wichtigsten Informationen am Anfang oder Ende des Prompts, nicht in der Mitte.
Hin zu längeren Fenstern
Forscher erkunden mehrere Wege, Fenster zu erweitern, ohne die Kosten explodieren zu lassen:
- Sparse Attention: Statt alle Tokens anzuschauen, schaut jeder Token nur eine Teilmenge an (nahe oder nach Wichtigkeit ausgewählt).
- Sliding Window Attention: Ein gleitendes Fenster — jeder Token schaut nur seine k nächsten Nachbarn an.
- Flash Attention: Keine Reduktion der Berechnung, sondern eine viel effizientere GPU-Implementierung der exakten Attention.
Aber all diese Techniken haben Kosten in Präzision oder Implementierungskomplexität. Es gibt noch keine perfekte Lösung. Die Details auf der Inferenzseite — und insbesondere, wie sie mit dem KV-Cache interagieren — stehen in Kapitel 18.
Was das für dich ändert
Einige praktische Regeln, die sich daraus ableiten:
Sei präzise in deinen Prompts. Jeder Token im Kontext kostet Speicher und Berechnung. Ein Kontext von 10.000 Tokens kostet weit mehr als zehnmal ein Kontext von 1.000.
Strukturiere deine Dokumente. Wenn du Inhalte einfügst (Notizen, Artikel, Code), filtere und schneide zuerst — klebe keine langen Blöcke ein, von denen 90 % nicht relevant sind.
Nutze kurze Sessions. Für lange, iterative Aufgaben ist es oft besser, ein neues Gespräch mit einer Zusammenfassung des Kontexts zu beginnen, statt ein riesiges Gespräch wachsen zu lassen.
Und wenn du dem Modell Zugang zu sehr großen Informationsmengen geben musst — tausende von Seiten, eine Datenbank — ist das Kontextfenster nicht die richtige Lösung. Das ist der Punkt, wo das nächste Kapitel ins Spiel kommt.
Aktualisiert am