Neuronale Netze · Verständlich erklärt

Attention verständlich erklärt

Eine lange Zahlenreihe, und nur ganz vorn steckt die Antwort. Ein Programm kann diese Antwort von Hand zu Hand weitergeben oder gezielt nachschlagen. Diese Seite zeigt, was vom Anfang jeweils ankommt und warum Nachschlagen allein das Lernen nicht löst.

Zuletzt aktualisiert:

Teil 1 · Für Einsteiger

Ein Wort unbekannt? Das Begriffsverzeichnis erklärt es in wenigen Sätzen.

Stille Post mit einer langen Reihe

Denken Sie an Stille Post. Eine erste Person flüstert „ja“ oder „nein“. Viele weitere Personen geben es weiter, und im Raum plappern alle durcheinander.

Bei jeder Weitergabe geht ein winziger Teil verloren. Diese Verluste summieren sich, weil jede Person nur noch das schon Verformte hört. Je länger die Kette, desto weniger vom Anfang kommt am Ende an.

Das Beispiel dieser Seite ist ein vereinfachtes Rechenbild (Fachwort: Modell) dieses Problems. Es zeigt eine Zahlenreihe. Die erste Zahl liegt nahe bei plus eins oder minus eins. Alle anderen sind zufälliges Rauschen, also Zahlen ohne Bedeutung. Ein Programm, das sich durch Üben selbst einstellt (ein neuronales Netz), soll sagen, welches Vorzeichen vorn stand.

Zwei ältere Arten solcher Programme arbeiten wie die Stille Post (Fachwörter: RNN und LSTM). Sie lesen die Reihe Zahl für Zahl. Nach jeder Zahl schreiben sie einen kurzen Merkzettel und reichen ihn zur nächsten Zahl weiter. Das LSTM führt den Zettel sorgsamer fort. Der Anfang schwindet auch dort, nur langsamer.

Nachschlagen statt weiterreichen

Die dritte Bauart geht anders vor. Sie sieht die ganze Reihe auf einmal an und verteilt ihre Aufmerksamkeit auf alle Stellen (Fachwort: Attention, englisch für Aufmerksamkeit).

Stellen Sie sich einen Kuchen vor. Er hat eine feste Größe und wird in so viele Stücke geteilt, wie die Reihe Stellen hat. Ein großes Stück bedeutet: Diese Stelle zählt für die Antwort viel. Am Ende mischt das Programm alle Stellen im Verhältnis ihrer Stücke.

Das Programm lernt selbst eine Frage, etwa „Was steht ganz vorn?“. Wie groß ein Stück wird, hängt davon ab, wie gut die Stelle zu dieser Frage passt. Passt sie gut, bekommt sie ein großes Stück. Damit das Programm „vorn“ erkennt, bekommt jede Stelle eine feste Hausnummer (Fachwort: Positionskodierung).

Hat das Programm gelernt, dem Anfang ein großes Stück zu geben, kommt der Hinweis an. Eine Kette, in der er unterwegs verformt würde, gibt es dabei nicht.

Dieses Nachschlagen ist der Grundbaustein der Transformer, auf denen heutige Sprachprogramme wie Chatbots beruhen. Die Demo baut davon nur einen kleinen Teil.

Das Programm zum Ausprobieren

Zu dieser Seite gehört ein Programm zum Ausprobieren, die Demo. Der erste Knopf unten öffnet es. Der zweite führt zum Teil für Fachleute. Zum Verstehen brauchen Sie die Demo nicht.

Sie lässt Sie die Länge der Reihe und weitere Regler verstellen. Für eine Beispielreihe zeigt sie, wie groß jedes Kuchenstück wird. Die beiden Messungen weiter unten laufen darin mit festen Einstellungen.

Wie viel vom Anfang kommt an?

Gemessen wird so: Man ändert die erste Zahl um ein winziges Stück. Dann schaut man, wie stark sich dadurch das Ergebnis des Programms ändert. Diese Reaktion heißt hier der Messwert (Fachwort: Empfindlichkeit). Ein Messwert von eins hieße: Das Ergebnis ändert sich genauso stark wie die erste Zahl. Ist der Messwert null, nützt die erste Zahl dem Programm nichts. Beim Üben findet es dann nichts, woran es sich verbessern könnte.

