1 Punkte von GN⁺ 2024-06-09 | 1 Kommentare | Auf WhatsApp teilen
  • σ-GPT trennt die Eingabereihenfolge der Daten von der autoregressiven Generierungsreihenfolge, sodass Transformer Sequenzen auch in beliebig gemischter Reihenfolge trainieren und erzeugen können
  • Bestehende autoregressive Modelle folgen häufig einer natürlichen Anordnung, etwa der Links-nach-rechts-Reihenfolge von Text oder der Raster-Scan-Reihenfolge bei Bildern; die beiden Reihenfolgen müssen jedoch nicht zwingend identisch sein
  • Für jedes Sample wird ad hoc eine zufällige Shuffle-Reihenfolge σ gewählt, und es werden zwei Positionscodierungen hinzugefügt, die der Eingabe- und Ausgabereihenfolge entsprechen, um den autoregressiven Prozess konsistent zu halten
  • Zu jedem Zeitpunkt der Generierung lässt sich die bedingte Verteilung der verbleibenden Tokens schätzen; dadurch erweitert sich der Ansatz auf Sampling an beliebigen Positionen, beliebige bedingte Generierung, Inpainting und Burst-Sampling
  • Mit Curriculum Learning kann eine Leistung erreicht werden, die der eines Links-nach-rechts-autoregressiven Modells ähnelt; per tokenbasiertem Rejection Sampling lassen sich mehrere Tokens in Bursts erzeugen

Trennung von Eingabereihenfolge und Generierungsreihenfolge

  • Transformer haben über mehrere Modalitäten hinweg starke autoregressive Leistung gezeigt
  • Traditionelle autoregressive Verfahren folgen der natürlichen Reihenfolge der Daten
    • Text wird üblicherweise von links nach rechts verarbeitet
    • In der Vision werden Bilder in Raster-Scan-Reihenfolge zu Sequenzen aufgefaltet und mit Transformern modelliert
  • σ-GPT unterscheidet zwischen der Eingabereihenfolge der Daten und der autoregressiven Reihenfolge
    • In den meisten Anwendungen sind die beiden Reihenfolgen ausgerichtet, müssen aber nicht zwingend gleich sein
    • Untersucht wird ein Verfahren, bei dem Sequenzen in zufällig gemischter Reihenfolge trainiert und generiert werden
  • Wird die Sequenzreihenfolge verändert, wird das Training schwieriger, aber das Modell erhält neue Eigenschaften wie bedingte Generierung an beliebigen Positionen

Aufbau und Funktionsweise von σ-GPT

  • σ-GPT kann für jedes Sample ad hoc eine zufällige Shuffle-Reihenfolge σ auswählen
  • Das gewählte σ erzeugt die Eingabereihenfolge 0, σ(1), σ(2), ... und die Ausgabereihenfolge σ(1), σ(2), σ(3), ...
    • Der Eingabe wird zunächst ein 0-Padding vorangestellt, um die Token-Anzahl konsistent zu halten
    • Die Tokens werden entsprechend dieser Reihenfolge gemischt
  • An die Modelleingabe werden zwei Positionscodierungen angehängt
    • Eine entspricht der Eingabereihenfolge
    • Die andere entspricht der Ausgabereihenfolge
  • Die Ausgabe wird am Ende wieder in die tatsächliche Reihenfolge zurückgeführt
  • Code-Veröffentlichung: https://github.com/idiap/sigma-gpt

Vergleich mit Standard-GPT und Diffusionsmodellen

  • σ-GPT wird mit GPT als standardmäßigem causal Transformer Encoder sowie mit Diffusionsmodellen verglichen
  • Unterstützte Funktionen sind:
    • Token-Sampling an beliebigen Positionen der Sequenz
    • Dichtemodellierung der verbleibenden Tokens anhand einer teilweise gesampelten Sequenz
    • beliebige bedingte Generierung
    • Inpainting
    • Burst-Sampling, bei dem mehrere Tokens auf einmal erzeugt werden
    • Log-Likelihood-Training auf Basis von Kreuzentropie
  • Standard-GPT wird so verglichen, dass beliebige bedingte Generierung und Log-Likelihood-Training möglich sind, nicht aber Sampling an beliebigen Positionen, bedingte Dichteschätzung, Inpainting oder Burst-Sampling
  • Diffusionsmodelle werden so verglichen, dass sie Burst-Sampling unterstützen, nicht jedoch Log-Likelihood-Training

