Kapitel 7
Webausgabe 2026.1 · aktualisiert am 4. August 2026
Attention und der Transformer
Einen Bezug auflösen heißt frühere Tokens betrachten
Nehmen wir den Satz „Die Katze, die auf dem Sofa schlief, schnurrte“. Beim letzten Wort ist eine frühere Information wichtig. Wer schnurrte? Die Katze, nicht das Sofa. Der Abstand zwischen „Katze“ und „schnurrte“ ändert daran nichts.
Aus Kapitel 6 kennst du den Ausgangspunkt. Jede Token-ID wählt einen festen Embedding-Vektor. Dieser Grundvektor allein kennt den konkreten Satz noch nicht. Die Darstellung von „schnurrte“ muss deshalb Informationen aus den vorherigen Positionen aufnehmen. Erst dann kann eine spätere Rechnung den Bezug nutzen.
Vor dem Transformer verarbeiteten viele Sprachsysteme eine Folge Schritt für Schritt. Solche Netze heißen Recurrent Neural Networks, kurz RNNs. Long Short-Term Memory, kurz LSTM, ergänzte gesteuerte Speicherwege. LSTM-Modelle waren in den 2010er Jahren unter anderem bei Übersetzung und anderen Aufgaben mit Textfolgen wichtig.
Die schrittweise Verarbeitung hatte einen praktischen Nachteil. Der Zustand an Position acht hing erst von Position sieben ab. Position sieben brauchte vorher Position sechs. Dadurch ließ sich eine einzelne Folge beim Training schlecht parallel verarbeiten. Lange Bezüge mussten außerdem durch viele aufeinanderfolgende Zustände wandern.
2017 veröffentlichten Ashish Vaswani und seine Kollegen das Papier Attention Is All You Need. Darin stellten sie den Transformer für maschinelle Übersetzung vor. Seine zentrale Rechnung verbindet Positionen über Attention. Beim Training lassen sich die Positionen einer vorhandenen Folge weitgehend gleichzeitig bearbeiten. Beim Erzeugen bleibt die Ausgabe trotzdem schrittweise, weil jedes neue Token von den bisherigen Tokens abhängt.
Diese Gewichtungsrechnung bezeichnet keine menschliche Aufmerksamkeit. Das Modell richtet keinen bewussten Blick auf „Katze“ und versteht den Satz nicht auf menschliche Weise. Es berechnet neue Vektoren aus anderen Vektoren.
Der Rechenweg beginnt mit drei Rollen, die im nächsten Abschnitt einzeln definiert werden.
Query, Key und Value sind gelernte Projektionen
Stell dir vor, du suchst in einem internen Dokumentenbestand nach einer Vertragsnummer. Deine Suchanfrage wird mit Einträgen im Register verglichen. Ein passender Eintrag verweist auf den Inhalt, den du brauchst.
In diesem Bild entspricht die Suchanfrage der Query, der Registereintrag dem Key und der abrufbare Inhalt dem Value.
Im Transformer hat jede Tokenposition eine aktuelle Darstellung. In der ersten Schicht stammt sie aus Token-Embedding und Positionsinformation. In späteren Schichten ist sie bereits das Ergebnis vorheriger Blöcke. Aus derselben aktuellen Darstellung entstehen drei neue Vektoren:
- Query, kurz Q: die Vergleichsrolle der aktuellen Position
- Key, kurz K: die Vergleichsrolle einer möglichen Quellposition
- Value, kurz V: die Information, die eine Quellposition beitragen kann
Die drei Vektoren werden nicht aus einer Datenbank gelesen. Gelernte Matrizen berechnen sie. Eine solche Multiplikation heißt lineare Projektion. Das Training passt die Projektionsmatrizen zusammen mit den anderen Modellgewichten an.
Für eine Position mit dem Vektor x lauten die drei Schritte vereinfacht:
- Q = x × WQ
- K = x × WK
- V = x × WV
WQ, WK und WV sind die gelernten Matrizen. Deshalb ist Q keine in Worten formulierte Frage. K ist kein beschriftetes Schlagwort. V ist auch keine unveränderte Kopie des Tokens. Alle drei sind Zahlenlisten in gelernten Räumen.
Jede Position erzeugt alle drei Rollen. „Katze“ besitzt also ebenfalls Query, Key und Value. Welche Rolle gerade gebraucht wird, hängt von der folgenden Rechnung ab. Für die neue Darstellung von „schnurrte“ wird dessen Query mit den erlaubten Keys verglichen. Die zugehörigen Values liefern anschließend die Mischung.
Ähnlichkeitswerte und gewichtete Mischungen
Nehmen wir für „schnurrte“ drei vereinfachte Vergleichswerte an. Der Key von „Katze“ erhält 2,4. „Sofa“ erhält 0,3 und „schlief“ 1,1. Diese drei Zahlen sind bereits skalierte Scores, also die Werte nach der Division durch die Quadratwurzel der Key-Breite.
Ein roher Score entsteht aus dem Skalarprodukt von Query und Key. Dabei multipliziert die Rechnung passende Stellen beider Vektoren und addiert die Ergebnisse. Ein hoher Wert bedeutet in diesem Kopf und dieser Schicht eine starke rechnerische Übereinstimmung. Er ist keine allgemeine Skala für sprachliche Ähnlichkeit.
Sehr große Skalarprodukte können die nächste Rechnung ungünstig machen. Deshalb teilt die sogenannte Scaled Dot-Product Attention jeden rohen Score durch die Quadratwurzel der Key-Breite. Scaled bedeutet hier skaliert. Dot Product ist das englische Wort für Skalarprodukt.
Danach wandelt Softmax die erlaubten Scores in positive Gewichte um. Softmax ist eine Funktion, die größere Werte betont und alle Gewichte einer Zeile so normiert, dass sie zusammen eins ergeben. Aus 2,4, 0,3 und 1,1 könnten vereinfacht 0,72, 0,09 und 0,19 werden.
Nun multipliziert die Rechnung jeden Value mit seinem Gewicht. Die gewichteten Values werden addiert. Das Ergebnis ist wieder ein Vektor. In unserem Beispiel trägt der Value von „Katze“ stärker zur neuen Darstellung von „schnurrte“ bei als der Value von „Sofa“.
Ein Gewicht von 0,72 bedeutet dabei weder 72 Prozent Verständnis noch 72 Prozent Sicherheit. Es beschreibt nur den Anteil dieser Value-Mischung für eine Query in einem bestimmten Kopf. Andere Köpfe und spätere Schichten berechnen andere Gewichte.