Gemessen wird am noch ungeübten Programm. Seine Einstellungen werden dafür einmal zufällig gewählt. Bei einer sehr langen Reihe von 1200 Stellen ergibt sich:

  • Stille Post, einfach (RNN): Der Messwert ist winzig. Nach den 1200 Stationen ist von der Nachricht praktisch nichts mehr zu hören. Null ist er trotzdem nicht.
  • Stille Post mit sorgsamem Merkzettel (LSTM): Der Messwert ist ebenfalls winzig, aber größer als beim einfachen.
  • Nachschlagen (Attention): Der Messwert liegt bei etwa einem Tausendstel. Ändert sich die erste Zahl um eins, ändert sich das Ergebnis also noch um ein Tausendstel. Das ist viel mehr als bei den beiden anderen, und der Rechner kann damit normal weiterarbeiten.

Beim Nachschlagen sinkt der Messwert mit der Länge nur langsam. Zu Beginn bekommen alle Stellen ungefähr gleich große Stücke. Je mehr Stellen, desto kleiner jedes Stück. Der Anfang geht also auch hier etwas verloren, aber es gibt keine Kette, die den Hinweis immer weiter schluckt.

Nachschlagen ist nicht dasselbe wie leicht lernen

Nun der Haken. Zu Beginn weiß das Programm nicht, wo der Hinweis steht, und verteilt seine Aufmerksamkeit ungefähr gleichmäßig. Beim Üben muss es dem Anfang erst selbst ein großes Stück zuteilen.

Die Demo lässt das Programm für jede Länge in sechs Durchgängen üben, jeweils mit zufällig gewählten Einstellungen. Ein Durchgang gilt als gelungen, wenn das Programm auf neuen Reihen fast immer richtig liegt. Die Ergebnisse:

  • Bei 10 Stellen gelingen alle 6 Durchgänge.
  • Bei 40 Stellen gelingen 5 von 6.
  • Bei 80 Stellen gelingt 1 von 6.
  • Bei 150 Stellen gelingt keiner.

Warum es bei langen Reihen schwerer wird, hat die Demo nicht untersucht. Eine Vermutung: Je länger die Reihe, desto mehr Rauschen steckt in der Mischung, und der eine Hinweis geht darin unter. Das Programm muss dann fast alles ausblenden.

Was hilft?

Die Hausnummern nahm die Demo auf, nachdem das Üben bei langen Reihen ohne sie scheiterte. Sie helfen, lösen das Problem aber nicht. Auch mit Hausnummern gelingt das Üben bei langen Reihen nur selten.

Nicht ausprobiert hat die Demo die Verstärkungen, die echte Systeme nutzen. Das sind mehrere Aufmerksamkeiten nebeneinander, die an mehreren Stellen zugleich nachschlagen, mehrere Schichten übereinander und Lernschritte, die sich unterwegs anpassen. Ob sie hier bei langen Reihen helfen, ist offen.

Häufige Missverständnisse

  • „Praktisch null ist null.“ Nein. Der Messwert des einfachen Programms ist winzig, aber nicht null. Eine gröbere Messweise hatte ihn fälschlich als null gemeldet.
  • „Wenn der Anfang ankommt, ist die Aufgabe gelöst.“ Nein. Die erste Messung prüft das ungeübte Programm: Kommt der Anfang an? Ob das Üben ihn findet, ist eine zweite Frage mit eigenem Ergebnis.

Wie ernst ist das Rechenbild zu nehmen?

Die Aufgabe ist künstlich: Der Hinweis steht immer an derselben Stelle, der Rest ist Zufall. Das Programm ist stark verkleinert, mit einer einzigen Aufmerksamkeit in einer einzigen Schicht. Die Aussagen beschreiben dieses Rechenbild, nicht echte Systeme.

