Decoder
Ein Sprachmodell erhält einen Textanfang und erzeugt daraus die Fortsetzung. Es liest die bisherigen Wörter, berechnet das wahrscheinlichste nächste Wort und hängt es an. Diesen Vorgang wiederholt es Wort für Wort. Die Architektur, die das ermöglicht, heißt Decoder.
Grundprinzip: Text entsteht Wort für Wort
Ein Decoder arbeitet autoregressiv. Das bedeutet: Er erzeugt jeweils ein Wort (genauer: ein Token), fügt es an den bisherigen Text an und verwendet das erweiterte Ergebnis als Eingabe für den nächsten Schritt. In jedem Schritt sieht das Modell nur den bisherigen Kontext, nie den zukünftigen Text.
Beispiel: Die Eingabe lautet "Erkläre, was ein Vektor ist." Der Decoder erzeugt zunächst "Ein", dann "Vektor", dann "ist", dann "eine" und so weiter. Bei jedem Schritt berechnet er eine Wahrscheinlichkeitsverteilung über das gesamte Vokabular und wählt daraus das nächste Token.
Beispiel: Bei der Eingabe "Berlin ist die Hauptstadt von" weist ein Decoder dem Token "Deutschland" die höchste Wahrscheinlichkeit zu. Das Modell hat während des Trainings gelernt, dass diese Wortfolge statistisch am plausibelsten ist.
Dieses Vorgehen unterscheidet den Decoder grundlegend vom Encoder. Ein Encoder verarbeitet den gesamten Text gleichzeitig und erzeugt eine interne Repräsentation. Ein Decoder erzeugt neuen Text, Token für Token, von links nach rechts.
Warum der Decoder nur rücwärts sehen darf
Während des Trainings kennt das Modell die vollständige Zielsequenz. Ohne Einschränkung könnte es einfach die Antwort ablesen, anstatt die Vorhersage zu lernen. Deshalb verwendet der Decoder eine kausale Maske (causal mask): Bei Position n werden alle Positionen ab n+1 blockiert. Das Modell muss jedes Token aus dem vorangehenden Kontext ableiten.
Beispiel: Der Satz "Die Katze sitzt auf der Matte" hat sechs Positionen. Bei Position 4 ("auf") sieht das Modell nur "Die Katze sitzt auf". Die Tokens "der" und "Matte" sind maskiert. So lernt das Modell, das nächste Wort allein aus dem bisherigen Verlauf vorherzusagen.
Technisch wird die Maskierung über eine Dreiecksmatrix realisiert. In der Attention-Berechnung wird die obere Dreiecksmatrix mit dem Wert negativ unendlich gefüllt. Nach der Softmax-Funktion werden diese Positionen zu null. Das Modell kann sie nicht mehr "sehen".
Beispiel: In einem Satz mit fünf Tokens enthält die Attention-Matrix 25 Felder (5 mal 5). Die kausale Maske setzt 10 davon auf null, die gesamte obere Dreiecksmatrix. Token 1 sieht nur sich selbst. Token 2 sieht Token 1 und 2. Token 5 sieht alle fünf.
Fachliche Einordnung: Die kausale Maskierung ermöglicht es, während des Trainings alle Positionen gleichzeitig zu berechnen (teacher forcing), obwohl das Modell zur Inferenzzeit sequenziell arbeitet. Ohne diesen Mechanismus wäre das Training erheblich langsamer, da jede Position einzeln berechnet werden müsste.
Aufbau eines Decoder-Blocks
Ein Decoder besteht aus gestapelten, identisch aufgebauten Blöcken. Jeder Block enthält zwei zentrale Komponenten: eine maskierte Self-Attention-Schicht und ein Feed-Forward-Netzwerk. Zwischen den Komponenten stehen Layer-Normalization und Residualverbindungen (Skip-Connections).
Die Self-Attention-Schicht bestimmt, wie stark jedes Token auf die vorangehenden Tokens achten soll. Das Feed-Forward-Netzwerk transformiert die resultierenden Repräsentationen. Die Residualverbindungen sorgen dafür, dass Informationen aus früheren Schichten nicht verloren gehen.
Beispiel: GPT-3 verwendet 96 solcher Decoder-Blöcke mit jeweils 96 Attention-Heads. Jeder Block verarbeitet die Ausgabe des vorherigen Blocks. Die Token-Repräsentationen werden dadurch Schicht für Schicht verfeinert.
Der Decoder im Transformer
Die ursprüngliche Transformer-Architektur aus dem Paper "Attention Is All You Need" (2017) besteht aus einem Encoder und einem Decoder. Der Encoder verarbeitet die Eingabe (etwa einen Satz in Deutsch). Der Decoder erzeugt daraus die Ausgabe (den übersetzten Satz in Englisch). Zusätzlich zur maskierten Self-Attention enthält jeder Decoder-Block in dieser Variante eine Cross-Attention-Schicht, die auf die Encoder-Ausgabe zugreift.
Beispiel: Bei einer Übersetzung von "Der Hund schläft" nach "The dog sleeps" erzeugt der Encoder eine Repräsentation des deutschen Satzes. Der Decoder liest über Cross-Attention diese Repräsentation und erzeugt "The", dann "dog", dann "sleeps". Bei jedem Schritt entscheidet die Cross-Attention, welche Teile der Eingabe relevant sind.
Spätere Modelle zeigen, dass der Encoder nicht zwingend nötig ist. Die GPT-Reihe verwendet ausschließlich Decoder-Blöcke ohne Cross-Attention. Diese sogenannten "Decoder-only"-Modelle erhalten Eingabe und Aufgabe als gemeinsame Sequenz und erzeugen die Antwort am Ende dieser Sequenz.
Beispiel: Ein Decoder-only-Modell erhält die Eingabe "Frage: Was ist die Hauptstadt von Frankreich? Antwort:" als zusammenhängenden Text. Es erzeugt dann "Paris" als Fortsetzung. Eingabe und Ausgabe liegen in derselben Sequenz, getrennt lediglich durch Formatierung.
Unterschied zum Encoder
Der zentrale Unterschied liegt in der Blickrichtung. Ein Encoder sieht bei jeder Position den gesamten Text. Ein Decoder sieht nur den Text bis zur aktuellen Position. Das hat direkte Konsequenzen für die Einsatzgebiete.
Ein Encoder eignet sich für Aufgaben, bei denen der gesamte Text bereits vorliegt: Klassifikation, Sentimentanalyse, Embedding-Berechnung. Ein Decoder eignet sich für generative Aufgaben: Textfortsetzung, Übersetzung, Zusammenfassung, Dialog.
Beispiel: Für die Frage "Ist diese Rezension positiv oder negativ?" eignet sich ein Encoder wie BERT. Er liest die gesamte Rezension und gibt eine Klassifikation aus. Für die Aufgabe "Schreibe eine Produktbeschreibung für dieses Bild" eignet sich ein Decoder, der Text Wort für Wort erzeugt.
Es gibt auch Hybridansätze. T5 (Text-to-Text Transfer Transformer) nutzt Encoder und Decoder gemeinsam. Der Encoder liest die Eingabe, der Decoder erzeugt die Ausgabe. Jede Aufgabe wird als Text-zu-Text-Problem formuliert.
Beispiel: T5 erhält die Eingabe "translate English to German: The house is big" und erzeugt "Das Haus ist groß". Dieselbe Architektur kann auch Zusammenfassungen, Fragen und Klassifikationen erzeugen, indem die Aufgabe jeweils als Textpräfix formuliert wird.
Steuerung der Textgenerierung
Der Decoder erzeugt in jedem Schritt eine Wahrscheinlichkeitsverteilung über alle Tokens im Vokabular. Wie daraus ein konkretes Token ausgewählt wird, bestimmen verschiedene Strategien.
Greedy Search wählt immer das Token mit der höchsten Wahrscheinlichkeit. Das Ergebnis ist deterministisch, aber oft repetitiv. Beam Search verfolgt mehrere Kandidaten parallel und wählt die Sequenz mit der höchsten Gesamtwahrscheinlichkeit. Sampling wählt zufällig aus der Verteilung, was zu abwechslungsreicherem Text führt.
Beispiel: Für den Kontext "Die beste Programmiersprache für" könnte die Verteilung so aussehen: "Anfänger" (18 Prozent), "Webentwicklung" (15 Prozent), "maschinelles" (12 Prozent), "Datenanalyse" (9 Prozent). Greedy Search wählt "Anfänger". Sampling könnte "Datenanalyse" wählen und damit einen anderen Textverlauf einleiten.
Der Temperature-Parameter skaliert die Wahrscheinlichkeitsverteilung vor der Auswahl. Niedrige Werte (0.1 bis 0.3) machen die Verteilung spitzer: Das wahrscheinlichste Token dominiert. Hohe Werte (0.8 bis 1.5) glätten die Verteilung: Auch weniger wahrscheinliche Tokens werden häufiger gewählt.
Beispiel: Mit Temperature 0.1 erzeugt ein Modell auf dieselbe Eingabe fast immer denselben Text. Mit Temperature 1.2 variiert der Text stark zwischen Durchläufen. Für faktenbasierte Aufgaben (Zusammenfassungen, Code) sind niedrige Werte sinnvoll. Für kreative Aufgaben (Geschichten, Brainstorming) sind höhere Werte geeignet.
Wie ein Decoder trainiert wird
Das Trainingsverfahren für einen Decoder heißt Next-Token-Prediction. Das Modell erhält eine Textsequenz und soll für jede Position das nächste Token vorhersagen. Die kausale Maske stellt sicher, dass es dabei nicht vorausschauen kann.
Die Verlustfunktion ist Cross-Entropy: Sie misst, wie stark die vorhergesagte Wahrscheinlichkeitsverteilung von der tatsächlichen Verteilung (dem richtigen Token) abweicht. Der Optimizer (meist Adam oder AdamW) passt die Modellgewichte an, um diesen Verlust zu minimieren.
Beispiel: Das Trainingsbeispiel enthält den Text "Paris ist die Hauptstadt von Frankreich". Für Position 5 ("von") soll das Modell "Frankreich" vorhersagen. Wenn es stattdessen "Deutschland" vorhersagt (mit hoher Wahrscheinlichkeit), ist der Cross-Entropy-Verlust hoch und die Gewichte werden entsprechend angepasst.
Große Decoder-Modelle trainieren auf Hunderten von Milliarden Tokens. GPT-3 wurde auf circa 300 Milliarden Tokens trainiert, LLaMA 2 auf 2 Billionen Tokens. Die Trainingskosten sind erheblich: Sie umfassen Rechenzeit auf tausenden GPUs über Wochen bis Monate.
Nach dem Vortraining folgt häufig Fine-Tuning auf spezifische Aufgaben. Instruction Tuning trainiert das Modell auf Frage-Antwort-Paare. RLHF (Reinforcement Learning from Human Feedback) optimiert die Ausgaben nach menschlichen Präferenzen.
Grenzen und offene Probleme
Die autoregressive Generierung hat strukturelle Einschränkungen. Da jedes Token nur auf den bisherigen Kontext zugreifen kann, fehlt dem Decoder die globale Sicht auf den gesamten Text. Bei langen Texten kann das zu Inkonsistenzen führen: Informationen vom Anfang werden "vergessen", obwohl sie im Kontextfenster liegen.
Beispiel: Ein Decoder soll einen längeren Bericht schreiben. In Absatz 1 erwähnt er einen Umsatz von 5 Millionen Euro. In Absatz 12 nennt er für dasselbe Unternehmen 8 Millionen Euro. Das Modell hat den früheren Wert nicht explizit "vergessen", aber die Attention auf weit entfernte Positionen ist schwach.
Das Kontextfenster begrenzt, wie viel Text ein Decoder verarbeiten kann. GPT-4 unterstützt bis zu 128.000 Tokens. Der Rechenaufwand der Attention wächst dabei quadratisch mit der Sequenzlänge. Ansätze wie Sparse Attention, Sliding-Window-Attention und Ring-Attention versuchen, diese Grenze zu verschieben.
Halluzination bleibt ein ungelöstes Problem. Ein Decoder erzeugt Text auf Basis statistischer Muster, nicht auf Basis von Wissen über Fakten. Er kann syntaktisch korrekte, aber inhaltlich falsche Aussagen erzeugen. Die Grenze zwischen gelerntem Muster und faktenbasierter Aussage ist von außen nicht erkennbar.
Beispiel: Auf die Frage "Wer hat das Telefon erfunden?" kann ein Decoder sowohl "Alexander Graham Bell" als auch "Antonio Meucci" oder eine fiktive Person ausgeben. Die Wahrscheinlichkeitsverteilung spiegelt die Trainingsverteilung wider, nicht die historische Korrektheit.
Die sequenzielle Generierung ist langsam. Während ein Encoder den gesamten Text in einem Durchlauf verarbeiten kann, benötigt ein Decoder pro Token einen eigenen Inferenzschritt. Bei einer Ausgabe von 1.000 Tokens sind das 1.000 sequenzielle Berechnungen. Techniken wie KV-Caching, Speculative Decoding und parallele Generierung adressieren dieses Problem.
Fachliche Einordnung: Decoder-only-Modelle dominieren aktuell die Sprachmodellierung. Die Skalierungsgesetze (Scaling Laws) zeigen, dass Leistung mit Modellgröße, Datenmenge und Rechenleistung vorhersagbar steigt. Ob dieser Trend bei allen Aufgabentypen gleichermaßen gilt, ist Gegenstand aktiver Forschung. Für spezialisierte Aufgaben wie Embedding-Berechnung und Klassifikation sind Encoder-Modelle nach wie vor effizienter.