Bedingte Verteilung und Rejection Sampling während der Generierung

  • Weicht man von der standardmäßigen autoregressiven Reihenfolge ab, kann das Modell Tokens gemäß einer bestimmten Reihenfolge vorhersagen
  • In diesem Verfahren kann zu jedem Zeitpunkt der Generierung die bedingte Verteilung der verbleibenden Tokens vorhergesagt werden
  • Die Schätzung der bedingten Verteilung wird genutzt, um mögliche Generierungsergebnisse zu einem bestimmten Zeitpunkt zu quantifizieren
  • Auf Rejection Sampling angewendet, lässt sich damit eine Sequenz mit dynamischer Schrittzahl in Bursts erzeugen

Evaluationsaufgaben und Beiträge

  • σ-GPT führt shuffled Autoregression ein und evaluiert, ob sich in Kombination mit Curriculum-Methoden die Leistung des Basismodells verbessern lässt
  • Evaluiert werden drei Hauptaufgaben
    • Offene Textgenerierung
    • Pfadauflösung
    • Vorhersage der vertikalen Geschwindigkeit von Flugzeugen
  • Die Beiträge lassen sich in vier Punkte zusammenfassen
    • Einführung der σ-GPT-Architektur mit zwei Positionscodierungen, die jeweils Eingabe- und Ausgabereihenfolge entsprechen
    • Nachweis, dass sich mit Curriculum Learning eine Leistung ähnlich der von Links-nach-rechts-autoregressiven Modellen erreichen lässt
    • Nachweis, dass durch Sample-Generierung in beliebiger Reihenfolge bedingte Generierung für jeden Teil einer Sequenz möglich ist
    • Einführung eines tokenbasierten Rejection-Sampling-Verfahrens zur Sample-Generierung in Bursts