Was Sie mitnehmen:

  • Fragen Sie bei jeder Weitergabekette, wie viel vom Anfang am Ende noch ankommt.
  • Fragen Sie bei jedem Nachschlageverfahren, wer ihm beibringt, wohin es schauen soll.
  • Dass ein Aufbau etwas möglich macht, heißt nicht, dass es sich leicht lernen lässt. Prüfen Sie beides getrennt.

Hinweis: Alle Demos rechnen mit synthetischen oder frei verfügbaren Beispieldaten und laufen auf einem externen Anbieter (Datenschutz). Bitte geben Sie darin keine vertraulichen oder personenbezogenen Daten ein. Die Ergebnisse gelten für die jeweilige Demo-Instanz und lassen sich nicht ungeprüft auf reale Fälle übertragen; für darauf gestützte Entscheidungen übernehme ich keine Gewähr.

Teil 2 · Für Fachleute

Modell und Annahmen

Dieser Teil ist eigenständig lesbar. Er beschreibt die Aufgabe, die drei verglichenen Netze und die beiden Messungen der Demo.

  • Aufgabe: eine Folge \(x_0, \dots, x_{T-1}\) der Länge \(T\). An der festen Position 0 steht das Signal, \(x_0 = y + \text{Rauschen}\) mit dem Etikett \(y \in \{-1, +1\}\). Alle übrigen \(x_t\) sind normalverteiltes Rauschen mit einstellbarer Streuung. Gesucht ist \(y\) als Vorzeichen eines Ausgabewerts \(s\). Das Signal steht in jedem Beispiel an derselben Stelle.
  • Attention (ein Kopf, eine Schicht): Einbettung \(u_t = w\,x_t + b + p_t\) mit gelernten Vektoren \(w, b \in \mathbb{R}^d\) und fester Sinus-Positionskodierung \(p_t\) (nicht gelernt, für jedes \(T\) definiert). Schlüssel \(k_t = W_k u_t\), Wert \(v_t = W_v u_t\). Eine gelernte Anfrage \(q \in \mathbb{R}^d\), die nicht aus der Eingabe abgeleitet wird. Ausgang \(s = w_o^{\top}\,\text{out} + b_o\) mit gelerntem \(w_o\) und \(b_o\).
  • Einordnung: Weil \(q\) nicht von der Eingabe abhängt, ist das strenggenommen keine Selbstaufmerksamkeit, sondern Aufmerksamkeits-Pooling mit einer festen gelernten Anfrage. Mit nur einer Anfrage wächst der Rechenaufwand linear in \(T\). Das ist eine Ablesung dieser Seite aus dem Aufbau, keine Messung.
  • Vergleichsnetze: ein tanh-RNN und ein LSTM mit drei Gattern (Vergessen, Eingabe, Ausgabe) und einem Kandidaten, dessen Vergessens-Bias mit eins beginnt. Beide haben \(d\) verdeckte Einheiten und einen skalaren Ausgang auf dem letzten Zustand.
  • Training und Erfolg: einfaches SGD ohne Curriculum auf dem Perzeptron-Verlust \(\max(0, -y\,s)\) (Hinge-Verlust mit Schwelle null). Nur falsch klassifizierte Beispiele erzeugen einen Gradienten. Der Rückwärtspass ist von Hand geschrieben. Ein Durchgang gilt als Erfolg, wenn die Genauigkeit auf neu erzeugten Folgen mindestens neun Zehntel erreicht. Regler sind Länge \(T\), Einbettungsdimension \(d\), Zahl der Trainingsbeispiele, Rauschstreuung, Lernrate, Epochenzahl und Zufallsstart.
  • Voreinstellungen der Messreihen: \(d\) gleich acht, sechzig Trainingsbeispiele, vierzig Testfolgen, Rauschstreuung drei Zehntel bei Signalbetrag eins, Lernrate drei Zehntel, sechzig Epochen. Startgewichte gleichverteilt in \(\pm\sqrt{6/(n_{\text{ein}} + n_{\text{aus}})}\) mit den Eingangs- und Ausgangszahlen der jeweiligen Matrix, alle Biases null außer dem Vergessens-Bias des LSTM. Bei dieser Streuung stimmt das Vorzeichen von \(x_0\) allein fast immer: Die Fehlerwahrscheinlichkeit liegt nach Rechnung dieser Seite unter einem Promille. Die Schwelle ist also erreichbar.
  • Empfindlichkeit: \(E_T = |\partial s/\partial x_0|\) an einer nicht trainierten Initialisierung, exakt per Complex-Step-Ableitung \(E_T = |\mathrm{Im}\,s(x_0 + i\varepsilon)|/\varepsilon\) mit winzigem \(\varepsilon\). Je Netz gilt eine feste Initialisierung und je \(T\) eine feste Zufallsfolge. Es wird kein Training gebraucht.
  • Messreihen: Empfindlichkeit für \(T \in \{2, 10, 40, 80, 150, 300, 600, 1200\}\). Erfolgsquote nur für Attention, für \(T \in \{10, 40, 80, 150\}\), mit je 6 zufälligen Initialisierungen.

