- Das attention softmax innerhalb des Transformers kann verhindern, dass ein Head „nichts tun“ wählt, was Quantisierung und Deployment mit wenig Speicher erschweren kann
- Ein Hinweis auf das Problem sind Ausreißer bei Weights/Activations in LLMs; eine Arbeit von Qualcomm AI Research analysiert, dass über 97 % der Ausreißer-Activations an Leerzeichen- und Interpunktionspositionen entstehen
- Das bisherige softmax weist jedem Element auch dann ein Gewicht von 1/k zu, wenn alle Eingaben sehr negativ sind;
softmax_1addiert dagegen 1 zum Nenner, sodass die Attention-Ausgabe gegen 0 gehen kann softmax_1erhält die relativen Verhältnisse, begrenzt die Summe aber auf einen Wert zwischen 0 und 1 und lässt dank positiver Ableitung auch einen nicht verschwindenden Gradienten übrig- Diese Änderung ist kein Patch, den man direkt an bestehende Modelle anhängt, sondern erfordert erneutes Training; bei Modellen wie LLaMA könnten schnelle Experimente über eine Zero-Prefix-Token-Methode möglich sein
Ausreißer, die Quantisierung erschweren
- In Transformer-Modellen treten Weights und Activations auf, die um mehrere Größenordnungen größer sind als andere Werte, und diese Werte scheinen für das Verhalten des Modells wichtig zu sein
- Solche Ausreißer führen bei üblicher ganzzahliger Scale-and-Bias-Quantisierung zu Leistungseinbußen und erschweren es, große Modelle in Umgebungen mit begrenztem RAM wie einem Mac Mini oder Raspberry Pi auszuführen
- Wenn sich der RAM-Verbrauch reduzieren lässt, entsteht sowohl in Cloud- als auch in Edge-Umgebungen mehr Spielraum für größere Modelle oder mehr Funktionen
- Quantizable Transformers: Removing Outliers by Helping Attention Heads Do Nothing von Qualcomm AI Research verknüpft Ausreißerwerte mit dem softmax im Attention-Mechanismus
- Die Analyse zeigt, dass über 97 % der Ausreißer-Activations in LLMs an Whitespace- und Interpunktionspositionen auftreten
- Clipped softmax hat ein Zero-Gradient-Problem, gated attention fügt Millionen neuer Parameter hinzu
Die Rolle von softmax im Transformer
- Die Eingabe-Embeddings eines Transformers sind Fließkommavektoren, die Wörter repräsentieren
- Metas LLaMA 2 nutzt eine Embedding-Vektorlänge von 3.204; bei Half Precision benötigt die Darstellung eines einzelnen Worts mehr als 6 KB
- Das Vocabulary umfasst normalerweise 30.000 bis 50.000 Einträge
- Ein Transformer wandelt Eingabevektoren in Ausgabevektoren gleicher Größe um; der finale Ausgabevektor wird genutzt, um das Token vorherzusagen, das auf das aktuelle Token folgt
- Die Residual Connection funktioniert so, dass Attention der ursprünglichen Wortinformation Kontextinformationen hinzufügt
- Zum Beispiel Kontextinformationen, die unterscheiden, ob
pupileinen Schüler oder die Pupille im Auge meint
- Zum Beispiel Kontextinformationen, die unterscheiden, ob
- Im letzten Schritt wird der Ausgabevektor in einen Vektor mit der Länge des Vocabulary umgewandelt und anschließend softmax angewendet, sodass er wie Wahrscheinlichkeiten für das nächste Token behandelt wird
- In der tatsächlichen Implementierung vertraut man den softmax-Ausgabewahrscheinlichkeiten nicht unverändert, sondern nutzt einen Sampling-Mechanismus
- Das softmax in der Ausgabestufe gilt als sinnvolle Wahl, weil es dem gesamten Vocabulary Gradienten gibt
Grenzen des internen Attention-softmax
- Die zentrale Formel der internen Attention lautet:
[ \textrm{Attention}(Q, K, V) = \textrm{softmax}\left(\frac{QK^T}{\sqrt{d}}\right)V ]
- In decoder-only Modellen starten (Q), (K) und (V) aus derselben Eingabesequenz, werden aber auf unterschiedliche Weise projiziert
- (QK^T) sucht nach Korrelationen zwischen Token-Embedding-Vektoren; auf jede Zeile wird softmax angewendet, und das Ergebnis dient als Gewichtung, um die Value-Vektoren der (V)-Matrix zu mischen
- Multi-Head Attention führt diesen Prozess in jeder Layer parallel über mehrere Heads aus
- Der Embedding-Vektor wird in mehrere Segmente aufgeteilt, und jeder Head fügt einem Segment des Ausgabevektors Informationen hinzu
- Das Problem ist, dass softmax jeden Attention Head zwingt, eine Annotation zu erzeugen
- Selbst wenn ein Head keine Information hinzuzufügen hat, erzeugt softmax eine Auswahl
- Je spezialisierter ein Head ist, desto wahrscheinlicher braucht er ein „Pass“; das bisherige softmax kennt aber keine Enthaltung
Vorschlag: softmax_1 und QuietAttention
- Die vorgeschlagene Änderung besteht darin, zum softmax-Nenner 1 hinzuzufügen
[ (\textrm{softmax}_1(x))_i = \frac{\exp(x_i)}{1+\sum_j \exp(x_j)} ]
- Beim bisherigen softmax konvergiert jedes Element gegen (1/k), selbst wenn alle (x)-Werte sehr negativ werden
[ \lim_{x_1 \to -\infty} \ldots \lim_{x_k \to -\infty} (\textrm{softmax}(x))_i = \frac{1}{k} \gt 0 ]
softmax_1konvergiert unter denselben Bedingungen bei jedem Element gegen 0
[ \lim_{x_1 \to -\infty} \ldots \lim_{x_k \to -\infty} (\textrm{softmax}_1(x))_i = 0 ]
- Durch diesen Unterschied kann ein Attention Head wählen, keine Informationen hinzuzufügen
- Die vorgeschlagene Attention-Formel lautet:
[ \textrm{QuietAttention}(Q, K, V) := \textrm{softmax}_1 \left(\frac{QK^T}{\sqrt{d}}\right)V ]
Eigenschaften von softmax_1 und Versuchsbedingungen
softmax_1verkleinert die Gesamtwerte etwas, doch da nach der Attention eine Normalisierung folgt, kann diese Verkleinerung kompensiert werden- Das relative Verhältnis der Ausgabevektoren ist dasselbe wie beim bisherigen softmax
[ \frac{(\textrm{softmax}_1(x))_i}{(\textrm{softmax}_1(x))_j} = \frac{(\textrm{softmax}(x))_i}{(\textrm{softmax}(x))_j} = \frac{\exp(x_i)}{\exp(x_j)} \quad \forall \ i, j ]
- Die Ableitung ist positiv und erhält damit einen nicht verschwindenden Gradienten; die Summe liegt zwischen 0 und 1, sodass die Ausgabe den kontrollierten Bereich nicht verlässt
- Dieses Problem wird nicht als Frage der numerischen Präzision, sondern als mathematisches Problem behandelt; zusätzliche Präzision allein löst es nicht
- Die Experimentidee besteht darin, jedem Eingabekontext einen Zero Vector voranzustellen und sicherzustellen, dass einschließlich des Positional Encoding kein Bias hinzugefügt wird
- Wenn die Null unverändert durchläuft, hat das den Effekt, jedem späteren softmax-Nenner 1 hinzuzufügen
- Bei LLaMA-Modellen mit Fixed Embedding und Special Prefix Token könnte das möglich sein
- Es handelt sich nicht um ein Experiment, das direkt auf bestehende Modelle angewendet wird; das Modell muss neu trainiert werden
- Die Werte, die man überprüfen möchte, sind Weight Kurtosis und die Infinity Norm der Activations
1 Kommentare
Meinungen auf Hacker News
Was der Autor vorschlägt, ist nicht der Softmax der finalen Ausgabe, sondern im Nenner des Softmax innerhalb der Attention 1 zu addieren.
Der Softmax in der Attention lässt das Key/Query-Matching wie Wahrscheinlichkeiten aussehen und ermöglicht so statt eines 0/1-Lookups einen Key-Value-Lookup mit kontinuierlichen Gewichten.
Addiert man 1 zum Nenner, wird die Summe der Gewichte kleiner als 1 und ist damit kein echter Wahrscheinlichkeitsvektor mehr. Wenn das Modell aber hohe Gewichte lernt, verhält es sich fast wie ein Wahrscheinlichkeitsvektor; es kann auch lauter niedrige Gewichte ausgeben und damit „von nichts überzeugt sein“ wählen.
Ob das in der Praxis gut ist, muss man schlicht testen, indem man ein LLM auf diese Weise trainiert. Ich vermute allerdings, dass der Unterschied nicht groß ist. Attention-Knoten mit geringer Zuversicht können schon jetzt die Scores vor dem Softmax ähnlich machen und so nahezu eine Gleichverteilung erzeugen; dann entsteht ein Mittelwert mehrerer Vektoren, der statistisch wahrscheinlich nahe bei 0 liegt.
Außerdem gibt es im Transformer bereits viele gelernte Gewichte, mit denen sich ein Opt-out umsetzen lässt, etwa die V-Matrix und die Feedforward-Schicht nach der Attention. Trotzdem gefällt mir der nichtakademische Ton des Artikels und die Haltung, an Grundideen herumzuprobieren. Ganz überzeugt bin ich nicht, aber solche Texte würde ich gern öfter lesen.
Da beim Ausführen großer Modelle der Speicher der Flaschenhals ist, wäre das, falls es stimmt, ziemlich bedeutsam.
Wie in der Passage, dass er diese Funktion ursprünglich ghostmax nennen wollte: Man kann es so sehen, dass es in x einen zusätzlichen Eintrag mit dem Wert 0 gibt und
exp(0)=1gilt, also auch in der V-Matrix einen Nullvektor, der das Ergebnis abschwächt.Es ist weniger „die Summe der Gewichte ist kleiner als 1, daher wird manchmal nichts ausgewählt“, sondern eher: Jedes Mal, wenn die Menge der Optionen betrachtet wird, wird auch die Option nichts tun zwangsweise mitbetrachtet.
Das ist der Unterschied zwischen „Wenn man nur einen Hammer hat, sieht alles wie ein Nagel aus“ und „Auch wenn man nur einen Hammer hat, schlägt man Nägel ein und ignoriert, was kein Nagel ist“.
Bei einem Speech-to-Text-System etwa ist es unpraktisch, wenn zuerst ein Mensch die Sprache angibt und das System mit Audio in dieser Sprache eine ziemlich gute Transkription liefert, aber Unsinn ausgibt, sobald die Sprachauswahl in Schritt 1 falsch ist. Ein englischer Transkribierer sollte bei französischem Audio zuerst sagen: „Das ist kein Englisch“ – das wäre näher an menschlichem Verhalten.
Bei einem addiert man +1 zum Softmax-Nenner des Attention-Moduls, beim anderen nicht. Man müsste zeigen, dass die Performance ähnlich ist, und dass beim +1-Modell Ausreißer reduziert werden und es sich dadurch effektiver quantisieren lässt.
So wie neuronale Netze Identitätsfunktionen schlecht modellieren und deshalb Residual Connections brauchen, sind sie meiner Ansicht nach auch ziemlich schwach darin, Transformationen mit niedriger Entropie implizit zu lernen.
Selbst wenn es die Ausdrucksstärke nicht erhöht, könnte es den Effekt haben, eine nadel-im-Heuhaufenartige Transformation, die mit Gradientenabstieg schwer zu erreichen ist, direkt ins Modell einzubauen. Wie nützlich das tatsächlich ist, weiß ich nicht.
Dass sie nicht breit genutzt wird, liegt daran, dass Leute sie ausprobiert haben und sie in der Praxis nicht besonders gut funktioniert hat. Wenn der Originalartikel das einen „seit über 8 Jahren übersehenen Bug“ nennt, ist das eher Clickbait.
Vielleicht übersehe ich etwas, aber ich verstehe nicht, warum die Kommentare das für so eine große Sache halten. Diesen Trick habe ich tatsächlich schon mehrfach gesehen.
Zum Beispiel gibt es auch in einem alten Google-Repository solchen Code: https://github.com/google/flaxformer/blob/ee62754ebe5a5eeb11...
Für die Stabilität wird es meiner Meinung nach überhaupt nicht helfen. Beim Skalieren sind für die Softmax-Stabilität Tricks wie Q/K LayerNorm besser: https://arxiv.org/pdf/2302.05442.pdf
Einen Blogpost oder ein Paper zu schreiben, um das Bewusstsein dafür zu erhöhen, ist absolut wertvoll. Gute Ideen werden oft mehrfach unabhängig voneinander entdeckt.
Ob die durch den größeren Nenner flachere Verteilung zu besserem Quantisierungsverhalten führt, weiß man nur durch einen direkten Vergleich mit und ohne +1. Der Originalartikel hält diesen Vorteil für potenziell groß.
Technisch wird Softmax nicht exakt wie in der angegebenen Formel implementiert, sondern als
exp(x_i-max(x)), und diese Werte werden im Nenner summiert. Vielleicht übersehe ich etwas.Außerdem werden Residual Connections zwar genutzt, weil Netzwerke die Identitätsfunktion nicht gut lernen, aber 0 können sie lernen. Daher reicht bei
f(x): x+g(x)eing:x ~> 0, also etwas nahezu Null.f(x): x+g(x)erleichtert außerdem den Gradientenfluss.Dieser „entdeckte“ Trick ist Teil der Standardimplementierung von PyTorch Multi-Head Attention und heißt
add_zero_attention.Da den Logits eine 0 hinzugefügt wird, gilt
e^0=1, wodurch im Nenner eine 1 entsteht: https://pytorch.org/docs/stable/generated/torch.nn.Multihead...Die Bedeutung wird nicht einmal ganz kurz erklärt. Schon der zweite Satz, den ich gerade geschrieben habe, würde sie deutlich nützlicher machen.
Es geht zwar nicht um KI oder diesen Algorithmus, aber es gibt Fälle, in denen man andere trotz wiederholter Hinweise nicht davon überzeugen kann, dass ein kleiner Fehler tatsächlich ein Fehler ist.
2011 wollte ich für mein Projekt den reddit-Ranking-Algorithmus kopieren und sah mir den Quellcode an; bei Beiträgen mit negativer Stimmenbilanz verhielt er sich völlig unsinnig.
Für mich sah es so aus, als sei in einer einfachen Formel ein Term vertauscht worden und positive/negative Vorzeichen würden falsch angewendet. Also schrieb ich darüber im Blog und postete es auf reddit, woraufhin viele Leute, darunter auch reddit-Mitarbeiter, sagten, ich läge komplett falsch und der Algorithmus funktioniere wie beabsichtigt.
Sie sagten auch, dass schon zuvor Leute dasselbe bemerkt und darauf hingewiesen hätten, denen aber ebenfalls gesagt worden sei, sie lägen falsch.
Am Ende änderte ich den Blogpost zu: „Leute, die klüger sind als ich, sagen, dass der reddit-Algorithmus keinen Fehler hat; meine Variante ergibt für mich nur mehr Sinn.“
Drei Jahre später, 2014, wurde dann genau die Korrektur, die ich und andere vor mir die ganze Zeit vorgeschlagen hatten, in den reddit-Quellcode committet: https://github.com/reddit-archive/reddit/commit/50d35de04b92...
Open Source ermöglicht zwar, dass viele Augen Bugs finden, aber manchmal kann man niemanden davon überzeugen, dass man einen Bug gefunden hat. Natürlich hat reddit den Code 2017 geschlossen.
Am Ende habe ich in meine App weder die Ranking-Funktion noch die Voting-Funktion eingebaut, die ich ursprünglich kopieren wollte.
In den Query-Parametern mussten viele Werte encodiert werden, und bestimmte Parameter mussten praktisch zweimal encodiert werden, also machte mein Tool das auch so. Der zuständige Implementierungsingenieur beharrte jedoch darauf, mein Tool sei falsch, verwies auf meinen Praktikantenstatus und holte sogar die OAuth-Spezifikation hervor, um sie krampfhaft so auszulegen, dass seine Implementierung korrekt sei und ich sie falsch lese.
Erst nachdem Eran Hammer-Lahav hinzugezogen wurde und es bestätigte, stellte sich heraus, dass ich recht hatte; erst dann räumte der Ingenieur ein, dass das natürlich so richtig sei. Für die tagelangen persönlichen Angriffe gab es keinerlei Eingeständnis oder Entschuldigung.
Daraus habe ich die wichtige Lektion gelernt, dass Seniorität nicht automatisch bedeutet, recht zu haben. Heute bin ich meist selbst der Seniorere, aber ich versuche, mich jeden Tag daran zu erinnern.
Schon wenn man nur „die Person ist, die überall in der Codebase Logs einfügt und Schritt für Schritt nachdenkt“, kann man eine lange und einflussreiche Karriere aufbauen. Selbst auf sehr einfachem Niveau sieht man oft erstaunliche Fixes für alte Probleme.
Allerdings kommt auch jede Menge politischer Spaß dazu. Die erste Reaktion der Leute ist Leugnung, und danach wird es schlimmer. Nur ein oder zwei Personen denken: „Ah, dann kann man es ja fixen“, während jemand anderes hübsch verpackt schreibt, es gebe „Bedenken hinsichtlich Concurrency/Memory Management/sonstigem“, und dabei den Chef vom Chef vom Chef in CC setzt.
In solchen Situationen ist es besser, still abzuwarten und weder zu kontern noch sich zu beschweren. Wenn nichts passiert, das Leadership nicht nachfragt, aber Kollegen anfangen zu fragen, sollte man besser planen, in ein anderes Team zu wechseln.
Es gibt eine interessante Diskussion über Ausreißer-Features und Quantisierung: https://timdettmers.com/2022/08/17/llm-int8-and-emergent-fea...
Ausreißerwerte werden zum Pruning von Werten verwendet, und Transformer scheinen bei etwa 6,7 Milliarden Parametern eine „Phasenänderung“ darin zu durchlaufen, wie sie mit Ausreißer-Features umgehen. Das könnte Ablationsstudien verkomplizieren.
Mit Tim Dettmers gäbe es dazu vermutlich viel zu besprechen.
Der Autor benennt ein echtes Problem und schlägt eine einfache Lösung vor. Meine Geek-Prüfkriterien erfüllt das alles
Zur Frage „Warum ist niemand darauf gekommen?“ wirkt die Erklärung plausibel, dass der Autor aus Arbeiten außerhalb des Machine Learning mit der Softmax-Funktion sehr vertraut war, während Leute, die dieses Problem untersuchten, es zwar vielleicht auf „etwas mit Softmax“ eingegrenzt hatten, Softmax selbst aber nicht tief genug verstanden
Falls der Autor des Originalbeitrags diesen Kommentar sieht, wäre es allerdings gut, wenn er die Behauptung, dass dies „mit 99,44 % Wahrscheinlichkeit die Outlier-Feedback-Schleife lösen“ werde, näher ausführen würde. Derzeit ist dieser Satz die einzige Erklärung dafür, wie Outlier mit Softmax zusammenhängen könnten
https://github.com/google/flaxformer/blame/ee62754ebe5a5eeb1...
Im Kommentar steht: „Eine Softmax-Funktion mit einem zusätzlichen virtuellen Logit wie 0. Dient der Kompatibilität mit einigen zuvor trainierten Modellen. Das entspricht dem Hinzufügen von 1 zum Nenner. Im Attention-Kontext erlaubt es, auf nichts zu schauen“
Das erzeugt genau denselben modifizierten Softmax wie in diesem Artikel. Warum das öffentlich ignoriert wurde, wird die Zeit zeigen. Vielleicht hatte es kaum Wirkung, vielleicht ist es einfach untergegangen, vielleicht hat Google es nicht vorangetrieben
Es wurde offenbar nicht tatsächlich ausprobiert, sondern nur angenommen, dass es funktionieren werde. Bei einer so einfachen Änderung an Softmax dürfte die Validierung nicht lange dauern; dass sie vor der Veröffentlichung nicht gemacht wurde, ist ziemlich peinlich
Softmax ist in der Machine-Learning-Community sehr gut verstanden. Es ist ein extrem verbreiteter Trick, und solche Eigenschaften sind ebenfalls gut bekannt. Es wirkt unwahrscheinlich, dass niemand daran gedacht hat
Trotzdem ist es möglich, dass die aktuelle Softmax-Konvention zufällig gewählt wurde und der Autor ihren Nachteil korrekt erkannt hat
Selbst wenn die Diagnose stimmt, können LLMs mit voller Präzision das Problem umgehen, indem sie bedeutungslosen Tokens hohe Attention-Gewichte geben und dadurch harmlose Attention-Ausgaben erzeugen
Dieses Problem ist nur beim Quantisieren der Gewichte wichtig, und das Ziel aktueller Spitzen-LLM-Entwicklung ist nicht unbedingt Quantisierungsleistung
Softmax kann gut 99,9 % Sicherheit oder 0,1 % Sicherheit ausgeben, aber dazwischen gibt es nicht viel
Ich weiß, dass es auf HN in Mode ist, sich über die Wissenschaft zu beschweren, aber dieser Blogbeitrag argumentiert nicht gut
Der Kern hätte in einem Viertel der Länge, vielleicht sogar in weniger als einem Achtel, vermittelt werden können, wurde aber in informelle Formulierungen und nur dünn verhüllte Beschwerden über wissenschaftliches Publizieren verpackt
Das Ergebnis ist, dass die Diskussion hier nicht aus 200 Kommentaren zu den Ergebnissen oder der Idee des Artikels besteht, sondern zu wissenschaftliches Publizieren vs. Blogs sowie formellem vs. informellem Schreiben
Wenn man einen Blogbeitrag auf die HN-Startseite bringen will, mag das ein guter Stil sein. Wenn man aber möchte, dass die Vor- und Nachteile einer Idee geprüft und diskutiert werden, ist er eher ungeeignet
Menschen haben nur begrenzt Aufmerksamkeit für alles, aber die Fähigkeit und der Bedarf, Aufmerksamkeit zu bekommen, sind unbegrenzt. Das hat Michael Goldhaber gesagt
Das ist der Keim der Informationsexplosion: sechs Milliarden Videos darüber, wie man Eier kocht, oder 200 Kommentare im Fahrradschuppen-Stil
Um das einzudämmen, ranken Orte wie Google, Facebook und HN Kommentare, Links und Newsfeeds, aber weil der Großteil des zu rankenden Pools Unsinn ist, entsteht nur eine weitere Schicht Unsinn
Wir haben noch keine Informationssysteme entworfen, die das widerspiegeln, was Goldhaber vor 30 bis 40 Jahren über Aufmerksamkeit gesagt hat
Das Ziel kann sein, zugleich zu informieren und zu unterhalten. Viele Menschen mögen die lockere Diskussion rund um den Kern, und der Autor könnte das dem klinischen, formalen Ton wissenschaftlicher Papers vorziehen
Trotzdem war es etwas nervig, dass man dafür 200 themenfremde Beschwerdekommentare überspringen musste
Ich habe ein ähnliches Experiment gemacht, und in meinem Setup hat es nicht geholfen
Ich will nicht behaupten, dass es keine Bugs oder Ähnliches gab, aber Attention auf die aktuelle Position scheint dieses Problem bis zu einem gewissen Grad zu lösen. Wenn nichts gesagt werden soll, gibt sie einfach den Wert der aktuellen Position aus
Genauer gesagt habe ich nicht 1 zum Softmax-Nenner addiert, sondern vor QK einen gelernten Parameter als Attention Sink angefügt und ihn nach Softmax wieder entfernt, sodass die Summe beim Multiplizieren mit V nicht 1 ergibt
Ich habe auch Varianten ausprobiert, die die aktuelle Position ansehen bzw. nicht ansehen, sowie eine Variante, bei der der Sink statt durch gelernte Parameter pro Position durch ein Feedforward-Netz erzeugt wird. In meinem Setup machte keine davon einen großen Unterschied, aber es waren auch viele andere seltsame Faktoren im Spiel, daher könnte es sich lohnen, es erneut zu versuchen
Im Kontext dieses Artikels scheinen sowohl die Aufgabenleistung als auch Anzahl und Größe der Outlier-Gewichte wichtig zu sein
Ich sehe keine Ergebnisse. Zahlen zur Ergänzung der Theorie hätten das Ganze viel stärker und überzeugender gemacht
Es ist nicht besonders schwer, ein bestehendes Sprachmodell mit kleinen Daten feinzujustieren, um zu prüfen, ob es funktioniert
Allerdings denke ich ähnlich, dass es bessere Attention-Formeln geben könnte. Das Paper von 2020 https://arxiv.org/abs/2005.09561 hat bei einem von mir trainierten Transformer-Modell sehr geholfen. Es war kein allgemeines Sprachmodell, sondern ein spezielles multimodales Graphproblem
Dieses Paper schlägt normalisierte Attention vor, und wenn ich mich nicht irre, könnte das auch beim Quantisierungsproblem helfen
Dieser Ansatz wurde häufig verwendet, bevor Dummy-Tokens üblich wurden. Ich habe diese Idee erstmals im XLNet-Paper gesehen
Soweit ich weiß, ist sie seit 2019/2020 in PyTorch enthalten, und jemand könnte sicher auch noch frühere Referenzen finden
Ich war überrascht von der übertriebenen Haltung des Originalbeitrags. Besonders, wenn es um etwas geht, das die meisten Transformer-Forscher verstehen. Ebenso überraschend ist, dass viele Antworten die Haltung vertreten: „So sollte Forschung gemacht werden“. Das ist eher ein Beispiel dafür, warum Forschung so nicht funktioniert; Peer Review ist in vielerlei Hinsicht gut, unter anderem, weil es einem Peinlichkeiten erspart
Es wirkt, als würdet ihr vage Selbstironie als echte Behauptung lesen
Kurz gesagt, warum es wichtig genug war, es zu teilen: Das ist ein ziemlich nischenhaftes Problem, das nur dann wichtig ist, wenn man auf eingeschränkter Hardware eine schwache Nachahmung von ChatGPT laufen lassen will. Daher ist es durchaus möglich, dass große Forschungsteams dem keine große Bedeutung beigemessen haben. Sie versuchen schließlich nicht, ein LLM auf einer 3090 laufen zu lassen
Der Text ist umgangssprachlich, selbstironisch und humorvoll im Ton. Ob das Vor- oder Nachteile hat, weiß ich nicht, aber der Argumentation konnte ich vollständig folgen. Von Arroganz ist das weit entfernt
Die Aussage, dass Peer Review „Peinlichkeiten erspart“, impliziert, dass es peinlich wäre, wenn etwas falsch ist oder nicht die Erstentdeckung war. Ist das nicht arrogant?