- Decoder-only-Transformer sind zur Standardarchitektur für LLMs geworden, doch in langen Kontexten schwankt die Leistung durch Attention-Rauschen, bei dem Schlüsselinformationen übersehen und Aufmerksamkeit auf irrelevante Token verteilt wird
- Differential Attention teilt Query und Key in zwei Gruppen, erzeugt zwei Softmax-Attention-Maps und berechnet den finalen Attention-Score, indem nach Anwendung eines lernbaren λ die zweite Map subtrahiert wird
- Der DIFF Transformer zeigte in Experimenten mit größerer Modellgröße, mehr Trainingstokens und längerer Kontextlänge bessere Ergebnisse als der Transformer; für ähnliche Leistung benötigt er nur etwa 65 % der Modellgröße oder der Trainingstokens
- Vorteile zeigen sich bei der Modellierung langer Kontexte, beim Auffinden von Schlüsselinformationen, bei der Minderung von Halluzinationen, beim In-Context Learning, beim mathematischen Schlussfolgern und bei der Verringerung von Activation Outliers; bei QA und Zusammenfassung sinkt der Einfluss irrelevanter Kontexte
- Da das Gesamtlayout identisch zum Transformer bleibt und nur die Softmax-Attention ersetzt wird, lassen sich Parameterzahl und Rechenaufwand angleichen und FlashAttention weiterverwenden
Das Problem von Attention-Rauschen im Transformer
- Decoder-only-Transformer sind de facto die Standardarchitektur für LLMs; im Kern steht ein Attention-Mechanismus, der die Wichtigkeit von Token in einer Sequenz per Softmax gewichtet
- LLMs tun sich schwer damit, Schlüsselinformationen im Kontext präzise zu finden; insbesondere bei viel irrelevanten Kontexten werden Hinweise auf die richtige Antwort leicht überdeckt
- In Beispielen, in denen die richtige Antwort in der Mitte eines Dokumentenstapels gefunden werden muss, neigen Transformer dazu, der richtigen Antwort nur kleine Attention-Scores zuzuweisen und irrelevanten Kontexten übermäßig hohe Scores zu geben
- Solche nicht zu ignorierenden Attention-Scores, die irrelevanten Kontexten zugewiesen werden, wirken als Attention-Rauschen
- Das in Figure 1 gezeigte Beispiel zum Multi-Needle Retrieval weist für Transformer bzw. Differential Transformer Genauigkeiten von 55 % und 85 % aus
Funktionsweise von Differential Attention
- Der DIFF Transformer ist eine Grundarchitektur für Sequence Modeling und LLMs, die das Makrolayout des bestehenden Transformers beibehält und die gewöhnliche Softmax-Attention durch Differential Attention ersetzt
- Aus dem Eingabewert
Xwerden Query, Key und Value projiziert; dabei werden Query und Key in zwei GruppenQ1, Q2, K1, K2aufgeteilt, während Value alsVbleibt - Die Attention-Ausgabe wird als Differenz zweier Softmax-Attention-Maps berechnet
DiffAttn(X) = (softmax(Q1K1^T / √d) − λ softmax(Q2K2^T / √d))V- Durch das Abziehen der zweiten Attention-Map von der ersten werden gemeinsame Rauschanteile entfernt
λist ein lernbarer Skalar und wird zur Anpassung der Lerndynamik wie folgt reparametrisiertλ = exp(λq1 · λk1) − exp(λq2 · λk2) + λinit- In den Baseline-Experimenten wird
λinit = 0.8 − 0.6 × exp(−0.3 · (l − 1))verwendet - Es wurde auch geprüft, für alle Layer dasselbe
λinit, etwa0.8, zu verwenden; in den Ablationsstudien zeigte sich die Leistung gegenüber Unterschieden in der Initialisierungsstrategie relativ robust
- Dieser Ansatz ähnelt der Idee eines Differenzverstärkers, der Common-Mode Noise über die Differenz zweier Signale entfernt, sowie dem Prinzip von Noise-Cancelling-Kopfhörern
- Naderi et al. zeigten, dass Differential Attention die spektrale Verteilung der Attention-Matrix ausgewogener macht und so Rank Collapse wirksam behebt
Multi-Head-Struktur und Gesamtarchitektur
- Multi-Head Differential Attention verwendet für jeden Head unterschiedliche Projektionsmatrizen; innerhalb desselben Layers wird der Skalar λ zwischen den Heads geteilt
- Auf die Ausgabe jedes Heads wird unabhängig RMSNorm angewendet, danach wird mit
(1 − λinit)multipliziert; anschließend werden die Heads entlang der Channel-Dimension konkateniert und durch die AusgabeprojektionWOgeführt - Die GroupNorm-Bezeichnung in Figure 2 hebt hervor, dass auf jeden Head unabhängig Normalisierung angewendet wird
- Differential Attention neigt zu spärlicheren Mustern, sodass die statistischen Informationen zwischen den Heads vielfältiger sind
- Die headweise Normalisierung normalisiert jeden Head vor der Konkatenation und verbessert so die Gradientenstatistik
- Ein vollständiger DIFF-Transformer-Layer besteht aus zwei Modulen
MultiHead(LN(Xl)) + XlSwiGLU(LN(Yl)) + Yl
- Strukturell werden pre-RMSNorm und SwiGLU verwendet; das folgt den Verbesserungen der LLaMA-Familie
Effizienz und Lernstabilität
- Differential Attention kann FlashAttention direkt wiederverwenden und dadurch die Modelleffizienz deutlich verbessern
- Die Anzahl der Heads wird als
h = dmodel / 2dfestgelegt, wobeidder Head-Dimension des Transformers entspricht - Diese Einstellung dient dazu, Parameterzahl und Rechenkomplexität mit dem Transformer anzugleichen
- Nach der Head-Normalisierung wird der feste Multiplikator
(1 − λinit)verwendet, um den Gradientenfluss mit dem des Transformers abzugleichen - Appendix G zeigt, dass der gesamte Gradientenfluss ähnlich wie beim Transformer erhalten bleibt; dadurch können ähnliche Hyperparameter übernommen und Lernstabilität gesichert werden
Versuchsergebnisse und praktische Wirkung
- In den Sprachmodellierungs-Experimenten wurde der DIFF Transformer durch größere Parameterzahl, mehr Trainingstokens und längere Kontextlänge skaliert
- In den Scaling Curves benötigt der DIFF Transformer für eine ähnliche Sprachmodellierungsleistung wie der Transformer nur etwa 65 % der Modellgröße oder der Trainingstokens
- Auch bei Downstream-Tasks zeigte er bessere Leistung als der Transformer; in Long-Sequence-Evaluierungen nutzt er wachsende Kontexte zunehmend effektiv
- Beim Auffinden von Schlüsselinformationen zeigt sich ein Muster mit höheren Attention-Scores für den richtigen Span und niedrigeren Scores für irrelevante Kontexte
- Bei QA und Textzusammenfassung ist er weniger durch irrelevante Kontexte abgelenkt und mindert dadurch Halluzinationen
- Beim In-Context Learning erhöht er die Genauigkeit und ist zugleich robuster gegenüber Order Permutation, die als chronisches Robustheitsproblem gilt
- Die Verringerung von Activation Outliers eröffnet neue Möglichkeiten für Quantisierung
1 Kommentare
Hacker-News-Kommentare
Ich habe das Gefühl, dass hier die zentrale Intuition übersehen wird. Ich verstehe das Problem, dass normale Softmax-Attention irrelevanten Dingen nur schwer Aufmerksamkeit nahe 0 zuweisen kann, und ich verstehe auch, dass eine subtraktive Struktur exakte oder nahezu 0 liegende Attention-Gewichte ohne Ausreißer-Aktivierungen erzeugen kann.
Allerdings scheint diese Struktur auch leicht negative Attention-Gewichte erzeugen zu können, was so wirkt, als würde man dem Negativ des Wertevektors positive Aufmerksamkeit geben. Intuitiv erscheint es schwierig, die Balance so zu halten, dass alles Uninteressante in der Nähe von 0 bleibt. Figure 1 zeigt zwar, dass es gut funktioniert, daher zweifle ich das Potenzial nicht an, aber ich kann mir noch nicht gut vorstellen, wie das Netzwerk das konkret schafft.
exp()/1+∑exp()sein.Entscheidend ist, dass im Nenner eine 1 hinzukommt. Im negativen Limes kann Softmax dadurch 0 statt irgendeines Epsilons werden. Man kann denselben Effekt auch erzielen, indem man zu
xeinen zusätzlichen Wert 0 hinzufügt. Der Nachteil ist, dass man das Modell von Grund auf neu trainieren müsste, um das zu korrigieren.Wenn man sich die erste Abbildung der Attention-Gewichte ansieht, gibt es im Rauschbereich tatsächlich negative Scores. Trotzdem ist die Aufmerksamkeit für diesen Bereich ohnehin sehr klein. Die zweite Attention-Map muss nur das Rauschen der ersten vorhersagen, und da sie vollständigen Zugriff auf die erste Eingabe hat, ist das eine Aufgabe, die sie ziemlich präzise erfüllen kann.
Um auf die Realwelt-Analogie des Papers zurückzukommen: Noise-Cancelling-Kopfhörer haben über das Mikrofon Zugriff auf das Geräusch, das das Ohr hört, und können deshalb ein präzises Auslöschungssignal erzeugen. Genauso weiß die zweite Attention-Map, was in die erste eingeht, und kann daher ein entsprechendes Auslöschungssignal erzeugen. Perfekt ist das nicht, aber Noise-Cancelling-Kopfhörer sind auch nicht perfekt und erreichen trotzdem 99 %, was für eine Leistungsverbesserung ausreicht.
Pruning ist in der Literatur bereits recht etabliert als Methode, die Zahl der Parameter überraschend gut zu reduzieren, und man kann grob bis auf 40 % herunterkommen. Das reale Modell wird wahrscheinlich nicht exakt so funktionieren, aber es würde mich nicht überraschen, wenn es letztlich einfach einen normalen Transformer approximiert.
Sehr clever. Ich mag diese Art detailorientierter Arbeit, und die Änderung ist klein genug, dass andere sie wohl leicht anwenden können. Großartig.
Allerdings macht mir der letzte Satz der Einleitung zu Abschnitt „2 Differential Transformer“ etwas Sorgen. Dort heißt es, dass Verbesserungen aus früheren Papers verwendet werden, aber aus dem grammatischen Kontext ist nicht klar, ob diese Verbesserungen sowohl im normalen Transformer als auch im Diff Transformer enthalten sind. Falls nicht, wird der Vergleich unscharf. Die Formulierung „main difference“ im direkt vorangehenden Satz hat bei mir die Alarmglocken läuten lassen.
Natürlich kann es sein, dass gutmeinende Forschende das wissen und deshalb nicht das Bedürfnis hatten, es ausdrücklich klarzustellen. Aber bei manchen publizierten Forschungsarbeiten in diesem Bereich kann man gar nicht vorsichtig genug sein.
Das erinnert mich an MoE-Architekturen, bei denen das optimale kleine Modell ausgewählt wird, um einen Teil oder die Gesamtheit einer Inferenzaufgabe zu bearbeiten. Ich frage mich, ob MoE einen ähnlichen Vorteil erhält, weil der Transformer dazu gezwungen wird, zwischen alternativen Möglichkeiten zu unterscheiden.
Wenn die Zahlen jedenfalls Bestand haben, wird das vermutlich breit übernommen. Wie gesagt: Es scheint praktisch keine Nachteile zu geben, und die Reproduktion wirkt einfach.
Wie bei den meisten Dingen in dieser neuen Welt des Machine Learning ist es ziemlich verwirrend, warum das tatsächlich funktioniert
Die Analogie mit Noise-Cancelling-Kopfhörern hilft zwar, aber dort weiß man klar, was Signal und was Rauschen ist. Wenn man das hier auch wüsste, ist unklar, warum man überhaupt erst eine Rauschunterdrückung bräuchte
Noch schlimmer ist, dass die Gradienten bei niedrigen Attention-Werten sehr klein werden, sodass viele Gewichtsupdates nötig sind, um solche Fehler wieder rückgängig zu machen. Zieht man dagegen die Ausgaben zweier Softmax voneinander ab, kann das Modell für manche Werte Gewichte vorhersagen, die exakt 0 sind, und zugleich einen vernünftigen Gradientenfluss beibehalten
Das Modell weiß also bereits, was Rauschen ist, aber eine einzelne Softmax macht es schwer, dieses auszuschließen. Außerdem zwingt eine einzelne Softmax die Ausgabe aller Heads dazu, innerhalb der konvexen Hülle der Value-Vektoren zu bleiben, während diese Variante es jedem Head erlaubt, sein eigenes Lambda zu wählen und den Ausgabebereich außerhalb der durch die Values vorgegebenen konvexen Hülle zu verschieben. Dadurch steigt die Ausdrucksstärke des Gesamtmodells
Ein besseres Beispiel ist Differenzsignalübertragung, wie sie in professionellem Audio und in vielen digitalen Signalprotokollen wie Ethernet, HDMI und USB verwendet wird. Statt eine einzelne Leitung gegen Masse als Bezug zu nutzen, wird das Signal als Differenz zwischen zwei Leitungen übertragen. Beide Leitungen tragen dasselbe Signal mit entgegengesetzter Polarität, und weil sie parallel verlaufen, wirkt externes Rauschen auf beide gleich
Die Spannung verändert sich zwar, aber die Spannungsdifferenz zwischen den beiden Leitungen bleibt gleich. Am Empfänger werden die beiden Spannungen voneinander subtrahiert, und das Rauschen hebt sich einfach auf
Ein einfacher Weg dorthin wäre, die Softmax ganz zu entfernen oder stattdessen sigmoid zu verwenden, aber in der Praxis scheint Softmax besser zu funktionieren
Vereinfacht gesagt ist RoPE eine moderne Strategie, mit der das Modell bei der Attention Informationen darüber bekommt, wie weit Query und Key voneinander entfernt sind. Es ist derzeit die beste verfügbare Strategie, hat aber den großen Nachteil, manche Verbindungen zwischen weit entfernten Tokens viel stärker zu machen als gewünscht. Xpos (https://arxiv.org/pdf/2212.10554) ist ebenfalls ein Microsoft-Paper, das Probleme von RoPE behandelt, und auf Seite 4 in Figure 1 sieht man eine visuelle Interpretation der sinusförmigen Attention-Stärke. Eigentlich möchte man, dass sie glatt verläuft
Ein wichtiger Grund dafür, dass Differential Transformer besonders bei langen Sequenzen gut funktioniert, könnte sein, dass sich das Rauschen aufhebt, weil die relative Stärke von RoPE denselben Wert hat, auch wenn
q1undq2beide zu keinem Token passen. Übrig bleiben nur die beabsichtigten Übereinstimmungen, allerdings zum Preis, dass die von RoPE ursprünglich eingebrachten Werte etwas abgeschwächt werdenNatürlich ist das nur eine Hypothese. Das ließe sich leicht prüfen, indem man beide mit einer Baseline vergleicht, die alibi attention (https://arxiv.org/pdf/2108.12409) nutzt. alibi hat andere Trade-offs, die dieser Ansatz nicht abmildert, aber das Ergebnis ist dennoch wirklich interessant
Die Intuition dafür, warum das funktioniert, scheint zu sein, dass die Landschaft des Gradientenabstiegs etwas freundlicher wird und sich so leichter in kleinen Schritten lernen lässt. Das Netzwerk wird nun ausdrücklich entlang der Idee entworfen, dass es anfangs viele Fehler in seinen Vorhersagen macht und mit der Zeit besser wird
Wenn ich "Differential attention takes the difference between two softmax attention functions to eliminate attention noise" richtig verstehe, scheint diese Architektur ein Trade-off zu sein: doppelter Attention-Speicher im Austausch für ein qualitativ besseres Modell oder für ähnliche Qualität bei weniger Parametern
Beim Satz "6.8B-size DIFF Transformer achieves a validation loss comparable to 11B-size Transformer, requiring only 62.2% of parameters" stellen sich mir ein paar Fragen. Wenn nur 60 % der Parameter nötig sind, gleicht das dann den doppelt so großen Attention-Raum aus, sodass die Speichereigenschaften ähnlich wie bei einem klassischen Transformer werden? Und unterscheidet sich dieser Trade-off spürbar zwischen Training und Inferenz?
Im Paper steht: "We set the number of heads h = dmodel/2d, where d is equal to the head dimension of Transformer. So we can align the parameter counts and computational complexity." Mit anderen Worten: Zur Kompensation wird die Zahl der Attention-Heads pro Layer halbiert
Ich frage mich, welche Geschichte hinter der Formel „We empirically find that the setting λᵢₙᵢₜ = 0.8 − 0.6 × exp(−0.3 · (l − 1)) works well in practice“ steckt
l, der negative Attention-Term kleiner ist als in den hinteren Schichten. Klingt plausibel. Man möchte anfangs wohl allem ein wenig Aufmerksamkeit geben, bevor man entscheidet, welche Positionen man sich tatsächlich genauer ansehen sollteAllerdings scheinen die Autoren diese Wahl im Paper nicht gesondert zu diskutieren
Der zentrale Punkt, den ich zunächst nicht verstanden hatte, war: Was passiert, wenn beide Attention-Gruppen dasselbe lernen? Da die Attention-Masken voneinander subtrahiert werden, fällt die gesamte Attention auf 0, wenn beide ähnliche Werte ausgeben, und der Loss wird groß
Die einzige Möglichkeit, den Loss zu verringern, besteht also darin, zu lernen, auf unterschiedliche Dinge zu achten. Eine der einfachsten Strategien, die sie lernen können, ist, wie das Paper behauptet, dass sich eine Gruppe auf relevanten Kontext konzentriert und die andere auf irrelevanten Kontext. So lernt eine Gruppe Rauschen, die andere Signal. In der Praxis ist das natürlich nicht so scharf getrennt, aber als Vereinfachung zum Verständnis ist es nützlich
Wenn beide Kopien identisch sind, ist auch der Softmax-Output identisch, also ist die Differenz überall 0, was sinnvoll erscheint. Wenn aber eine skalierte Kopie abgezogen wird, scheint der Prozess der Differenz-Normalisierung die Signalwerte stärker als das Rauschen hervorzuheben, sodass das Signal deutlicher hervortritt als vor der Normalisierung
Wenn ein Attention-Head von dem überrascht wird, was ein anderer Head gelernt hat, erhöht er die Gewichte; wenn beide dasselbe finden, ist das nicht besonders überraschend und die Gewichte werden gesenkt
Zugegeben, „Überraschung“ nimmt in meiner Wissensbasis einen ziemlich großen Bereich ein[1][2][3]. Sie ist ein subjektives Gefühl und zugleich eine Anpassungsfunktion des Geistes, eines der komplexesten adaptiven Systeme, die wir kennen
[1] https://plus.maths.org/content/information-surprise
[2] https://blakeelias.name/papers/Multi-Agent-Cooperation-Intri...
[3] https://complexity.simplecast.com/episodes/81/transcript
Ich frage mich, was hier verloren geht. Es scheint definitiv einen Trade-off zu geben
Ich frage mich, ob das Auswirkungen auf Kreativität oder die Fähigkeit zur Interpolation zwischen Konzepten hat. Halluzinationen und Kreativität scheinen recht eng verwandt zu sein. Ich verstehe Halluzinationen als etwas, das vom Interpolationsraum abweicht, den Menschen als passend empfinden
Natürlich können Fehler manchmal inspirierend sein, aber Kreativität ist sehr viel mehr als bloße Fehler
Solche Sprachmodelle sind Next-Token-Predictors. Das nächste Token wird vorhergesagt, indem aus dem Wahrscheinlichkeitsraum gesampelt wird, den das Modell ausgibt. Dieser Sampling-Prozess kann nichtdeterministisch sein
Halluzinationen entstehen, wenn dieses Sampling Tokens ergibt, die Sätze bilden, die falsch oder nicht beabsichtigt sind. Man könnte alles, was das Modell ausgibt, als Halluzination betrachten, aber wir trainieren das Modell darauf, einen Raum auszugeben, in dem die Wahrscheinlichkeit höher ist, dass es das halluziniert, was wir wollen. Sonst würde es nur bedeutungsloses Rauschen ausgeben
„Halluzination“ ist ein wirklich miserables Wort für das, was damit beschrieben werden soll
Ich frage mich, wie viel des Nutzens hier daher kommt, Positionsrauschen durch RoPE auszugleichen. Ich würde gern nicht nur die RoPE-Modelle hier sehen, sondern auch eine Tabelle, die eine ALiBi-Version und eine ALiBi-Baseline vergleicht
Trotzdem ist das eine enorme Verbesserung, und Glückwunsch an die Forschenden
Geht es hier darum, dass Softmax Werte nicht auf 0 drücken kann, man aber durch die Subtraktion zweier Softmax-Maps einen 0-Output erzeugen kann
Das ist ein gutes Problem, das gelöst werden sollte, aber ich halte den Ansatz für falsch
Um zu wissen, worauf geachtet wurde, und den Gesamtkontext zu kennen, müsste man das hierarchisch machen. Wenn der Differenzvektor mit demselben Input wie der Attention-Vektor berechnet wird, ist mir nicht klar, woher er wissen soll, wie der Attention-Vektor korrekt zu modifizieren ist