Feed-Forward Networks

In jedem Verarbeitungsschritt eines Sprachmodells gibt es eine Stelle, an der jedes Wort für sich allein durch eine Berechnung läuft. Keine Information von Nachbarwörtern fließt hier ein. Diese Stelle heißt Feed-Forward Network.

Ein Transformer besteht aus gestapelten Blöcken. Jeder Block enthält zwei Hauptkomponenten: einen Attention-Mechanismus und ein Feed-Forward Network (FFN). Die Attention-Schicht setzt Tokens zueinander in Beziehung. Das FFN verarbeitet anschließend jede Token-Repräsentation einzeln. Diese strikte Trennung zwischen kontextabhängiger Mischung (Attention) und positionsweiser Transformation (FFN) ist ein zentrales Designprinzip der Transformer-Architektur.

Typischerweise entfallen rund zwei Drittel aller Parameter eines Transformer-Modells auf die Feed-Forward Networks. In GPT-3 mit 175 Milliarden Parametern stecken etwa 115 Milliarden davon in den FFN-Schichten. Das macht sie zum größten Einzelbaustein in modernen Sprachmodellen.

Aufbau eines Feed-Forward Networks

Ein FFN besteht aus zwei linearen Transformationen mit einer nichtlinearen Aktivierungsfunktion dazwischen. Mathematisch lässt sich das so beschreiben: Die Eingabe wird zuerst mit einer Gewichtsmatrix multipliziert und ein Bias-Vektor addiert. Auf das Ergebnis wird eine Aktivierungsfunktion angewendet. Danach folgt eine zweite lineare Transformation, die das Ergebnis zurück auf die ursprüngliche Dimensionalität projiziert.

Beispiel: In einem Transformer mit einer Modelldimension von 768 (wie bei BERT-Base) expandiert die erste Schicht des FFN auf 3072 Dimensionen (Faktor 4). Die zweite Schicht projiziert zurück auf 768. Jedes Token durchläuft diese Expansion und Kompression einzeln.

Beispiel: Ein Satz mit 512 Tokens erzeugt 512 Repräsentationen. Das FFN wendet dieselbe Berechnung auf jede dieser 512 Repräsentationen an, ohne dass Information zwischen den Positionen fließt. Position 1 und Position 512 werden exakt gleich behandelt.

Die Formel lautet in vereinfachter Notation: FFN(x) = W2 * activation(W1 * x + b1) + b2. W1, b1, W2, b2 sind lernbare Parameter. Die Aktivierungsfunktion ist typischerweise ReLU oder GELU.

Der Expansionsfaktor und seine Bedeutung

Die innere Dimension des FFN ist größer als die Modelldimension. Dieser Verhältniswert heißt Expansionsfaktor. In den meisten Transformer-Architekturen beträgt er 4. Das bedeutet: Die erste Schicht projiziert von Dimension d auf 4d, die zweite projiziert zurück auf d.

Beispiel: GPT-2 verwendet eine Modelldimension von 1600 und eine FFN-Innendimension von 6400. Das ergibt einen Expansionsfaktor von 4. Jede FFN-Schicht enthält damit 1600 × 6400 + 6400 × 1600 = 20.480.000 Gewichte (ohne Bias-Terme).

Warum diese Expansion? Die höhere Dimensionalität im Zwischenraum gibt dem Netzwerk mehr Kapazität, komplexe Funktionen zu approximieren. Die Projektion zurück auf die kleinere Dimension wirkt als Flaschenhals, der das Modell zwingt, nur die relevantesten Merkmale zu behalten.

Beispiel: Man kann sich das wie einen Trichter vorstellen, der umgekehrt aufgebaut ist: erst wird die Information ausgebreitet (von 768 auf 3072 Dimensionen), dann verdichtet (zurück auf 768). In der breiten Phase hat das Netzwerk Platz, viele verschiedene Merkmale zu berechnen. In der schmalen Phase muss es sich auf das Wesentliche beschränken.

Fachliche Einordnung: Der Expansionsfaktor 4 wurde in der Originalarbeit "Attention Is All You Need" (Vaswani et al., 2017) eingeführt. Nachfolgende Arbeiten haben gezeigt, dass dieser Wert nicht optimal für alle Modellgrößen ist. PaLM verwendet beispielsweise einen Faktor von 4, während Llama-Architekturen auf 2.7 (mit SwiGLU-Aktivierung) setzen. Der Expansionsfaktor beeinflusst direkt das Verhältnis von Rechenaufwand zu Modellkapazität.

Aktivierungsfunktionen im FFN

Zwischen den beiden linearen Schichten sitzt eine nichtlineare Funktion. Ohne sie wäre das gesamte FFN äquivalent zu einer einzigen linearen Transformation. Erst die Nichtlinearität gibt dem Netzwerk die Fähigkeit, komplexe Zusammenhänge abzubilden.