Abbildung 5: Das Bild zeigt ein vereinfachtes Beispiel mit einem Kopf. Die gestrichelten Linien führen von der Query zu drei früheren Keys. Die Linienstärken unter den Values stehen für beispielhafte Gewichte. Die tatsächlichen Werte entstehen erst im trainierten Modell und lösen allein keine Grammatikregel.
Self-Attention und die kausale Maske
Self-Attention bedeutet, dass Query, Keys und Values aus derselben Tokenfolge stammen. Jede Position kann dadurch Informationen aus anderen erlaubten Positionen derselben Folge aufnehmen. „Self“ bezeichnet also die gemeinsame Quelle der Vektoren. Es bedeutet kein Selbstbewusstsein.
Ein erzeugendes Sprachmodell soll das nächste Token vorhersagen. Beim Training steht dieses Token zwar bereits im Text. Die Rechnung darf es aber noch nicht sehen. Sonst könnte sie die gesuchte Antwort einfach aus der Zukunft übernehmen.
Dafür gibt es die kausale Maske. Eine Maske ist hier ein Sperrmuster für unzulässige Vergleiche. Bei Position fünf bleiben die Positionen eins bis fünf sichtbar. Die Positionen sechs und später werden vor Softmax mit einem praktisch unendlich negativen Score belegt. Nach Softmax erhalten sie das Gewicht null.
Kausal heißt in diesem Zusammenhang nur: Die Vorhersage einer Position verwendet keine späteren Tokens. Der Begriff behauptet nicht, dass das Modell Ursache und Wirkung in der Welt erkannt hat.
Beim Training kann das System die maskierten Rechnungen für viele Positionen gleichzeitig ausführen. Die Maske sorgt trotzdem dafür, dass jede Position nur ihren erlaubten Ausschnitt nutzt. Beim Antworten ist die Situation anders. Das Modell erzeugt ein neues Token, hängt es an die Folge und berechnet danach das nächste. Diesen Unterschied zwischen paralleler Verarbeitung einer vorhandenen Folge und schrittweiser Ausgabe brauchst du später für die Latenz.
Nicht jeder Transformer verwendet dieselbe Blickrichtung. Ein Encoder kann eine vollständige Eingabe in beide Richtungen verarbeiten. Ein Decoder für Textgenerierung nutzt kausale Self-Attention. Die ursprüngliche Architektur von 2017 verband einen Encoder mit einem Decoder und ergänzte im Decoder eine Attention auf die Encoder-Ausgabe.
Mehrere Attention-Köpfe
Nehmen wir wieder „schnurrte“. Für den grammatischen Bezug kann „Katze“ wichtig sein. Ein anderer Vergleich könnte das unmittelbar vorherige Verb „schlief“ betreffen. Wieder ein anderer könnte Satzzeichen oder wiederholte Muster erfassen.
Ein einzelner Satz Gewichte müsste all diese Beziehungen in dieselbe Mischung pressen. Der Transformer berechnet deshalb mehrere Attention-Köpfe parallel. Ein Kopf ist eine eigene Attention-Rechnung mit einem schmaleren Query-, Key- und Value-Raum.
Bei klassischer Multi-Head Attention hat jeder Kopf eigene Projektionsgewichte. Dadurch können die Köpfe unterschiedliche Vergleichsmuster lernen. Ihre Aufgaben werden ihnen aber nicht als Grammatikregeln zugewiesen. Sie entstehen während des Trainings und können sich überschneiden.
Am Ende werden die Ausgaben aller Köpfe aneinandergefügt. Eine weitere gelernte Matrix projiziert diese Verbindung zurück auf die Breite der Token-Darstellung. Die nächste Rechnung erhält damit pro Position wieder genau einen Vektor.
Manche Köpfe zeigen wiederkehrende Muster und gewichten etwa Trennzeichen oder bereits gesehene Folgen. Daraus folgt keine feste Stellenbeschreibung. Residual-Pfade, MLPs und spätere Blöcke verändern ihr Ergebnis weiter.
Positionsinformationen
Nehmen wir zwei Folgen mit denselben Tokens: „Hund beißt Mann“ und „Mann beißt Hund“. Ohne Information über die Reihenfolge würde reine Self-Attention dieselben Inhalte vergleichen. Das Modell könnte nicht zuverlässig unterscheiden, welches Token zuerst stand.
Deshalb ergänzt ein Transformer Positionsinformationen. Sie machen die Stelle eines Tokens oder den Abstand zwischen Stellen für die Rechnung nutzbar. Dafür gibt es mehrere Verfahren.
Der Transformer von 2017 addierte ein fest berechnetes Muster aus Sinus- und Kosinuswerten zu den Eingabe-Embeddings. Andere Modelle lernten für jede mögliche Position einen eigenen Vektor. Beide Verfahren verändern die Darstellung vor den ersten Blöcken.
Viele spätere Sprachmodelle verwenden Rotary Position Embeddings, kurz RoPE. Dabei werden Teile von Query und Key abhängig von ihrer Position gedreht. Das Skalarprodukt kann dadurch relative Abstände berücksichtigen. RoPE dreht nicht den dauerhaften Grundvektor in der Embedding-Tabelle. Es wirkt innerhalb der Attention-Rechnung auf die Vergleichsvektoren.
Es gibt keine einzige Positionsmethode für alle Transformer. Das erlaubte Kontextfenster hängt außerdem von Training, Daten und Ausführung ab.
Positionsinformationen sagen der Rechnung, wo ein Token steht. Sie garantieren nicht, dass das Modell einen langen Bezug richtig nutzt.
Ein Transformer-Block: Attention, Residual-Pfad, Normalisierung und MLP
Nehmen wir eine Folge aus 20 Tokens. Jeder Token hat in einem gedachten Modell eine Darstellung mit 4.096 Zahlen. Die Self-Attention mischt für jede Position Informationen aus erlaubten anderen Positionen. Danach verarbeitet ein zweiter Teil jede Position einzeln weiter.
Dieser zweite Teil heißt Feedforward-Block oder MLP. MLP steht für Multi-Layer Perceptron, auf Deutsch mehrschichtiges Perzeptron. In der ursprünglichen Architektur bestand er aus zwei linearen Projektionen mit einer nichtlinearen Funktion dazwischen. Viele spätere Modelle verwenden gegatete Varianten wie SwiGLU. Gegatet bedeutet, dass eine gelernte Teilrechnung steuert, wie stark eine andere Teilrechnung weitergegeben wird.
Das künstliche Neuron aus der Grundidee neuronaler Netze steckt hier in großen Matrixrechnungen. Eingaben werden mit Gewichten multipliziert und addiert. Eine nichtlineare Funktion verhindert, dass viele Schichten zusammen nur eine einzige lineare Umformung ergeben. Der MLP-Block verwendet an jeder Tokenposition dieselben Gewichte, bearbeitet die Positionen aber getrennt.
Attention bewegt Informationen zwischen Positionen. Das MLP verarbeitet die entstandene Darstellung innerhalb jeder Position. Diese Trennung ist nützlich, aber nicht absolut. Wissen oder eine Fähigkeit sitzt nicht sauber nur in einem der beiden Teile.
Zwei weitere Bausteine halten den tiefen Rechenweg trainierbar. Der erste heißt Residual Connection, auf Deutsch Residual-Verbindung. Sie addiert den Eingang eines Teilblocks zu dessen Ergebnis. Vereinfacht lautet das: Ausgabe = Eingang + Veränderung. So bleibt ein direkter Pfad erhalten, während der Teilblock vor allem eine passende Änderung lernen kann.
Der zweite Baustein ist die Normalisierung. Layer Normalization bringt die Werte einer Token-Darstellung anhand ihrer eigenen Merkmale auf eine kontrollierte Größenordnung. RMSNorm ist eine einfachere Variante ohne Abzug des Mittelwerts. Welche Normalisierung ein Modell verwendet, gehört zur jeweiligen Architektur.
Auch die Reihenfolge unterscheidet sich. Im Original von 2017 lag die Normalisierung nach dem jeweiligen Residual-Schritt. Das nennt sich Post-Norm. Viele spätere Modelle normalisieren vor Attention und MLP. Diese Anordnung heißt Pre-Norm und ist im folgenden Bild dargestellt.
Ein Pre-Norm-Block läuft vereinfacht so:
- Die Eingabe wird normalisiert und durch Self-Attention verarbeitet.
- Der erste Residual-Pfad addiert die unveränderte Eingabe hinzu.
- Das Zwischenergebnis wird normalisiert und durch das MLP verarbeitet.
- Der zweite Residual-Pfad addiert das Zwischenergebnis hinzu.
Dropout kann beim Training zufällig Zwischenwerte ausblenden und gegen Überanpassung helfen. Überanpassung heißt auf Englisch Overfitting. Das Modell passt dann immer besser zu seinen Trainingsbeispielen, wird auf neuen Fällen aber schlechter. Dropout gehört nicht zwingend zu jedem Sprachmodell und ist bei der Nutzung ausgeschaltet.

