Kontextfenster
Alles, was ein Sprachmodell in einem Moment sehen kann. Was nicht drinsteht, gibt es für das Modell nicht.
Das Kontextfenster ist die maximale Menge an Tokens, die ein Modell auf einmal verarbeiten kann – Systemanweisungen, Gesprächsverlauf, angehängte Dateien und die Antwort, die es gerade schreibt.
Es ist das einzige Arbeitsgedächtnis des Modells. Heute fassen große Modelle Hunderttausende bis rund eine Million Tokens. Ein Gedächtnis über das Fenster hinaus gibt es nicht – nur Tricks, die passende Inhalte wieder hineinlegen.
Was hineinkommt
Bei jeder Anfrage wird ein einziger langer Text zusammengesetzt und dem Modell übergeben. Darin steht typischerweise:
- Systemprompt – Anweisungen des Anbieters oder der App, die du meist nicht siehst.
- Werkzeuge – Beschreibungen von Funktionen wie Websuche, falls das Modell sie benutzen darf.
- Gesprächsverlauf – alle bisherigen Fragen und Antworten.
- Dateien und Ergebnisse – angehängte Dokumente, Suchergebnisse, Code.
- Platz für die Antwort – auch die Ausgabe muss ins Fenster passen.
Füll ein Fenster selbst und schau, was passiert, wenn es voll wird:
Wie groß ist groß?
Die Fenster sind in den letzten Jahren enorm gewachsen. Zum Einordnen, grob gerechnet mit 700 Tokens pro Seite deutschem Text:
| Fenster | entspricht etwa | Beispiel |
|---|---|---|
| 4 000 | 6 Seiten | frühe Chat-Modelle |
| 128 000 | 180 Seiten | ein Sachbuch |
| 200 000 | 285 Seiten | ein Roman |
| 1 000 000 | 1 400 Seiten | mehrere Bücher oder eine mittelgroße Codebasis |
Die genaue Größe hängt vom Modell und oft auch vom Tarif ab. Für die Ausgabe gibt es meist eine eigene, deutlich kleinere Obergrenze – ein Modell kann also ein ganzes Buch lesen, aber nicht unbedingt ein ganzes Buch am Stück schreiben.
Kein Gedächtnis: jede Anfrage beginnt bei null
Das Modell selbst merkt sich nichts zwischen zwei Anfragen. Dass ein Chat trotzdem zusammenhängend wirkt, liegt daran, dass die App bei jeder neuen Nachricht den kompletten bisherigen Verlauf erneut mitschickt. Das hat eine Folge, die man leicht übersieht: Lange Gespräche werden mit jeder Runde teurer.
Anbieter mildern das mit Prompt-Caching: Der unveränderte Anfang einer Anfrage wird zwischengespeichert und günstiger berechnet. Am Prinzip ändert das nichts – das Modell bekommt trotzdem jedes Mal alles vorgelegt.
Warum es überhaupt eine Grenze gibt
Der Grund liegt in der Aufmerksamkeit, dem Kernmechanismus der Transformer: Jedes Token wird mit jedem vorherigen Token verglichen. Bei n Tokens sind das rund n² / 2 Vergleiche – die Arbeit wächst also quadratisch.
Doppelt so langer Text heißt also etwa viermal so viel Rechenarbeit für die Aufmerksamkeit. Dazu kommt Speicher: Für jedes Token im Fenster hält das Modell Zwischenergebnisse vor (den sogenannten KV-Cache), und der wächst mit jedem Token. Moderne Modelle nutzen viele Optimierungen, um beides zu drücken – aber Länge kostet immer Rechenzeit, Speicher und Geld.
Groß heißt nicht perfekt
Dass etwas im Fenster steht, heißt nicht, dass das Modell es gleich gut beachtet. Eine viel zitierte Studie von 2023 („Lost in the Middle“) zeigte: Informationen am Anfang und am Ende eines langen Kontexts wurden deutlich zuverlässiger genutzt als solche in der Mitte.
Praktische Folgen:
- Wichtiges gehört an den Anfang oder ans Ende – etwa die eigentliche Frage nach einem langen Dokument.
- Weniger, aber passendes Material schlägt oft „einfach alles hineinkippen“.
- In sehr langen Gesprächen lohnt manchmal ein Neustart mit einer kurzen Zusammenfassung.
Wie Anwendungen tricksen
Weil das Fenster endlich ist und das Modell kein Gedächtnis hat, bauen Anwendungen drumherum. Vier verbreitete Strategien:
Abschneiden
Das Älteste fällt heraus. Einfach, aber frühe Infos sind weg.
Zusammenfassen
Alter Verlauf wird zu einer kurzen Zusammenfassung verdichtet. Details gehen verloren, der rote Faden bleibt.
Nachschlagen (RAG)
Große Dokumentmengen liegen in einer Datenbank; zur Frage werden nur die passenden Stücke gesucht und eingefügt. „Retrieval-Augmented Generation“.
Erinnerungen
Funktionen wie „Memory“ speichern Notizen aus früheren Gesprächen und legen sie zu Beginn wieder ins Fenster. Das Modell selbst erinnert sich nicht.
Für Entwickler übersetzt
| Begriff | Entspricht ungefähr |
|---|---|
| Kontextfenster | maximale Länge der Eingabeliste – wie ein Puffer fester Größe |
| Zustandslosigkeit | wie ein stateless REST-Endpunkt: Der Session-State liegt beim Client, nicht beim Server |
| Systemprompt | Konfiguration, die vor jede Anfrage gehängt wird |
| max_tokens | Obergrenze für die Antwortlänge; muss zusätzlich ins Fenster passen |
| KV-Cache | Memoization: schon berechnete Zwischenwerte früherer Tokens werden nicht neu berechnet |
| RAG | vor dem Aufruf eine Datenbank-Abfrage, deren Treffer in den Prompt eingefügt werden |
// So sieht ein Chat aus Sicht der API aus (Pseudocode)
List<Nachricht> verlauf = new ArrayList<>();
void frage(String text) {
verlauf.add(new Nachricht("user", text));
String antwort = api.senden(systemprompt, verlauf); // IMMER der komplette Verlauf
verlauf.add(new Nachricht("assistant", antwort));
}
// Den Zustand hält dein Code – nicht das Modell.
// Wird verlauf zu lang: abschneiden, zusammenfassen oder Fehler.