Die Formeln

Die Anfrage wird mit jedem Schlüssel verglichen. Ein Softmax über alle Positionen macht daraus Gewichte, die Ausgabe ist die gewichtete Summe der Werte:

\[\alpha_t=\text{softmax}_t(q\cdot k_t/\sqrt{d})\]

\[\text{out}=\sum_t \alpha_t v_t\]

Die \(\alpha_t\) sind nichtnegativ und summieren sich zu eins. Die Weglänge im Rechengraphen von jeder Position zur Ausgabe ist unabhängig von \(T\) ein Schritt, \(O(1)\). Beim RNN und LSTM führt sie über bis zu \(T\) Zwischenzustände, \(O(T)\). Das ist eine Aussage über Weglängen, nicht über den Rechenaufwand.

Herleitungen Schritt für Schritt

Die folgenden Herleitungen sind Rechnungen dieser Seite, keine Messungen der Demo. Wo die Demo dieselbe Aussage prüft, steht es dabei.

Die Empfindlichkeit der Attention in geschlossener Form.

  • Schritt 1: Nur \(u_0\) hängt von \(x_0\) ab, und \(\partial u_0/\partial x_0 = w\). Damit ändern sich nur \(v_0\) und die Bewertung \(z_0 = q\cdot k_0/\sqrt{d}\), und es gilt \(\partial z_0/\partial x_0 = q^{\top}W_k w/\sqrt{d}\).
  • Schritt 2: Für den Softmax ist \(\partial\alpha_t/\partial z_0 = \alpha_t(\delta_{t0} - \alpha_0)\). Daraus folgt \(\sum_t (\partial\alpha_t/\partial x_0)\,v_t = \alpha_0\,(v_0 - \text{out})\,\partial z_0/\partial x_0\).
  • Schritt 3: Zusammen mit \(\partial v_0/\partial x_0 = W_v w\) ergibt sich \(\partial s/\partial x_0 = \alpha_0\,\big[\,w_o^{\top}W_v w + w_o^{\top}(v_0 - \text{out})\,q^{\top}W_k w/\sqrt{d}\,\big]\). Die Empfindlichkeit ist also das Gewicht \(\alpha_0\) mal einer Klammer \(K\).
  • Schritt 4: Beim ungeübten Netz sind die Bewertungen klein, der Softmax liegt nahe an der Gleichverteilung, und \(\alpha_0\) liegt nahe \(1/T\). Die Klammer \(K\) hängt von \(T\) nur über \(\text{out}\) ab (den gewichteten Mittelwert der Werte) und bleibt in der Größenordnung gleich. Also fällt \(E_T\) etwa wie \(1/T\), nicht geometrisch.
  • Folgerung: Das Üben kann \(E_T\) halten, indem es \(\alpha_0\) gegen eins schiebt. Es könnte auch \(K\) vergrößern. Die Demo prüft die Empfindlichkeit gegen eine unabhängige Vorwärts-Tangentenrechnung bis \(T = 1200\); die geschlossene Form stimmt auf Rundungsgenauigkeit mit der Complex-Step-Messung überein (Nachrechnung dieser Seite an mehreren Initialisierungen).