Abbildung 6: Links ist ein Pre-Norm-Block mit zwei Residual-Pfaden dargestellt. Rechts zeigt das Bild den Stapel vieler Blöcke. Die Addition der Positionsinformation steht für die ursprüngliche Transformer-Variante und andere additive Verfahren. Bei RoPE wirkt die Position stattdessen innerhalb der Attention auf Query und Key. Jeder Block erhält eine Folge von Vektoren und gibt eine Folge mit derselben Länge und Modellbreite weiter.
Gestapelte Blöcke erzeugen tiefere Darstellungen
Ein Block löst den Satzbezug nicht verlässlich allein. Sein Ergebnis fließt in den nächsten Block. Dort entstehen neue Queries, Keys und Values aus den bereits veränderten Darstellungen. Mit jedem Block kann Information erneut verbunden und weiterverarbeitet werden.
Folgenlänge und Modellbreite bleiben im Stapel normalerweise gleich. Die Werte ändern sich. Aus dem Startvektor für „Bank“ wird eine kontextabhängige Darstellung. In „schnurrte“ können Informationen aus „Katze“ einfließen.
Tiefe bedeutet hier viele aufeinanderfolgende Blöcke. Sie bedeutet nicht, dass untere Schichten nur Grammatik und obere Schichten nur Planung erledigen. Untersuchungen finden zwar unterschiedliche Schwerpunkte. Fähigkeiten verteilen sich aber über Köpfe, MLPs, Residual-Pfade und mehrere Schichten.
Transformer werden in drei grobe Familien eingeteilt. Die Tabelle nennt typische Nutzungen, keine festen Grenzen:
| Aufbau | Sichtbarer Kontext | Typische Nutzung | Beispiel |
|---|---|---|---|
| Nur Encoder | links und rechts in der Eingabe | Darstellungen und Klassifikation | BERT |
| Nur Decoder | aktuelle und frühere Positionen | Text erzeugen | GPT |
| Encoder und Decoder | vollständige Quelle, kausale Ausgabe | Übersetzung und Textumformung | ursprünglicher Transformer, T5 |
Die Architektur von 2017 verwendete Encoder und Decoder für Übersetzung. Viele generative Sprachmodelle nutzen nur einen Decoder-Stapel mit kausaler Self-Attention. BERT ist ein bekanntes Encoder-Modell. T5 verwendet wieder Encoder und Decoder. Der Aufbau legt den Rechenweg fest. Er legt nicht allein fest, welche Produktaufgabe ein trainiertes System später erfüllen kann.
Gegenüber einem RNN verkürzt Self-Attention den Rechenweg zwischen weit entfernten Positionen. Beim Training einer vorhandenen Folge lassen sich viele Positionen parallel berechnen. Diese Eigenschaften halfen beim Training größerer Modelle. Lange Folgen bleiben trotzdem teuer, und die Ausgabe neuer Tokens bleibt nacheinander.
Technischer Tiefgang: Softmax, Matrixformen, KV-Cache, GQA und FlashAttention
Bis hierhin reichte eine einzelne Position. In der tatsächlichen Ausführung werden viele Positionen und Köpfe zu Matrizen zusammengefasst. Dabei bleibt die Rechnung dieselbe und erhält nur zusätzliche Zeilen, Spalten und Köpfe.
Nennen wir die Zahl der Tokens n und die Breite jeder Darstellung dModell. Die Eingabe X hat dann die Form n × dModell. Eine Stapeldimension für mehrere Anfragen lasse ich hier weg. Sie ändert das Grundprinzip nicht.
Bei h Query-Köpfen und einer Kopfbreite dK berechnen große Projektionsmatrizen alle Queries gemeinsam. Vereinfacht entstehen diese Formen:
- X: n × dModell
- Q: n × h × dK
- K: n × h × dK
- V: n × h × dV
Bei klassischer Multi-Head Attention besitzen K und V ebenso viele Köpfe wie Q. Häufig gilt dK = dV und h × dV = dModell. Das ist eine übliche Aufteilung, aber kein Naturgesetz für jede Architektur.
Innerhalb eines Kopfes wird Q mit dem quer gestellten K multipliziert. Quer gestellt bedeutet, dass Zeilen und Spalten getauscht werden. Aus n × dK und dK × n entsteht eine Score-Matrix mit n × n Feldern. Jedes Feld verbindet eine Query-Position mit einer Key-Position.
Die vollständige Rechnung eines Kopfes lässt sich so zusammenfassen:
Attention(Q, K, V) = Softmax((Q × Kᵀ) / √dK + Maske) × V
Die Maske sperrt die Zukunft. Softmax arbeitet zeilenweise. Jede Zeile gehört zu einer Query und wird zu einer Gewichtsverteilung über ihre erlaubten Keys. Die Multiplikation mit V ergibt n neue Vektoren. Danach werden die Ergebnisse der Köpfe verbunden und über eine Ausgabematrix wieder auf dModell projiziert.
Die n × n Score-Matrix erklärt den hohen Aufwand dichter Self-Attention. Verdoppelst du die Länge einer vorhandenen Folge, vervierfacht sich ungefähr die Zahl der möglichen Positionspaare. Andere Teile des Blocks wachsen nur linear mit n. Bei üblichen Modellbreiten können diese linearen Matrixrechnungen trotzdem einen großen Teil der Laufzeit beanspruchen.
Beim Antworten kommt ein Zwischenspeicher hinzu. Er heißt KV-Cache und enthält die Keys und Values früherer Tokens für jeden Transformer-Block. Cache bedeutet Zwischenspeicher. Das System verarbeitet zuerst die vollständige Eingabe. Diese Phase heißt Prefill. Dabei berechnet es die Keys und Values aller Eingabetokens und legt sie ab.
In der anschließenden Decode-Phase entsteht jeweils ein neues Token. Für dieses Token berechnet jeder Block eine neue Query, einen neuen Key und einen neuen Value. Die Query wird mit den gespeicherten Keys und dem neuen Key verglichen. Danach hängt das System neuen Key und Value an den Cache.
Frühere Queries werden normalerweise nicht gespeichert. Für den nächsten Schritt braucht das Modell die neue Query und die alten Keys und Values. Der Cache spart also wiederholte Projektionen der gesamten Vergangenheit. Er beseitigt aber nicht den Vergleich mit der wachsenden Folge. Pro erzeugtem Token müssen immer mehr gespeicherte Werte gelesen werden.
Der vereinfachte Speicherbedarf pro Anfrage lässt sich abschätzen:
2 × Schichten × Tokens × KV-Köpfe × Kopfbreite × Bytes je Zahl
Die Zwei steht für Keys und Values. Nehmen wir 32 Schichten, 32 KV-Köpfe, eine Kopfbreite von 128, 8.192 Tokens und zwei Bytes je Zahl. Daraus entstehen ungefähr vier Gibibyte KV-Cache für eine einzige Folge. Laufzeitdaten und Speicherverwaltung kommen noch hinzu. Zehn gleichzeitige Anfragen können entsprechend ein Vielfaches benötigen.
Multi-Query Attention, kurz MQA, lässt alle Query-Köpfe dieselben Keys und Values verwenden. Grouped-Query Attention, kurz GQA, liegt dazwischen. Mehrere Gruppen von Query-Köpfen teilen sich jeweils einen Key- und Value-Kopf. Im Beispiel würden acht statt 32 KV-Köpfen den groben Cache von vier auf ein Gibibyte senken. Die tatsächliche Qualität und Geschwindigkeit hängen vom trainierten Modell und der Hardware ab.
Eine weitere Optimierung heißt FlashAttention. Sie ändert nicht die gelernte Attention-Funktion. Der Algorithmus berechnet die exakte dichte Attention in kleinen Kacheln und hält passende Zwischenwerte im schnellen Speicher des Chips. Dadurch muss er die vollständige n × n Matrix nicht mehrfach in den langsameren Hauptspeicher der GPU schreiben und wieder lesen.
FlashAttention reduziert Speicherbewegungen und gespeicherte Zwischenwerte. Die Zahl der Skalarprodukte dichter Attention bleibt in ihrer Größenordnung quadratisch.
Was die Analogie auslässt
Das Bild von Anfrage, Register und Inhalt hilft bei Query, Key und Value. Nimm es aber nicht wörtlich. Eine Bibliothek hat beschriftete Bücher und eine absichtliche Suche. Ein Attention-Kopf hat gelernte Zahlenräume und eine feste Matrixrechnung.
Die Query formuliert keine Frage in natürlicher Sprache. Der Key beschreibt den Value nicht wie ein sauberer Katalogeintrag. Das Modell holt auch nicht einen einzelnen passenden Absatz. Es mischt alle erlaubten Values mit ihren Gewichten. Selbst kleine Beiträge können sich über Köpfe und Schichten weiter auswirken.
Attention-Gewichte sind deshalb keine vollständige Erklärung einer Ausgabe. Ein hohes Gewicht zeigt, dass ein Value in dieser Rechnung stark einging. Es zeigt nicht allein, warum das fertige Modell ein bestimmtes Wort erzeugte. Untersuchungen konnten bei manchen Aufgaben sehr unterschiedliche Gewichtsverteilungen mit ähnlichen Vorhersagen verbinden. Für eine belastbare Erklärung musst du den ganzen Rechenweg und gezielte Eingriffe betrachten.
Attention ist auch keine menschliche Aufmerksamkeit. Das Modell entscheidet nicht bewusst, worauf es sich konzentriert. Es hat kein inneres Leseerlebnis. Aus der Rechnung allein folgen weder Bewusstsein noch menschliches Verstehen.
Ein großes Kontextfenster hebt diese Grenzen nicht auf. Kontextfenster bedeutet die maximale Zahl an Tokens, die das System in einer Anfrage und ihrer Antwort verarbeiten kann. Darin kann sehr viel Text Platz finden. Das Modell nutzt aber nicht automatisch jede Stelle gleich zuverlässig.
Beim sogenannten Lost-in-the-Middle-Effekt werden relevante Informationen in der Mitte langer Eingaben bei bestimmten Modellen und Aufgaben schlechter genutzt als Informationen am Anfang oder Ende. Neuere Architekturen und Trainingsverfahren können bei einzelnen Tests besser abschneiden. Die angegebene Höchstlänge bleibt trotzdem eine Kapazitätsgrenze, kein Qualitätsversprechen.
Dichte Self-Attention hat außerdem den quadratischen Vergleichsaufwand. Darum werden andere Rechenwege erforscht. Mamba ist ein Zustandsraummodell mit einer gelernten Auswahl dafür, welche Informationen durch einen kompakten Zustand weitergegeben werden. Reine Mamba-Modelle können Folgen mit linear wachsendem Aufwand verarbeiten und brauchen bei der schrittweisen Ausgabe keinen mit der Folge wachsenden KV-Cache.
Der feste Zustand ist zugleich ein Engpass. Attention kann frühere Keys und Values direkt vergleichen. Ein Zustandsraummodell muss wichtige Information rechtzeitig in seinem begrenzten Zustand bewahren. Hybride verbinden deshalb Zustandsblöcke mit einzelnen Attention-Schichten. Ob solche Architekturen Transformer in bestimmten Anwendungen ersetzen, hängt von Aufgabe, Qualität und Ausführung ab.
Die einfache Analogie erklärt eine lokale Rechnung. Das Verhalten des ganzen Modells entsteht aus vielen Rechnungen, gelernten Gewichten und Trainingsdaten.
Kontextlänge wird zur Betriebsfrage
Nehmen wir einen Assistenten für Verträge. Eine Anfrage enthält 60 Seiten Richtlinien, drei Verträge und eine kurze Frage. Das System muss zuerst den gesamten Eingabetext verarbeiten. Erst danach erscheint das erste Antworttoken.
Diese erste Wartezeit heißt Time to First Token, kurz TTFT. Lange Eingaben erhöhen den Prefill-Aufwand. Danach beeinflussen die bisherige Kontextlänge, der KV-Cache und die Speicherbandbreite die Geschwindigkeit jedes weiteren Tokens. Eine Angabe wie „80 Tokens pro Sekunde“ sagt deshalb wenig, wenn sie Promptlänge, Zahl gleichzeitiger Anfragen und Hardware verschweigt.
Für den eigenen Betrieb brauchst du Speicher für zwei große Bereiche. Die Modellgewichte belegen einen weitgehend festen Betrag. Der KV-Cache wächst dagegen mit Kontextlänge und gleichzeitigen Folgen. Ein Modell kann einzeln gut auf eine GPU passen und bei 30 langen Anfragen trotzdem am Cache scheitern.
Architekturdetails werden dadurch zu Betriebsdetails. GQA oder MQA können den Cache deutlich verkleinern. FlashAttention kann Prefill und Training auf unterstützter Hardware beschleunigen. DeepSeek-V2 beschreibt mit Multi-Head Latent Attention, kurz MLA, einen weiteren Weg zur Kompression der gespeicherten Attention-Darstellungen. Das jeweilige Papier belegt die Architektur. Ob deine Laufzeit die erwartete Ersparnis erreicht, musst du mit eurem Modell und eurer Hardware messen.
Ein sehr großes Kontextfenster ist ebenfalls keine Unternehmensablage. Der Inhalt einer Anfrage wird nicht automatisch zu dauerhaftem Modellwissen. Nach der Sitzung kann die Anwendung ihn verwerfen, als Verlauf speichern oder erneut laden. Das hängt vom Produkt und seiner Konfiguration ab.
Für wiederkehrende Richtlinien ist es oft sinnvoller, passende Abschnitte gezielt bereitzustellen. Eine Suche oder RAG-Anwendung kann die für eine Frage relevanten Quellen auswählen. Dadurch sinken häufig Eingabelänge und Ablenkung. Berechtigungen müssen schon vor der Auswahl greifen. Ein großes Kontextfenster ersetzt keine Zugriffskontrolle.
Prüfe lange Kontexte mit euren echten Aufgaben. Verstecke eine relevante Klausel an verschiedenen Stellen. Ergänze ähnliche, aber falsche Klauseln. Miss, ob das System die richtige Quelle findet, zitiert und anwendet. Ein Test mit einer einzigen gut sichtbaren Information reicht nicht.
Für die Bereitstellung sind vier Messungen besonders nützlich:
- Wie lange dauert es bis zum ersten Token bei typischen und sehr langen Eingaben?
- Wie schnell folgen weitere Tokens bei wachsendem Kontext?
- Wie viele gleichzeitige Anfragen passen in den verfügbaren Speicher?
- Wie zuverlässig nutzt das Modell relevante Stellen an Anfang, Mitte und Ende?
Bei einer Programmierschnittstelle betreibt und dimensioniert der Anbieter diese Infrastruktur, gibt aber nicht immer alle Details preis. Du misst weiterhin Latenz, Durchsatz und Fehler unter eurer tatsächlichen Last. Beim eigenen Betrieb kannst du Modell, Quantisierung, Cache-Verwaltung und Hardware selbst wählen. Dafür trägst du Kapazitätsplanung, Aktualisierungen und Ausfallsicherheit.
Die passende Entscheidung entsteht aus Qualität, Latenz, Durchsatz, Datenschutz und Kosten. Eine größere Kontextzahl auf dem Datenblatt beantwortet keine dieser Fragen allein.
Verfolge den Rechenweg
Du kannst den Rechenweg nun an sechs Fragen prüfen:
- Warum reicht der feste Embedding-Vektor einer Token-ID für einen konkreten Satz nicht aus?
- Wie entstehen Query, Key und Value aus der aktuellen Darstellung einer Position?
- Was bewirken Skalarprodukt, Skalierung, kausale Maske, Softmax und Value-Mischung nacheinander?
- Warum braucht ein Transformer Positionsinformationen und mehrere Köpfe?
- Welche Aufgaben haben Attention, MLP, Residual-Pfad und Normalisierung in einem Block?
- Warum senkt der KV-Cache Rechenarbeit, erhöht aber den Speicherbedarf langer und gleichzeitiger Anfragen?
Die kurze Fassung lautet so: Jede Tokenposition beginnt mit einer Zahlenliste. Gelernte Projektionen erzeugen daraus Queries, Keys und Values. Vergleiche zwischen Queries und erlaubten Keys ergeben Gewichte. Diese Gewichte mischen Values zu neuen Darstellungen. Mehrere Köpfe berechnen verschiedene Mischungen. Positionsinformationen machen Reihenfolge und Abstand nutzbar.
Ein Transformer-Block verbindet diese Attention mit einem MLP. Residual-Pfade erhalten einen direkten Weg durch den Stapel. Normalisierung kontrolliert die Größenordnungen. Viele Blöcke verändern die Darstellungen immer wieder. Bei der schrittweisen Ausgabe bewahrt der KV-Cache frühere Keys und Values auf.
Die Architektur steht damit fest. Sie legt den Rechenweg aus Projektionen, Vergleichen, Mischungen und Blöcken fest. Vor dem Training enthalten ihre Matrizen aber nur Ausgangswerte. Erst gelernte Gewichte machen diesen Rechenweg nützlich. Ohne Training verbindet die Query von „schnurrte“ noch kein brauchbares Muster mit „Katze“. Auch der MLP enthält noch keine hilfreichen Muster.
Kapitel 8 betrachtet deshalb das Pretraining. Dort sagt ein Fehlerwert dem System, wie schlecht seine nächste Tokenvorhersage war. Backpropagation berechnet daraus Änderungen für WQ, WK, WV, die MLP-Gewichte und alle weiteren Gewichte. Aus sehr vielen kleinen Änderungen entsteht erst das Sprachmodell, das diesen Rechenweg sinnvoll nutzen kann.