Beispiel: ReLU (Rectified Linear Unit) setzt alle negativen Werte auf null und lässt positive Werte unverändert. Wenn die Zwischenrepräsentation den Wert -3.2 hat, wird daraus 0. Hat sie den Wert 5.7, bleibt es 5.7. Diese harte Grenze bei null erzeugt dünn besetzte Aktivierungen: Viele Neuronen sind exakt null.

GELU (Gaussian Error Linear Unit) ist die heute gängigere Variante. Im Unterschied zu ReLU ist der Übergang bei null nicht abrupt, sondern glatt. Negative Werte werden nicht hart auf null gesetzt, sondern gedämpft. Das führt zu stabileren Gradienten beim Training.

Beispiel: Bei GELU wird ein Eingabewert von -0.5 nicht auf null gesetzt (wie bei ReLU), sondern auf etwa -0.15 gedämpft. Ein Wert von 2.0 wird nahezu unverändert durchgelassen (ca. 1.96). Dieses weichere Verhalten verbessert die Trainingskonvergenz.

SwiGLU ist eine neuere Variante, die in Llama und PaLM zum Einsatz kommt. Sie kombiniert eine Swish-Aktivierung mit einem Gating-Mechanismus: Ein Teil der Zwischenrepräsentation steuert, wie stark der andere Teil durchgelassen wird. Das erfordert eine zusätzliche Gewichtsmatrix, bietet aber bei gleicher Parameteranzahl bessere Ergebnisse.

FFN als Wissensspeicher

Forschungsergebnisse legen nahe, dass Feed-Forward Networks als eine Art verteilter Wissensspeicher fungieren. Während die Attention-Schicht bestimmt, welche Kontextinformation relevant ist, enthält das FFN gelerntes Faktenwissen über die Welt.

Beispiel: Dai et al. (2022) zeigten in der Studie "Knowledge Neurons in Pretrained Transformers", dass bestimmte Neuronen im FFN für spezifische Fakten zuständig sind. Wird die Frage "In welchem Land liegt Paris?" gestellt, aktivieren sich bestimmte Neuronen in mittleren Schichten besonders stark. Unterdrückt man diese Neuronen gezielt, gibt das Modell die falsche Antwort.

Dieses Prinzip hat praktische Konsequenzen. Wenn ein Modell falsche Fakten produziert, liegt das häufig an den FFN-Gewichten. Techniken wie ROME (Rank-One Model Editing) nutzen diese Erkenntnis, um gezielt einzelne Fakten in einem trainierten Modell zu korrigieren, ohne das gesamte Modell neu zu trainieren.

Beispiel: Ein Sprachmodell behauptet, der Eiffelturm stehe in London. Mit ROME lässt sich die entsprechende FFN-Schicht lokalisieren und die Gewichtsmatrix so anpassen, dass das Modell korrekt "Paris" antwortet. Dabei verändert sich das Verhalten bei anderen Fakten nicht messbar.

Token xDimension d
W1 · x + b1Expansion auf 4d
AktivierungGELU / ReLU / SwiGLU
W2 · h + b2Projektion auf d

Fachliche Einordnung: Die Hypothese, dass FFNs als Key-Value-Speicher fungieren, stammt von Geva et al. (2021). Die erste Gewichtsmatrix W1 erzeugt Keys, die auf Eingabemuster reagieren. Die zweite Matrix W2 enthält die zugehörigen Values. Dieses Modell ist eine Vereinfachung. Neuere Arbeiten zeigen, dass die Speicherung verteilter und kontextabhängiger ist als ein einfaches Key-Value-Schema.

Positionsweise Verarbeitung

Das FFN wendet dieselbe Transformation auf jede Token-Position unabhängig an. Es gibt keine Gewichte, die Information zwischen Positionen transportieren. Diese Eigenschaft heißt "positionsweise" (position-wise) und unterscheidet das FFN grundlegend von der Attention-Schicht.

Beispiel: In einem Satz wie "Die Katze sitzt auf der Matte" verarbeitet das FFN die Repräsentation von "Katze" exakt gleich, egal ob das Wort an Position 2 oder Position 200 steht. Die Attention-Schicht hat vorher bereits Kontextinformation in die Repräsentation eingearbeitet. Das FFN operiert dann auf diesem kontextangereicherten Vektor.

Diese Eigenschaft hat Konsequenzen für die Parallelisierung. Da keine Abhängigkeiten zwischen Positionen bestehen, lassen sich alle Token-Positionen gleichzeitig berechnen. Das macht FFN-Schichten auf GPUs besonders effizient, weil sie als einzelne Matrixmultiplikation über alle Positionen hinweg formuliert werden können.

Beispiel: Bei einer Sequenzlänge von 2048 Tokens führt die GPU eine Matrixmultiplikation der Größe (2048, 768) × (768, 3072) aus. Jede Zeile dieser Matrix entspricht einem Token. Die GPU verarbeitet alle 2048 Zeilen in einem Durchgang.

Residualverbindungen und Schichtnormalisierung

In der Praxis wird das FFN nicht isoliert eingesetzt. Die Ausgabe des FFN wird zur Eingabe addiert (Residualverbindung), und das Ergebnis durchläuft eine Schichtnormalisierung. Diese Kombination stabilisiert das Training tiefer Netzwerke.

