Decoder (Transformator) (DE)
Decoder (englisch Decoder, Dekodierer) ist im maschinellen Lernen und Deep Learning eine Komponente eines neuronalen Netzes, dessen Hauptaufgabe die Umwandlung einer kodierten Darstellung (z. B. eines Kontextvektors oder einer Sequenz von verborgenen Zuständen, die von einem Encoder stammen) in eine Ausgabesequenz von Daten (z. B. Text oder ein Bild) ist. Der Decoder generiert die Ausgabedaten schrittweise, typischerweise in einem autoregressiven Modus.
Im weiteren Sinne bezeichnet ein Decoder in der Informationstheorie jedes Gerät oder jeden Algorithmus, der kodierte Daten in ihr ursprüngliches oder ein verständliches Format zurückführt.
Konzept und Zweck
Während der Encoder für das Verständnis und die Komprimierung der Eingabedaten zuständig ist, ist der Decoder für die Generierung und Entfaltung der Ausgabedaten verantwortlich. Er nimmt eine kompakte, informationsreiche Darstellung und wandelt sie schrittweise in das gewünschte Format um, sei es ein Satz in einer anderen Sprache, eine Textbeschreibung eines Bildes oder eine Folge von Musiknoten.
Ein Schlüsselmerkmal der meisten Decoder ist ihre autoregressive Natur: Um das nächste Element einer Sequenz (z. B. ein Wort oder ein Pixel) zu generieren, verwenden sie sowohl die kodierte Darstellung als auch alle zuvor generierten Elemente.
Der Decoder in verschiedenen Architekturen
Decoder im Autoencoder
In der Architektur eines Autoencoders erfüllt der Decoder die umgekehrte Aufgabe des Encoders:
- Der Encoder komprimiert die Eingabedaten in eine verborgene Darstellung.
- Der Decoder nimmt diese verborgene Darstellung und versucht, die ursprünglichen Daten daraus wiederherzustellen (zu rekonstruieren).
Das Training eines solchen Netzwerks ermöglicht es, den Decoder separat zur Generierung neuer Daten zu verwenden, indem Vektoren aus dem latenten Raum als Eingabe bereitgestellt werden.
Decoder in rekurrente neuronale Netze (RNN/LSTM)
In klassischen Sequenz-zu-Sequenz-Modellen (seq2seq), die auf RNN oder LSTM basieren, ist der Decoder ein rekurrentes Netz, das die Ausgabesequenz Token für Token generiert.
- Funktionsweise: Der Decoder wird mit dem letzten verborgenen Zustand (dem Kontextvektor) des Encoders initialisiert. In jedem Schritt erhält er das zuvor generierte Token und seinen eigenen vorherigen verborgenen Zustand als Eingabe, generiert dann das nächste Token und aktualisiert seinen Zustand. Dieser Prozess wird fortgesetzt, bis ein spezielles End-of-Sequence-Token (
<EOS>) generiert wird.
Decoder in der Transformer-Architektur
Der Decoder in der Transformer-Architektur arbeitet ebenfalls autoregressiv, aber seine interne Struktur ist anders. Er besteht aus einem Stapel () identischer Schichten, von denen jede drei Haupt-Sublayer hat:
- Maskierte Multi-Head Self-Attention: Dieser Mechanismus funktioniert ähnlich wie im Encoder, jedoch mit einem wichtigen Unterschied – der Maskierung. Die Maske verhindert, dass jede Position auf nachfolgende Positionen in der Sequenz „achtet“. Dadurch wird sichergestellt, dass die Vorhersage für die Position nur von den bereits bekannten Ausgaben an den Positionen vor abhängt, was die autoregressive Eigenschaft bewahrt.
- Multi-Head Cross-Attention: Dies ist der Schlüsselmechanismus, der den Decoder mit dem Encoder verbindet. Hier kommen die Anfragen (Query) von der vorherigen Decoderschicht, während die Schlüssel (Key) und Werte (Value) von den Ausgabedarstellungen des Encoders stammen. Dies ermöglicht dem Decoder, sich bei jedem Generierungsschritt auf die relevantesten Teile der Eingabesequenz zu konzentrieren.
- Feed-Forward-Netzwerk (Feed-Forward Network): Analog zu dem im Encoder verwendeten Netzwerk.
Modelltypen basierend auf dem Decoder
Encoder-Decoder-Modelle
Dies ist eine klassische Architektur, bei der Encoder und Decoder als Paar zusammenarbeiten.
- Funktionsweise: Der Encoder erstellt eine Darstellung der Eingabedaten, und der Decoder generiert die Ausgabedaten unter Verwendung dieser Darstellung.
- Beispiele: Der ursprüngliche Transformer, T5, BART.
Reine Decoder-Modelle (Decoder-Only)
Diese Modelle, die in der generativen KI dominant geworden sind, verwenden ausschließlich einen Stapel von Transformer-Decodern.
- Funktionsweise: In solchen Modellen fehlt die Cross-Attention zum Encoder, da es keinen Encoder gibt. Das Modell arbeitet rein autoregressiv und sagt das nächste Token auf der Grundlage aller vorhergehenden Tokens in derselben Sequenz voraus. Der Eingabe-Prompt und der bereits generierte Text werden gemeinsam verarbeitet.
- Anwendung: Ideal für Aufgaben, bei denen ein gegebener Text fortgesetzt werden muss (Textgenerierung, Dialogsysteme, Chatbots).
- Beispiele: Die GPT-Reihe, LLaMA, Claude.
Verbindung zum Encoder
Die Interaktion zwischen Encoder und Decoder ist ein grundlegendes Prinzip für Transformationsaufgaben.
- Der Encoder komprimiert die Informationen der Eingabesequenz in einen Satz von Vektoren.
- Der Decoder verwendet diesen Satz von Vektoren, um schrittweise eine neue Sequenz zu generieren.
Die Cross-Attention ermöglicht es dem Decoder, bei jedem Schritt den Encoder zu „konsultieren“, um zu verstehen, auf welchen Teil des ursprünglichen Textes er sich gerade konzentrieren soll. Beispielsweise kann der Decoder bei der Übersetzung eines Satzes, während er ein deutsches Wort generiert, auf das entsprechende englische Wort aus der Eingabe „blicken“.
Literatur
- Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.