1 Kommentare

 
GN⁺ 2024-06-09
Hacker-News-Kommentare
  • Sieht gut aus. Beim Training werden die Eingabe-Tokens zufällig gemischt, und an jedes Token werden zwei Arten von Positions-Encoding angehängt: eines für die Position dieses Tokens, das andere für die Position des vorherzusagenden Tokens.
    Ansonsten ist es ein standardmäßiges autoregressives GPT, aber die Auswirkungen dieser scheinbar einfachen Änderung sind groß. Gibt man dem trainierten Modell einen Teil einer Sequenz als Prompt, kann es die fehlenden Tokens unabhängig von der Reihenfolge auf einmal parallel dekodieren, und auch die bedingten Wahrscheinlichkeitsdichten aller fehlenden Tokens lassen sich parallel berechnen.
    Außerdem schlagen die Autoren eine parallele Inpainting-Generierung auf Basis von Rejection Sampling vor, die in der Praxis offenbar gut funktioniert.

    • Diese Problemstellung gibt es schon ziemlich lange; sie galt als eine Art Heiliger Gral der Modellierung. Was im Vergleich zu PixelCNN-artigen Ansätzen neu wirkt, ist die Idee der Positions-Embeddings.
    • Ich verstehe nicht ganz, wie diese parallele Vorhersage möglich ist. Wenn die Eingabe zum Beispiel I . . . . . . . . happily. lautet, hängt das vorherzusagende zweite Wort dann nicht vom ersten Wort ab?
    • Wenn das funktioniert, ist es wirklich großartig. Wie so oft bei eleganten Entdeckungen hat es, wenn man es hört, auch etwas von „Ach, so gesagt ist das ja offensichtlich“.
    • Hat BERT nicht ursprünglich nicht-kausales Masking gemacht, also Wörter in der Mitte vorhergesagt?
    • Mir ist klar, dass das für Tokens/Text gedacht ist, aber ich frage mich, ob sich dasselbe Konzept auch auf Bilder anwenden ließe, etwa in der Art von Diffusion Models. Könnte man damit Bilder per Inpainting auf beliebige Größen hochskalieren?
  • Altes[1] ist wieder neu geworden, ohne Zitate der Vorarbeiten. Das ist keine unbekannte Arbeit; sie erschien auf der ICML und hat rund 250 Zitationen.
    [1]: https://arxiv.org/abs/1902.03249

  • Ein wirklich schönes Konzept. Ich frage mich, ob es anfängt, der Dynamik zu ähneln, die man bei Bildgenerierungsmodellen sieht: In einem Bereich des Bildes entstehen Struktur und Details, und die umliegenden Bereiche passen sich nach und nach an und lösen sich auf.
    Dieses Verhalten scheint besonders nützlich für langes Schlussfolgern/Logik/Planung zu sein, weil große Ideen zuerst sichtbar werden und die Details und der Text dazwischen dann natürlich aufgefüllt werden können.

    • Der beschriebene Prozess heißt Diffusion.
  • Auf Twitter gibt es ein Video, in dem Text generiert wird. Es sieht ein bisschen wie Bilddiffusion aus.
    https://x.com/ArnaudPannatier/status/1799055129829839166

    • Seltsam, dass sie ein Beispiel gewählt haben, bei dem das Ergebnis ziemlich wenig Sinn ergibt.
  • Ich habe heute weiter über dieses Paper nachgedacht, und die Funktion gefällt mir wirklich. Dinge, die bei sequenziellen LLMs relativ schwierig sind, werden hier einfach.
    Wenn man JSON will, kann man die geschweiften Klammer-Tokens am Anfang und am Ende fixieren. Wenn man eine Erklärung mit einer bestimmten Token-Länge will, hängt man eine kurze Antwort hinten an und lässt die Mitte auffüllen.
    Wenn man eine informationsdichtere Antwort will, fügt man dem generierten Text einen Abschnitt zur Dichtebewertung und Platz hinzu, in dem das LLM die Informationsdichte bewertet, und lässt dann nach einer hohen Punktzahl suchen. Es scheint viel zu geben, womit man experimentieren kann; laut Paper braucht man zwar etwa dreimal so viele Tokens, was schade ist, aber es wäre interessant, das auch mit einem 8B-Parameter-Modell bei vernünftiger Token-Zahl auszuprobieren.

    • „Das geschweifte Klammer-Token am Anfang fixieren“ können normale LLMs schon. Man kann den Anfang der Assistant-Antwort einfach vorbefüllen.
      Es gibt aber auch bessere Methoden. Wenn man die Ausgabe des LLM auf eine bestimmte Grammatik wie JSON beschränkt, kann man es dazu bringen, nur syntaktisch gültiges JSON zu antworten.
  • Ich frage mich, ob das besonders bei der Generierung von Computercode helfen würde. Denn was in einem Schritt ausgegeben wird, kann inhaltlich davon abhängen, was in späteren Schritten geschrieben wird.

    • Vielleicht ist es zu langsam, aber man könnte Linting oder Syntaxprüfungen als Teil des Rejection Sampling integrieren. Zum Beispiel könnte man N Kandidaten-Codefragmente massiv parallel sampeln und syntaktisch fehlerhafte verwerfen.
  • Interessante Arbeit. Ein ähnlicher Permutationsansatz taucht bereits im Taylorformer-Paper auf (https://arxiv.org/pdf/2305.19141v1).
    Die Autoren verwenden einen Transformer-Decoder für kontinuierliche Prozesse wie Zeitreihen und mischen während des Trainings jede Sequenz zufällig. Jedes Sequenzelement hat ein Positions-Encoding, und für die gemischte Sequenz wird die Log-Likelihood verwendet.
    Dort hilft die Permutation bei der Vorhersage von Interpolation, Extrapolation und unregelmäßig abgetasteten Daten. Sie scheint außerdem zu einer „Konsistenz“ beizutragen, bei der der mittlere quadratische Fehler weitgehend unabhängig von der Generierungsreihenfolge gleich bleibt.
    Ich frage mich, was dieses Paper zum Verständnis oder zur Anwendung solcher Ideen beiträgt. Die Idee, die Sequenzreihenfolge zu mischen, kommt auch im Transformer-Neural-Process-Paper vor: https://arxiv.org/pdf/2207.04179

  • Ich frage mich, ob hier etwas, das man von Vision Transformern gelernt hat, auf Sprach-Transformer angewendet wird.
    Nach meinem Verständnis teilen Vision-Modelle ein Bild in Tiles auf und hängen an jedes Tile ein Positions-Encoding an, damit das Modell die relative Position der Tiles versteht.
    Ehrlich gesagt habe ich nur das Abstract gelesen und vieles ist schwierig, aber dieses Paper scheint eine ähnliche Idee für 1D statt für 2D vorzuschlagen.

    • Positions-Encoding ist bei allen Arten von Transformern Standard. Hier wird eine neu wirkende, redundante Art des Positions-Encodings eingeführt.
      Das Training ist schwieriger, scheint aber zu ermöglichen, mehrere Tokens auf einmal zu erzeugen. Das heißt, man bekommt eine Antwort mit N Tokens nicht in N Schritten, sondern in N/x Schritten.
  • Ich frage mich, ob es Code gibt. Doppelte Positionen und Shuffling verstehe ich noch nicht vollständig. Interessant ist auch, dass die Positionswerte nicht addiert, sondern konkateniert werden.

  • Yann LeCun würde sagen, dass Autoregression selbst das Problem ist und dass man mit dieser Art von Machine Learning nicht einmal in die Nähe von AGI kommt[0].
    Zumindest solange man im autoregressiven Paradigma bleibt, lässt sich das Halluzinationsproblem nicht lösen.
    [0] https://twitter.com/ylecun/status/1640122342570336267

    • LeCun könnte recht haben oder auch nicht, aber ich bin mir nicht sicher, ob das für diese Diskussion relevant ist.
      Die Autoren des ursprünglichen Papers behaupten nicht, dass diese Arbeit dabei hilft, AGI näherzukommen. Sie haben lediglich autoregressive LLMs in die Lage versetzt, etwas Neues zu tun, was sie vorher nicht konnten.
    • Nicht alles muss auf AGI hinauslaufen. Wenn man ein LLM gebaut hat, das schneller und günstiger läuft, hat das an sich schon Wert.
      Ich glaube auch nicht, dass man für die meisten Aufgaben AGI braucht. Erst recht nicht, wenn die Absicht nicht darin besteht, bewussten Wesen Leid zuzufügen.
    • LeCuns Argument ist hier, kurz gesagt, falsch. Sein Beweis setzt voraus, dass alle dekodierten Tokens bedingt unabhängig sind, oder zumindest, dass die Wahrscheinlichkeit eines falschen nächsten Tokens unabhängig ist. In Wirklichkeit ist das nicht so.
      Intuitiv sind manche Tokens schwieriger als andere. In der Ausgabe kann es Schlüssel-Tokens geben, nach denen die übrigen Tokens viel einfacher werden. Außerdem kann ein autoregressives System sich auch von einem falschen Token erholen, indem es Tokens wie actually no... ausgibt.
    • Diese Methode passt tatsächlich möglicherweise nicht gut zum Argument der exponentiellen Divergenz.
      Je nach Token-Sampling-Verfahren könnte man die vorgeschlagene Generierung wohl als Ganzes betrachten und korrigieren. Ich weiß nicht, ob das im Paper vorgeschlagene Sampling-Verfahren das schon tut, aber mit den Informationen aus den Wahrscheinlichkeiten scheint es möglich.
    • LeCun ist sehr klug, aber seine Bilanz bei Vorhersagen über die Grenzen autoregressiver LLMs ist miserabel.