Hinweis zur Privatsphäre: Wenn Sie sich mit Ihrem GitHub-Konto anmelden, werden Ihre Quiz-Versuche in Google Firebase gespeichert, damit Sie Ihren Fortschritt verfolgen können. Diese Daten sind nur für den Kursleiter einsehbar, werden nicht anderweitig weitergegeben und nach Semesterende gelöscht. Frühere Löschung auf Anfrage beim Kursleiter. Möchten Sie anonym bleiben? Nutzen Sie den Gastmodus oder ein GitHub-Konto ohne Ihren echten Namen.
Lädt...
Melden Sie sich an, um Ihren Fortschritt zu speichern und auf allen Geräten zu sehen.
●Fortschritt wird gespeichert
05 Vorlesung 5 Quiz: Im Inneren des Transformers
Punkte:0 / 14
Fragen-Übersicht
OffenRichtigFalsch
Anleitung
Dies ist ein interaktives Quiz. Melden Sie sich mit GitHub an, um Ihren Fortschritt zu speichern, oder fahren Sie als Gast fort.
Wählen Sie Ihre Antwort für jede Frage
Erhalten Sie sofortiges Feedback zu Ihrer Auswahl
Wiederholen Sie Fragen so oft Sie möchten
Verfolgen Sie Ihren Fortschritt über Sitzungen hinweg
Frage1
Forward Pass
Was produziert ein Transformer pro einzelnem Forward Pass über einen Prompt?
✓Richtig!
Ein Transformer gibt pro Forward Pass genau ein Token aus. Um eine Antwort mit 500 Token zu erzeugen, durchläuft das Modell
den Forward Pass 500 Mal — wobei es jedes Mal seine eigene Ausgabe an die Eingabe anhängt und alles erneut
durchrechnet. Es gibt keinen “Zusammenfassungs-Head”, keine parallele Mehr-Token-Ausgabe, kein eingebautes Beam-Search-Ranking.
Die auto-regressive Schleife ist es, die aus “ein Token nach dem anderen” eine vollständige Antwort macht.
✗Nicht ganz.
Hinweis
Wie viele Token kommen aus einem Forward Pass heraus?
💡Lösung
Ein Transformer gibt pro Forward Pass genau ein Token aus. Um eine Antwort mit 500 Token zu erzeugen, durchläuft das Modell
den Forward Pass 500 Mal — wobei es jedes Mal seine eigene Ausgabe an die Eingabe anhängt und alles erneut
durchrechnet. Es gibt keinen “Zusammenfassungs-Head”, keine parallele Mehr-Token-Ausgabe, kein eingebautes Beam-Search-Ranking.
Die auto-regressive Schleife ist es, die aus “ein Token nach dem anderen” eine vollständige Antwort macht.
Frage2
Embeddings
Warum wandelt ein Transformer Token-IDs in dichte Embedding-Vektoren um, anstatt die ganzzahligen IDs direkt in das Netzwerk einzuspeisen?
✓Richtig!
Eine Token-ID ist ein Name, keine Zahl. Multipliziert man ID 11140 mit einem Gewicht, ergibt sich eine bedeutungslose Größe — es gibt keinen
Sinn, in dem “Token 11141” eine Einheit “mehr” wäre als “Token 11140”. Das Embedding-Lookup wandelt jede ID in eine
Zeile von d reellen Zahlen um, die addiert, skalarmultipliziert und differenziert werden können. Das ist auch der Grund, warum die Embedding-Matrix
gelernt wird: Der Gradientenabstieg formt die Zeilen so, dass semantisch ähnliche Token in ähnlichen Richtungen landen.
One-Hot-Codierung ist eine (sehr verschwenderische) Möglichkeit, IDs stetig zu machen, aber gelernte Embeddings dominieren sie.
✗Nicht ganz.
Hinweis
Was können Sie mit einer Zahl tun, was Sie mit einem Namen nicht tun können?
💡Lösung
Eine Token-ID ist ein Name, keine Zahl. Multipliziert man ID 11140 mit einem Gewicht, ergibt sich eine bedeutungslose Größe — es gibt keinen
Sinn, in dem “Token 11141” eine Einheit “mehr” wäre als “Token 11140”. Das Embedding-Lookup wandelt jede ID in eine
Zeile von d reellen Zahlen um, die addiert, skalarmultipliziert und differenziert werden können. Das ist auch der Grund, warum die Embedding-Matrix
gelernt wird: Der Gradientenabstieg formt die Zeilen so, dass semantisch ähnliche Token in ähnlichen Richtungen landen.
One-Hot-Codierung ist eine (sehr verschwenderische) Möglichkeit, IDs stetig zu machen, aber gelernte Embeddings dominieren sie.
Frage3
Embeddings
Die Zeile der Embedding-Matrix für das Token bank ist derselbe feste Vektor, egal ob es im umgebenden Satz um einen Fluss (river bank) oder um ein Sparkonto (savings account) geht. Welcher Teil der Architektur ist dafür verantwortlich, diese beiden Bedeutungen zu unterscheiden?
✓Richtig!
Das Embedding ist der erste Eindruck des Modells von jedem Token, unabhängig vom Kontext. Das Unterscheiden von river bank
(Flussufer) und savings account (Sparkonto) ist die Aufgabe der nachfolgenden Schichten — und der Mechanismus, der das leistet, ist Attention.
Attention zieht Informationen von benachbarten Token in die Repräsentation jedes Tokens, sodass eine bank-Zeile, die auf
river geachtet hat, an einem anderen Punkt im Embedding-Raum landet als eine bank-Zeile, die auf
account geachtet hat. Die Tokenisierung weist beiden dieselbe ID zu, das Positional Encoding fügt nur ein Positionssignal hinzu, und
Fine-Tuning ist nicht der Weg, auf dem ein vortrainiertes Modell Polysemie zur Inferenzzeit auflöst.
✗Nicht ganz.
Hinweis
Welche Sub-Schicht ist die einzige, die Informationen über Token hinweg vermischt?
💡Lösung
Das Embedding ist der erste Eindruck des Modells von jedem Token, unabhängig vom Kontext. Das Unterscheiden von river bank
(Flussufer) und savings account (Sparkonto) ist die Aufgabe der nachfolgenden Schichten — und der Mechanismus, der das leistet, ist Attention.
Attention zieht Informationen von benachbarten Token in die Repräsentation jedes Tokens, sodass eine bank-Zeile, die auf
river geachtet hat, an einem anderen Punkt im Embedding-Raum landet als eine bank-Zeile, die auf
account geachtet hat. Die Tokenisierung weist beiden dieselbe ID zu, das Positional Encoding fügt nur ein Positionssignal hinzu, und
Fine-Tuning ist nicht der Weg, auf dem ein vortrainiertes Modell Polysemie zur Inferenzzeit auflöst.
Frage4
Geometrie
Was misst das Skalarprodukt a · b zwischen zwei Vektoren derselben Dimension tatsächlich?
✓Richtig!
Das Skalarprodukt ist a · b = ||a|| ||b|| cos(theta): eine einzelne Zahl, die “stimmen die beiden Vektoren in der
Richtung überein” mit “wie lang sind sie” kombiniert. Groß und positiv, wenn beide in ähnliche Richtungen zeigen, null bei
Rechtwinkligkeit, negativ bei Gegensätzlichkeit. Diese Identität gilt in jeder Dimension. Die Kosinus-Ähnlichkeit entfernt die
Längen, um ein reines Winkelmaß zu liefern. Das Skalarprodukt ist keine Distanz, nicht der Winkel selbst und nicht nur
||a|| ||b|| (das ignoriert die Richtung völlig) — es ist der Skalar, mit dem Attention bewertet, “wie relevant ist
Key j für Query i” in einer einzigen Zahl pro Paar.
✗Nicht ganz.
Hinweis
Denken Sie an die geometrische Identität, die Skalarprodukt mit Winkel und Länge verbindet.
💡Lösung
Das Skalarprodukt ist a · b = ||a|| ||b|| cos(theta): eine einzelne Zahl, die “stimmen die beiden Vektoren in der
Richtung überein” mit “wie lang sind sie” kombiniert. Groß und positiv, wenn beide in ähnliche Richtungen zeigen, null bei
Rechtwinkligkeit, negativ bei Gegensätzlichkeit. Diese Identität gilt in jeder Dimension. Die Kosinus-Ähnlichkeit entfernt die
Längen, um ein reines Winkelmaß zu liefern. Das Skalarprodukt ist keine Distanz, nicht der Winkel selbst und nicht nur
||a|| ||b|| (das ignoriert die Richtung völlig) — es ist der Skalar, mit dem Attention bewertet, “wie relevant ist
Key j für Query i” in einer einzigen Zahl pro Paar.
Frage5
Block-Anatomie
Welche Teilschicht eines Transformer-Blocks ist die einzige, die Information über Token-Positionen hinweg mischt?
✓Richtig!
Dies ist die tragende Unterscheidung der Vorlesung: Attention sammelt, das FFN verarbeitet. Attention ist die einzige
Operation im gesamten Transformer, die es einem Token erlaubt, Informationen von anderen Token zu lesen. Das FFN ist ein
MLP pro Position — dieselben Gewichte werden Zeile für Zeile angewendet, niemals werden Zeilen kombiniert. Ohne Attention wäre das Modell
96 gestapelte MLPs, die parallel auf jedem Token operieren, wobei kein Token jemals ein anderes sieht. Ohne das FFN
würden Informationen umhergeleitet, aber niemals umgeformt. Residuals tragen Informationen durch die Tiefe, aber sie
vermischen nicht über Positionen hinweg.
✗Nicht ganz.
Hinweis
Würden Token einander noch sehen, wenn Sie das FFN entfernten?
💡Lösung
Dies ist die tragende Unterscheidung der Vorlesung: Attention sammelt, das FFN verarbeitet. Attention ist die einzige
Operation im gesamten Transformer, die es einem Token erlaubt, Informationen von anderen Token zu lesen. Das FFN ist ein
MLP pro Position — dieselben Gewichte werden Zeile für Zeile angewendet, niemals werden Zeilen kombiniert. Ohne Attention wäre das Modell
96 gestapelte MLPs, die parallel auf jedem Token operieren, wobei kein Token jemals ein anderes sieht. Ohne das FFN
würden Informationen umhergeleitet, aber niemals umgeformt. Residuals tragen Informationen durch die Tiefe, aber sie
vermischen nicht über Positionen hinweg.
Frage6
Attention
Was ist in einem einzelnen Attention-Head die Rollenunterscheidung zwischen dem Key (K) eines Tokens und seinem Value (V)?
✓Richtig!
Q/K/V entkoppeln “wer hört auf wen” von “was wird übertragen”. Die Query stellt eine Frage; Keys bewerben
Inhalt für den Abgleich; Values liefern das eigentliche Signal, das aus einem ausgewählten Token herausfließt. Ein Token kann
Relevanz aus einem Grund bewerben (sein Key) und aus einem anderen nützliche Information tragen (sein Value) — diese Entkopplung ist es, die
Attention seine Ausdruckskraft verleiht. K und V werden durch verschiedene gelernte Projektionen W_K und W_V erzeugt, sie werden
also nicht identisch berechnet, und es gibt keinen zusätzlichen Normalisierungsschritt für K. Beide werden im Training und in der
Inferenz gleichermaßen verwendet.
✗Nicht ganz.
Hinweis
Denken Sie an eine Bibliothek: Titel sagen Ihnen, ob Sie das Buch nehmen sollten; der Inhalt des Buches ist das, was Sie lesen.
💡Lösung
Q/K/V entkoppeln “wer hört auf wen” von “was wird übertragen”. Die Query stellt eine Frage; Keys bewerben
Inhalt für den Abgleich; Values liefern das eigentliche Signal, das aus einem ausgewählten Token herausfließt. Ein Token kann
Relevanz aus einem Grund bewerben (sein Key) und aus einem anderen nützliche Information tragen (sein Value) — diese Entkopplung ist es, die
Attention seine Ausdruckskraft verleiht. K und V werden durch verschiedene gelernte Projektionen W_K und W_V erzeugt, sie werden
also nicht identisch berechnet, und es gibt keinen zusätzlichen Normalisierungsschritt für K. Beide werden im Training und in der
Inferenz gleichermaßen verwendet.
Frage7
Attention
Warum werden die rohen Attention-Scores Q K^T vor dem Softmax durch sqrt(d) geteilt?
✓Richtig!
Jeder Eintrag von Q K^T ist eine Summe von d komponentenweisen Produkten. Bei Standard-Initialisierung hat jedes Produkt Varianz
1, sodass die Summe Varianz d und eine typische Größenordnung sqrt(d) hat. Wird diese Größenordnung in einen Softmax eingespeist, kollabiert die
Verteilung auf einen einzelnen Gewinner, und der Gradient zu allen anderen Einträgen stirbt ab. Die Division durch sqrt(d)
stellt Eingaben mit konstanter Größenordnung wieder her, sodass der Softmax in seinem informativen Bereich bleibt. Das ursprüngliche Paper von Vaswani et al. (2017)
hat dies ausdrücklich hervorgehoben. Es ist keine Normalisierung auf [-1, 1] (das wäre die Kosinus-Ähnlichkeit, die
die Längen vollständig entfernt); die Eigenschaft “Zeilensumme gleich eins” stammt vom Softmax selbst, nicht von der Division.
✗Nicht ganz.
Hinweis
Was passiert mit Softmax-Ausgaben, wenn die Eingaben alle eine sehr große Größenordnung haben?
💡Lösung
Jeder Eintrag von Q K^T ist eine Summe von d komponentenweisen Produkten. Bei Standard-Initialisierung hat jedes Produkt Varianz
1, sodass die Summe Varianz d und eine typische Größenordnung sqrt(d) hat. Wird diese Größenordnung in einen Softmax eingespeist, kollabiert die
Verteilung auf einen einzelnen Gewinner, und der Gradient zu allen anderen Einträgen stirbt ab. Die Division durch sqrt(d)
stellt Eingaben mit konstanter Größenordnung wieder her, sodass der Softmax in seinem informativen Bereich bleibt. Das ursprüngliche Paper von Vaswani et al. (2017)
hat dies ausdrücklich hervorgehoben. Es ist keine Normalisierung auf [-1, 1] (das wäre die Kosinus-Ähnlichkeit, die
die Längen vollständig entfernt); die Eigenschaft “Zeilensumme gleich eins” stammt vom Softmax selbst, nicht von der Division.
Frage8
Attention
Welche Rolle spielt die kausale Maske in einem Decoder-only-LLM?
✓Richtig!
Die Maske M innerhalb von softmax((Q K^T + M) / sqrt(d)) setzt jeden Eintrag oberhalb der Diagonale auf -unendlich, was nach der
Exponentialfunktion zu 0 wird. Das Ergebnis: Die Query an Position i kann auf Keys an den Positionen 1, …, i achten, aber nicht auf
i+1, …, T. Das ist es, was das Modell zwingt, das nächste Token vorherzusagen, ohne es anzuschauen — ohne die Maske
würde die parallele Trainingsschleife Position i das Ground-Truth-Token an Position i+1 lesen lassen, und der Loss würde
auf null kollabieren. Die Maske ist Teil der Architektur, kein Fensterungsverfahren — jede Position sieht ihr volles
kausales Präfix, nicht nur die letzten k Token. Ein Token achtet sehr wohl auf sich selbst.
✗Nicht ganz.
Hinweis
Welche Information würde das Modell während des parallelen Trainings ohne diese Maske versehentlich sehen?
💡Lösung
Die Maske M innerhalb von softmax((Q K^T + M) / sqrt(d)) setzt jeden Eintrag oberhalb der Diagonale auf -unendlich, was nach der
Exponentialfunktion zu 0 wird. Das Ergebnis: Die Query an Position i kann auf Keys an den Positionen 1, …, i achten, aber nicht auf
i+1, …, T. Das ist es, was das Modell zwingt, das nächste Token vorherzusagen, ohne es anzuschauen — ohne die Maske
würde die parallele Trainingsschleife Position i das Ground-Truth-Token an Position i+1 lesen lassen, und der Loss würde
auf null kollabieren. Die Maske ist Teil der Architektur, kein Fensterungsverfahren — jede Position sieht ihr volles
kausales Präfix, nicht nur die letzten k Token. Ein Token achtet sehr wohl auf sich selbst.
Frage9
Multi-Head Attention
Wie verhält sich das Parameterbudget von Multi-Head Attention zu Single-Head Attention bei derselben Gesamtdimension d?
✓Richtig!
H Heads haben jeweils Q, K, V der Form d × d_h mit d_h = d/H. Ausmultipliziert: H × 3 × d × d_h = 3 d^2 — exakt das
Single-Head-Budget, nur umgeordnet in H parallele, schmalere Unterräume. Die wirklich neuen Parameter bei Multi-Head
sind die Ausgabeprojektion W_O der Form d × d, die die Heads wieder zusammenmischt und ein zusätzliches d^2 beiträgt.
Gesamt pro Attention-Sub-Block: 4 d^2. Die FFN-Parameteranzahl ist unabhängig von der Anzahl der Heads.
✗Nicht ganz.
Hinweis
Berechnen Sie H × 3 × d × (d/H) und sehen Sie, was sich kürzt.
💡Lösung
H Heads haben jeweils Q, K, V der Form d × d_h mit d_h = d/H. Ausmultipliziert: H × 3 × d × d_h = 3 d^2 — exakt das
Single-Head-Budget, nur umgeordnet in H parallele, schmalere Unterräume. Die wirklich neuen Parameter bei Multi-Head
sind die Ausgabeprojektion W_O der Form d × d, die die Heads wieder zusammenmischt und ein zusätzliches d^2 beiträgt.
Gesamt pro Attention-Sub-Block: 4 d^2. Die FFN-Parameteranzahl ist unabhängig von der Anzahl der Heads.
Frage10
Positional Encoding
Ohne jegliche dem Input hinzugefügte Positionsinformation, was würde Attention für “the cat sat on the mat” gegenüber “the mat sat on the cat” ausgeben?
✓Richtig!
Dies ist das Permutations-Äquivarianz-Lemma: für jede Permutation P gilt Attention(P X) = P · Attention(X). Jede Ausgabe-
zeile hängt nur davon ab, welche Token beteiligt sind, niemals davon, wo sie sitzen. Die Menge der paarweisen Scores ist identisch
zwischen den beiden Sätzen — dieselbe Multimenge von Token, dieselbe Menge von Paaren. Ohne ein Positionssignal ist ein Transformer
ein sehr teures Bag-of-Words-Modell. Deshalb wird E_pos (oder RoPE) hinzugefügt: Die Eingabe X + E_pos ist nicht mehr
permutations-äquivariant, und das Modell kann endlich “cat sat on mat” von “mat sat on cat” unterscheiden. Residual-
Verbindungen bewahren Information, können aber nicht wiederherstellen, was von Anfang an nie da war.
✗Nicht ganz.
Hinweis
Welche Menge paarweiser Skalarprodukte würden Sie erhalten, wenn Sie die Zeilen von X durcheinanderwürfelten?
💡Lösung
Dies ist das Permutations-Äquivarianz-Lemma: für jede Permutation P gilt Attention(P X) = P · Attention(X). Jede Ausgabe-
zeile hängt nur davon ab, welche Token beteiligt sind, niemals davon, wo sie sitzen. Die Menge der paarweisen Scores ist identisch
zwischen den beiden Sätzen — dieselbe Multimenge von Token, dieselbe Menge von Paaren. Ohne ein Positionssignal ist ein Transformer
ein sehr teures Bag-of-Words-Modell. Deshalb wird E_pos (oder RoPE) hinzugefügt: Die Eingabe X + E_pos ist nicht mehr
permutations-äquivariant, und das Modell kann endlich “cat sat on mat” von “mat sat on cat” unterscheiden. Residual-
Verbindungen bewahren Information, können aber nicht wiederherstellen, was von Anfang an nie da war.
Frage11
Feed-Forward Network
Wo sitzen innerhalb eines einzelnen Transformer-Blocks (Attention + FFN) die Mehrheit der Parameter?
✓Richtig!
Pro Block: Attention sind 4 d^2, das FFN sind 8 d^2 (W_1 ist d × 4d und W_2 ist 4d × d, jeweils 4 d^2), Layer Norm ist ~ 4d —
vernachlässigbar. Etwa zwei Drittel der Gewichte jedes Blocks sitzen also im FFN. Über den gesamten Stack von GPT-3 sind das
zig Milliarden Parameter, die der Transformation pro Token, abseits von Attention, gewidmet sind. Die Interpretierbarkeits-Sichtweise
lautet “Attention ist Routing; FFN ist Speicher” — das meiste von dem, was wir “das Wissen des Modells” nennen, liegt in diesen FFN-
Gewichten, nicht in der Attention. Die Embedding-Matrix wird mit dem Output-Head geteilt und ist nicht pro Block vorhanden.
✗Nicht ganz.
Hinweis
Vergleichen Sie 4 d^2 (Attention) mit 8 d^2 (W_1 + W_2).
💡Lösung
Pro Block: Attention sind 4 d^2, das FFN sind 8 d^2 (W_1 ist d × 4d und W_2 ist 4d × d, jeweils 4 d^2), Layer Norm ist ~ 4d —
vernachlässigbar. Etwa zwei Drittel der Gewichte jedes Blocks sitzen also im FFN. Über den gesamten Stack von GPT-3 sind das
zig Milliarden Parameter, die der Transformation pro Token, abseits von Attention, gewidmet sind. Die Interpretierbarkeits-Sichtweise
lautet “Attention ist Routing; FFN ist Speicher” — das meiste von dem, was wir “das Wissen des Modells” nennen, liegt in diesen FFN-
Gewichten, nicht in der Attention. Die Embedding-Matrix wird mit dem Output-Head geteilt und ist nicht pro Block vorhanden.
Frage12
Die zentrale Erkenntnis
Derselbe trainierte Transformer θ kann einen 5-Token-Prompt und einen 5.000-Token-Prompt verarbeiten. Warum, architektonisch betrachtet?
✓Richtig!
Dies ist die architektonische Pointe von Kapitel 13. Gehen Sie jedes Gewicht durch: Embedding V × d, Attention W_Q /
W_K / W_V / W_O der Form d × ·, FFN d × 4d und 4d × d, Layer Norm in R^d. Keines von ihnen hängt von T ab. T lebt nur
in den Aktivierungsformen — H_l der Form T × d, die Score-Matrix S der Form T × T — die bei jeder
Eingabe neu berechnet werden. Das Modell ist formuniform in T, und genau das macht einen Transformer zu einem Modell, das über
Eingabelängen hinweg generalisiert, statt zu einem anderen Modell pro Länge. Gewichte ändern ihre Größe nicht; Padding ermöglicht keine beliebige
Länge; es gibt nur ein einziges θ.
✗Nicht ganz.
Hinweis
Schauen Sie sich jede Gewichtsform im Modell an: Welche Dimension taucht niemals auf?
💡Lösung
Dies ist die architektonische Pointe von Kapitel 13. Gehen Sie jedes Gewicht durch: Embedding V × d, Attention W_Q /
W_K / W_V / W_O der Form d × ·, FFN d × 4d und 4d × d, Layer Norm in R^d. Keines von ihnen hängt von T ab. T lebt nur
in den Aktivierungsformen — H_l der Form T × d, die Score-Matrix S der Form T × T — die bei jeder
Eingabe neu berechnet werden. Das Modell ist formuniform in T, und genau das macht einen Transformer zu einem Modell, das über
Eingabelängen hinweg generalisiert, statt zu einem anderen Modell pro Länge. Gewichte ändern ihre Größe nicht; Padding ermöglicht keine beliebige
Länge; es gibt nur ein einziges θ.
Frage13
Rechenkosten
Eine Verdopplung der Eingabelänge T vervierfacht in etwa den Rechen- und Speicheraufwand pro Pass für einen Transformer-Block. Welche Sub-Schicht ist für diese in T quadratische Skalierung verantwortlich, und warum?
✓Richtig!
Von allen Sub-Schichten in einem Transformer-Block skaliert nur Attention quadratisch mit T. Die Score-Matrix Q K^T der
Form T × T bildet das Skalarprodukt jeder Query mit jedem Key — T^2 Einträge — und das anschließende Mischen A V ist ebenfalls O(T^2 · d).
Alles andere ist linear in T: Das FFN wendet seine Gewichte Zeile für Zeile mit O(T · d^2) an (eine Verdopplung von T verdoppelt lediglich
die Kosten — sie vervierfacht sie nicht); das Embedding-Lookup ist O(T · d) — V taucht nicht auf, weil jedes Lookup
einfach eine Zeile indiziert; Layer Norm normalisiert innerhalb jeder Zeile mit O(T · d). Die Sichtweise der Vorlesung ist, dass T × T
“der einzige Ort im gesamten Forward Pass ist, an dem T quadratisch in einer Aktivierung auftaucht” — und es ist eine Aktivierung,
bei jeder Eingabe frisch berechnet, kein gespeicherter Parameter. Diese eine Tatsache ist der Grund, warum jede Long-Context-Optimierung
— FlashAttention, Sliding-Window, sparse und lineare Attention — auf die Score-Matrix abzielt.
✗Nicht ganz.
Hinweis
Welcher Schritt berechnet eine T × T-Matrix, die wächst, wenn T wächst?
💡Lösung
Von allen Sub-Schichten in einem Transformer-Block skaliert nur Attention quadratisch mit T. Die Score-Matrix Q K^T der
Form T × T bildet das Skalarprodukt jeder Query mit jedem Key — T^2 Einträge — und das anschließende Mischen A V ist ebenfalls O(T^2 · d).
Alles andere ist linear in T: Das FFN wendet seine Gewichte Zeile für Zeile mit O(T · d^2) an (eine Verdopplung von T verdoppelt lediglich
die Kosten — sie vervierfacht sie nicht); das Embedding-Lookup ist O(T · d) — V taucht nicht auf, weil jedes Lookup
einfach eine Zeile indiziert; Layer Norm normalisiert innerhalb jeder Zeile mit O(T · d). Die Sichtweise der Vorlesung ist, dass T × T
“der einzige Ort im gesamten Forward Pass ist, an dem T quadratisch in einer Aktivierung auftaucht” — und es ist eine Aktivierung,
bei jeder Eingabe frisch berechnet, kein gespeicherter Parameter. Diese eine Tatsache ist der Grund, warum jede Long-Context-Optimierung
— FlashAttention, Sliding-Window, sparse und lineare Attention — auf die Score-Matrix abzielt.
Frage14
Auto-Regressive Schleife
Um eine Antwort von 500 Token aus einem Transformer zu generieren, wie viele vollständige Forward Passes durch das Netzwerk sind erforderlich?
✓Richtig!
Die auto-regressive Schleife durchläuft den vollständigen Forward Pass pro generiertem Token: Logits der letzten Position lesen, ein
Token ziehen, anhängen, dann den gesamten Forward Pass auf der nun längeren Sequenz erneut durchlaufen. Der allererste Pass — derjenige,
der den Prompt konsumiert — ist der Pass, der das erste Token generiert, sodass es keinen separaten “Prompt-Pass” zusätzlich
zu 500 Generierungs-Passes gibt. Eine Antwort mit 500 Token sind 500 vollständige Forward Passes; eine Antwort mit 5.000 Token sind 5.000.
Das Generieren langer Ausgaben ist tatsächlich ein linearer Multiplikator für den Rechenaufwand, und gestapelte Schichten laufen innerhalb eines Passes —
sie sind keine zusätzlichen Passes.
✗Nicht ganz.
Hinweis
Wie viele Token produziert jeder Forward Pass?
💡Lösung
Die auto-regressive Schleife durchläuft den vollständigen Forward Pass pro generiertem Token: Logits der letzten Position lesen, ein
Token ziehen, anhängen, dann den gesamten Forward Pass auf der nun längeren Sequenz erneut durchlaufen. Der allererste Pass — derjenige,
der den Prompt konsumiert — ist der Pass, der das erste Token generiert, sodass es keinen separaten “Prompt-Pass” zusätzlich
zu 500 Generierungs-Passes gibt. Eine Antwort mit 500 Token sind 500 vollständige Forward Passes; eine Antwort mit 5.000 Token sind 5.000.
Das Generieren langer Ausgaben ist tatsächlich ein linearer Multiplikator für den Rechenaufwand, und gestapelte Schichten laufen innerhalb eines Passes —
sie sind keine zusätzlichen Passes.