Die Residualverbindung stellt sicher, dass der Gradient beim Backpropagation-Verfahren einen direkten Pfad durch das Netzwerk hat. Ohne diesen direkten Pfad würde das Training bei Netzwerken mit vielen Schichten zusammenbrechen, weil die Gradienten exponentiell kleiner werden (Vanishing Gradient Problem).

Beispiel: GPT-3 hat 96 Transformer-Blöcke. Ohne Residualverbindungen müsste das Gradientensignal 96 FFN-Schichten und 96 Attention-Schichten durchlaufen. Mit Residualverbindungen existiert ein Kurzschluss, der das Signal direkt von der letzten zur ersten Schicht transportiert.

Es gibt zwei gängige Anordnungen. Pre-Norm (wie in GPT-2 und späteren Modellen) normalisiert vor dem FFN: x + FFN(LayerNorm(x)). Post-Norm (wie im Original-Transformer) normalisiert nach der Addition: LayerNorm(x + FFN(x)). Pre-Norm hat sich als stabiler für das Training sehr tiefer Netzwerke erwiesen.

Sparse-Varianten und Mixture of Experts

Ein vollständiges FFN aktiviert bei jedem Token alle Neuronen der Zwischenschicht. Bei einem Modell mit einer FFN-Innendimension von 16.384 werden alle 16.384 Neuronen berechnet, auch wenn nur ein Bruchteil davon für das aktuelle Token relevant ist. Mixture of Experts (MoE) ändert dieses Prinzip.

Bei MoE wird das einzelne FFN durch mehrere kleinere FFNs (Experts) ersetzt. Ein Routing-Netzwerk (Gating Function) entscheidet für jedes Token, welche Experts aktiviert werden. Typischerweise werden nur 1 bis 2 von beispielsweise 8 oder 64 Experts pro Token ausgewählt.

Beispiel: Mixtral 8x7B enthält 8 Expert-FFNs pro Schicht. Für jedes Token wählt das Routing-Netzwerk 2 Experts aus. Das Modell hat insgesamt 46.7 Milliarden Parameter, nutzt aber pro Token nur etwa 12.9 Milliarden. Die restlichen Parameter bleiben inaktiv.

Beispiel: Switch Transformer von Google aktiviert sogar nur einen einzigen Expert pro Token. Das Modell skaliert auf über eine Billion Parameter, während der Rechenaufwand pro Token konstant bleibt. Die Herausforderung liegt in der gleichmäßigen Auslastung aller Experts (Load Balancing).

Fachliche Einordnung: MoE-Architekturen verschieben das Verhältnis von Parameteranzahl zu Rechenaufwand. Ein dichtes Modell mit 7 Milliarden Parametern rechnet bei jedem Token mit allen 7 Milliarden. Ein MoE-Modell mit 47 Milliarden Parametern kann denselben Rechenaufwand haben, weil pro Token nur ein Bruchteil aktiv ist. Die Gesamtqualität profitiert davon, dass mehr Parameter für mehr spezialisiertes Wissen zur Verfügung stehen.

Grenzen und offene Fragen

Die positionsweise Verarbeitung ist gleichzeitig Stärke und Grenze. Das FFN kann keine Abhängigkeiten zwischen Positionen modellieren. Es ist vollständig auf die vorgelagerte Attention-Schicht angewiesen, um Kontextinformation bereitzustellen.

Die Interpretation der FFN-Gewichte als Wissensspeicher ist nicht abschließend geklärt. Obwohl Studien zeigen, dass bestimmte Neuronen für bestimmte Fakten zuständig sind, ist die Gesamtfunktion der FFN-Schichten komplexer. Polysemantische Neuronen reagieren auf mehrere, scheinbar unzusammenhängende Konzepte.

Beispiel: Anthropic zeigte 2023, dass einzelne Neuronen in Sprachmodellen gleichzeitig auf "Baseballspieler", "englische Männernamen" und "Frühstücksgerichte" reagieren können. Dieses Phänomen der Polysemantie erschwert die gezielte Bearbeitung einzelner Fakten erheblich.

Die Skalierung der FFN-Dimensionen bleibt ein aktives Forschungsfeld. Größere innere Dimensionen erhöhen die Modellkapazität, steigern aber auch den Rechenaufwand und den Speicherbedarf. MoE-Ansätze bieten einen Ausweg, bringen jedoch eigene Probleme mit (ungleichmäßige Expert-Auslastung, erhöhter Kommunikationsaufwand bei verteiltem Training).

Die Wahl der Aktivierungsfunktion beeinflusst sowohl die Trainingsgeschwindigkeit als auch die Modellqualität. Obwohl GELU und SwiGLU in der Praxis bessere Ergebnisse liefern als ReLU, fehlt ein vollständiges theoretisches Verständnis, warum bestimmte Aktivierungsfunktionen bei Sprachaufgaben überlegen sind.


Karl Kratz · 05.09.2025 (aktualisiert 03.04.2026)

Technologie Künstliche Intelligenz Neural Networks