Warum das RNN geometrisch schwindet, und was das LSTM zeigt.

  • Schritt 1: Beim RNN ist \(h_t = \tanh(W_{xh}x_t + W_{hh}h_{t-1} + b_h)\). Die Ableitung des letzten Zustands nach \(x_0\) ist ein Produkt aus \(T-1\) Jacobi-Matrizen \(\mathrm{diag}(1-h_t^2)\,W_{hh}\), mal einem Anfangsfaktor.
  • Schritt 2: Für das Produkt zählt der mittlere logarithmische Wachstumsfaktor entlang des Pfads (der Lyapunov-Exponent), nicht der Mittelwert der Normen. Ist er negativ, fällt das Produkt geometrisch. Dann verdoppelt sich der Exponent der Zehnerpotenz, wenn sich \(T\) verdoppelt. Die Tabelle zeigt es: bei 300, 600 und 1200 Stellen stehen 5,84·10⁻²¹, 4,87·10⁻⁴¹ und 1,38·10⁻⁸³. Aus der Tabelle gerechnet fällt der Wert je Schritt um etwas mehr als ein Achtel bis knapp ein Sechstel: von 40 bis 300 nahezu konstant, danach etwas stärker.
  • Schritt 3: Bei der Voreinstellung hat die Zufallsmatrix \(W_{hh}\) einen Spektralradius, der je nach Initialisierung der Größenordnung nach bei eins liegt (nachgerechnet an acht Initialisierungen: Werte unter und über eins). Der Faktor \(1-h_t^2 \le 1\) verkleinert ihn, und wie stark, hängt von der Initialisierung ab. Das passt zur großen Streuung der RNN-Werte über Initialisierungen (siehe Grenzen).
  • Messbefund ohne Herleitung (LSTM): Der Wert ist von 40 bis 150 etwa konstant und fällt erst ab 300 schnell, dann mit nahezu konstantem Faktor je Schritt, der näher an eins liegt als beim RNN. Je Länge gilt eine eigene Zufallsfolge; die Schwankung im flachen Bereich kann daher auch Streuung der Folge sein. Warum der Wert bis 150 flach bleibt, hat diese Seite nicht untersucht.

Warum gleichmäßige Aufmerksamkeit das Signal verdünnt.

  • Schritt 1: Sind alle \(\alpha_t = 1/T\), ist \(\text{out}\) der Mittelwert der \(v_t\).
  • Schritt 2: Der Signalanteil von \(x_0\) in \(\text{out}\) ist \(1/T\) mal ein fester Vektor. Das unabhängige Rauschen der übrigen \(T-1\) Stellen mittelt sich nur mit der Wurzel: seine Streuung wächst relativ zum Signalanteil wie \(\sqrt{T}\).
  • Schritt 3: Das Verhältnis von Signal zu Rauschen fällt also etwa wie \(1/\sqrt{T}\). Eine grobe Nachrechnung an einer ungeübten Initialisierung stimmt der Richtung nach überein.
  • Schritt 4: Zur Größenordnung der nötigen Schärfung: Damit \(\alpha_0\) so groß wird wie die Summe aller übrigen Gewichte, wenn diese gleich bewertet sind, muss die Bewertung von Position 0 um \(\ln(T-1)\) höher liegen. Das wächst nur logarithmisch mit \(T\). Für richtiges Klassifizieren ist ein solches \(\alpha_0\) keine Bedingung; wie viel Schärfung nötig ist, hängt vom Signal-Rausch-Verhältnis ab. Ob die Zahl der Konkurrenten die sinkende Erfolgsquote erklärt, lässt diese Rechnung offen.

Durchgerechnet: die Zeile für 1200 Stellen

Rechnung dieser Seite, keine Messung der Demo: Nach der geschlossenen Form ist \(E_{1200} = \alpha_0\,|K|\). Bei annähernd gleichmäßiger Aufmerksamkeit hat \(\alpha_0\) die Größe \(1/1200\). Die gemessene Zahl 0,00102 entspricht dann einer Klammer \(K\) von der Größenordnung eins. Mit dem Code der Demo nachgerechnet liegen \(|K|\) und \(\alpha_0\,T\) für die gemessene Initialisierung jeweils nahe eins. Beim Übergang von 40 auf 1200 Stellen wächst \(T\) auf das Dreißigfache, und \(E_T\) sinkt auf rund ein Vierzigstel. Das passt zu \(1/T\) bis auf einen kleinen Faktor, der aus \(K\) und der leichten Abweichung von der Gleichverteilung stammt.

In derselben Zeile liegen rund achtzig Zehnerpotenzen zwischen RNN und Attention und rund zwanzig zwischen LSTM und Attention (ebenfalls Rechnung dieser Seite).

Befunde

Die Tabelle zeigt die Empfindlichkeit \(E_T\) für eine einzige feste Initialisierung je Netz, ohne Training. Sie ist deterministisch. Die Tests der Demo prüfen einzelne Werte als Bänder (RNN bei 300, 600 und 1200 Stellen, LSTM und Attention bei 1200) und die Reihenfolge ab 40 Stellen. Die Messmethode prüft ein unabhängiges Orakel bis 1200 Stellen.

TRNNLSTMAttention
20,3110,000810,432
100,003270,07260,106
407,4·10⁻⁵0,004010,0387
802,50·10⁻⁷0,003410,0197
1509,25·10⁻¹²0,004230,0116
3005,84·10⁻²¹5,96·10⁻⁵0,00588
6004,87·10⁻⁴¹2,13·10⁻¹¹0,00234
12001,38·10⁻⁸³1,03·10⁻²³0,00102
FrageBefund
Gilt RNN ≤ LSTM ≤ Attention? (Empfindlichkeit, eine Initialisierung)Ja für alle gemessenen Längen von 10 bis 1200. Bei 2 Stellen ist es anders: dort ist das RNN größer als das LSTM.
Folgt daraus zuverlässiges Lernen? (Erfolgsquote, Attention allein, SGD, kein Curriculum, 6 Initialisierungen je Länge)Nein: 100 % bei 10 Stellen, 83 % bei 40, 17 % bei 80 und 0 % bei 150. Die Quote sinkt mit der Länge, aber ohne exponentiellen Gradientenschwund wie beim RNN. Die Deutung der Demo, mehr konkurrierende Positionen erschwerten das Schärfen der Aufmerksamkeit, ist nicht gemessen.
Stimmt der Rückwärtspass? (Gradienten-Check gegen finite Differenzen)Der größte relative Fehler beträgt 1,6·10⁻⁸ und liegt unter der Schranke 10⁻⁶.
Trifft die Korrektheitskette zu? (stark auf eine Position konzentrierte Aufmerksamkeit)Ja: Die Ausgabe 0,186265 ist gleich dem von Hand berechneten Wert \(w_o^{\top}v_j + b_o\) (ebenfalls 0,186265).
War die erste Messweise richtig? (Empfindlichkeit per finiter Differenz mit \(\varepsilon = 10^{-4}\))Nein, sie hatte Rundungsrauschen der Größe 10⁻¹³. Sie meldete beim RNN ab 300 Stellen „0,0“ und beim LSTM bei 1200 Stellen 5,2·10⁻¹⁴, beides Messartefakte. Die wahren Werte sind 1,4·10⁻⁸³ und 1,0·10⁻²³, bestätigt durch eine unabhängige Tangentenrechnung und den Complex-Step.

Grenzen und was die Messung zeigt

  • Eine Initialisierung, eine Folge je Länge: Die Tabelle ist eine Aussage über diese eine Initialisierung. Nachgerechnet mit dem Code der Demo an acht Initialisierungen (darunter die der Tabelle) streuen die RNN-Werte bei fester Länge über viele Größenordnungen, und einzelne RNN-Initialisierungen liegen bei 1200 Stellen über dem kleinsten Attention-Wert. Auch bei 40 und bei 300 Stellen wird die Reihenfolge von einzelnen Initialisierungen verletzt. Im Median über diese Initialisierungen gilt dieselbe Reihenfolge. Die Reihenfolge der Tabelle ist also typisch für den Median, aber nicht für jede Initialisierung gültig.
  • Erfolgsquote grob: Sechs Durchgänge je Länge geben Sprünge von einem Sechstel, und die Quote ist eine Schwellenzahl. Jeder Zufallsstart legt Startgewichte und Daten fest. Nachgerechnet reichen die verfehlten Läufe bei langen Reihen vom Niveau des Ratens bis deutlich darüber. Die Quote misst die Demo nur für Attention. Ein Vergleich mit RNN und LSTM unter denselben Bedingungen steht hier nicht, und die Demo behauptet auch keinen.
  • Empfindlichkeit ist kein Lernnachweis: Sie wird an der Initialisierung gemessen und zeigt nur, ob zu Beginn ein Signal vom Anfang zur Ausgabe läuft. Das Training verändert sie. In den Messreihen geht der milde Abfall der Empfindlichkeit mit einer sinkenden Erfolgsquote zusammen; eine Voraussetzung oder Garantie für Lernbarkeit zeigt das nicht.
  • Leichte Aufgabe: Das Signal steht immer an Position 0, und die feste Positionskodierung macht diese Stelle erkennbar. Die Ergebnisse gelten für diese Aufgabe, nicht für Aufgaben, bei denen die relevante Stelle wechselt oder die Reihenfolge relativ zueinander zählt. Eine relative Positionskodierung ist nicht umgesetzt.
  • Aufbauentscheidungen: Eine aus dem letzten, verrauschten Zeitschritt abgeleitete Anfrage ließ das Training bei jeder Länge vollständig scheitern; die Demo nutzt deshalb eine gelernte, eingabeunabhängige Anfrage. Dazu kommt die feste Sinus-Positionskodierung. Sie verbesserte den Erfolg, löste ihn aber nicht: Bei 80 Stellen bleiben 17 %, bei 150 Stellen 0 %. Die Deutung der Demo, ohne Kodierung verwechsle rein inhaltsbasierte Aufmerksamkeit den Hinweis mit Extremwerten des Rauschens, ist nicht gesondert gemessen. Nachgerechnet mit dem heutigen Code und ohne Kodierung gelingt höchstens ein Durchgang von sechs bei 10 Stellen und keiner bei 40, 80 und 150. Die Kodierung hilft demnach schon bei kurzen Folgen. Beide Entscheidungen sind Teil des gemessenen Aufbaus.
  • Kein echter Transformer: ein Kopf, eine Schicht, keine Layer-Normalisierung, keine Residualverbindung, keine Lernraten-Zeitpläne, keine Stapelverarbeitung. Ob diese Bausteine die Erfolgsquote bei langen Folgen verbessern, ist nicht gemessen.
  • Kosten nicht gemessen: Der Preis des direkten Zugriffs ist bei einer Anfrage je Position ein Rechenaufwand, der quadratisch mit \(T\) wächst. Das Beispiel hat nur eine Anfrage und misst ihn nicht. Lineare Alternativen wie Zustandsraummodelle (Mamba) sind erwähnt, aber nicht gebaut.

Quellen

  • Vaswani, A. et al. (2017). Attention Is All You Need. NeurIPS 2017 (arXiv:1706.03762).
  • Bahdanau, D., Cho, K. und Bengio, Y. (2014). Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473 (früher Aufmerksamkeitsmechanismus).
  • Gu, A. und Dao, T. (2023/2024). Mamba: Linear-Time Sequence Modeling with Selective State Spaces. (lineares Gegenstück zum quadratischen Aufwand der Aufmerksamkeit; hier nicht umgesetzt).

Titel, Jahr und arXiv-Nummern der ersten beiden Arbeiten sind bekannt und stimmen. Die Angabe zu Mamba ist nur aus der Demo übernommen und nicht gegengeprüft.