- GPT ist ein mit großen Datenmengen vortrainierter Transformer, der die Wahrscheinlichkeitsverteilung für das nächste Textstück vorhersagt und durch wiederholtes Sampling daraus Sätze erzeugt
- Dieselbe Architektur wird nicht nur für Texterzeugung, sondern auch für Spracherkennung, synthetische Sprache, Bilderzeugung und Übersetzung genutzt; hier liegt der Fokus auf der Vorhersage des nächsten Tokens als Grundlage von Tools wie ChatGPT
- Eingabetext wird in Tokens zerlegt, zu Embedding-Vektoren umgewandelt und nimmt beim Durchlaufen von Attention-Blöcken und mehrschichtigen Perzeptron-Blöcken den umgebenden Kontext auf
- GPT-3 enthält 175 Milliarden Parameter in rund 28.000 Matrizen; allein Embedding und Unembedding machen jeweils etwa 617 Millionen Gewichte aus
- Der finale Vektor wird über eine Unembedding-Matrix und softmax in eine Wahrscheinlichkeitsverteilung für das nächste Token umgewandelt; die Temperature steuert das Gleichgewicht zwischen Vorhersagbarkeit und Vielfalt
Grundlegende Rolle von GPT und Transformern
- Die drei Buchstaben in GPT stehen für Generative, Pretrained und Transformer
- Generative bedeutet, dass neuer Text erzeugt wird
- Pretrained bedeutet, dass das Modell mit riesigen Datenmengen trainiert wurde und anschließend durch weiteres Training für bestimmte Aufgaben angepasst werden kann
- Transformer ist eine neuronale Netzwerkarchitektur, die als zentrale Erfindung des aktuellen KI-Booms gilt
- Transformer werden in vielen Modelltypen eingesetzt
- Modelle, die Audio als Eingabe nehmen und daraus Transkripte erzeugen
- Modelle, die aus Text synthetische Sprache erzeugen
- Tools wie DALL-E und Midjourney, die aus Textbeschreibungen Bilder erzeugen
- Maschinelle Übersetzung, der ursprüngliche Einsatzzweck des 2017 von Google erstmals vorgestellten Transformers
- Die hier behandelte Variante ist ein Modell zur Vorhersage des nächsten Textes, wie es Tools wie ChatGPT zugrunde liegt
- Es nimmt Text und teils auch umgebende Bilder oder Geräusche als Eingabe und sagt voraus, was als Nächstes kommt
- Die Ausgabe ist eine Wahrscheinlichkeitsverteilung über mehrere mögliche nächste Textstücke
Wie aus Next-Token-Prediction Generierung wird
- Die Vorhersage des nächsten Wortes und Texterzeugung wirken oberflächlich wie unterschiedliche Ziele, doch durch wiederholtes Ausführen eines Vorhersagemodells lässt sich langer Text erzeugen
- Ein Anfangstext wird eingegeben
- Das Modell erzeugt eine Wahrscheinlichkeitsverteilung für das nächste Stück
- Aus dieser Verteilung wird zufällig ein Sample gezogen und an den Text angehängt
- Der gesamte neue Text wird erneut eingegeben und derselbe Prozess wiederholt
- Wenn man GPT-2 auf einem Laptop auf diese Weise ausführt, entstehen Beispiele, bei denen die Geschichte nicht gut zusammenhält
- Wechselt man zur GPT-3-API mit derselben Grundstruktur in größerem Maßstab, lassen sich plausiblere Geschichten erzeugen
- Auch der Prozess, mit dem ChatGPT und andere große Sprachmodelle Wort für Wort Antworten erstellen, ist im Kern wiederholte Vorhersage und Sampling
- Ein einfacher Ausgangspunkt für einen Chatbot besteht darin, die Gesprächssituation als Text zu formulieren
- Man legt einen System Prompt an, der beschreibt, dass ein hilfreicher AI Assistant mit einem Nutzer interagiert
- Die Frage des Nutzers wird als erstes Gesprächsstück eingefügt
- Das Modell soll vorhersagen, was ein solcher Assistant als Nächstes sagen würde
- Damit diese Methode gut funktioniert, ist ein zusätzlicher Trainingsschritt nötig
Datenfluss im Inneren eines Transformers
- Die Eingabe wird in kleine Stücke, sogenannte Tokens, zerlegt
- Bei Text können Wörter, Wortteile oder häufige Zeichenkombinationen Tokens sein
- Wenn Bilder oder Geräusche enthalten sind, können auch Bild-Patches oder Klangstücke Tokens sein
- Jedes Token wird einem Vektor, also einer Liste von Zahlen, zugeordnet
- Dieser Vektor kodiert auf irgendeine Weise die Bedeutung dieses Stücks
- Betrachtet man ihn als Koordinate in einem hochdimensionalen Raum, liegen Wörter mit ähnlicher Bedeutung tendenziell nahe beieinander
- Die Vektorsequenz durchläuft zunächst einen Attention-Block
- Der Attention-Block lässt Vektoren untereinander Informationen austauschen und ihre Werte aktualisieren
- Er verarbeitet kontextabhängige Bedeutungen, etwa „model“ in „a machine learning model“ gegenüber „model“ in „a fashion model“
- Er bestimmt, wie stark ein Wort für die Bedeutungsaktualisierung eines anderen Wortes relevant ist und wie diese Aktualisierung erfolgt
- Danach durchlaufen die Vektoren einen Block, der als mehrschichtiges Perzeptron oder feed-forward layer bezeichnet wird
- In diesem Schritt kommunizieren die Vektoren nicht miteinander, sondern durchlaufen dieselbe Operation parallel
- Man kann es damit vergleichen, jedem Vektor eine lange Liste von Fragen zu stellen und ihn je nach Antwort zu aktualisieren
- Das gesamte Netzwerk wiederholt Attention-Blöcke und mehrschichtige Perzeptron-Blöcke
- Dazwischen gibt es auch Normalisierungsschritte, die in dieser High-Level-Übersicht aber ausgelassen werden
- Am Ende wird erwartet, dass die zentrale Bedeutung des Satzes im letzten Vektor der Sequenz enthalten ist
- Mit diesem letzten Vektor wird eine Wahrscheinlichkeitsverteilung über alle möglichen nächsten Tokens erzeugt
Deep-Learning-Form und Parameterumfang von GPT-3
- Deep Learning ist ein Machine-Learning-Ansatz, bei dem Daten das Verhalten eines Modells bestimmen
- Es wird für Probleme genutzt, die Intuition und Mustererkennung erfordern, etwa Labels aus Bildern zu erstellen oder das nächste Wort nach einem Text vorherzusagen
- Statt wie in früherer KI Prozeduren im Code festzuschreiben, erstellt man eine flexible Struktur mit anpassbaren Parametern und justiert deren Werte anhand von Beispieldaten
- Lineare Regression ist das einfachste Beispiel für Machine Learning
- Sie behandelt Fälle, in denen Eingabe und Ausgabe jeweils eine einzelne Zahl sind, etwa Wohnfläche und Preis eines Hauses
- Mit zwei kontinuierlichen Parametern, Steigung und y-Achsenabschnitt, wird die optimale Gerade gesucht
- GPT-3 hat nicht zwei, sondern 175 Milliarden Parameter
- Solche riesigen Modelle können an den Trainingsdaten overfitten oder untrainierbar werden
- Deep-Learning-Modelle gelten als Modellfamilie, die sich in den letzten Jahrzehnten als gut skalierbar erwiesen hat
- Der gemeinsame Trainingsalgorithmus, der diese Familie verbindet, ist Backpropagation
- Damit Backpropagation in großem Maßstab gut funktioniert, muss das Modell einer bestimmten Form folgen
- Die Eingabe muss als Array reeller Zahlen dargestellt werden
- Das Array wird beim Durchlaufen mehrerer Schichten fortlaufend in andere Arrays reeller Zahlen transformiert
- Die letzte Schicht eines Textmodells ist eine Zahlenliste, die die Wahrscheinlichkeitsverteilung über alle möglichen nächsten Tokens darstellt
- Die Parameter im Deep Learning werden meist Gewichte genannt
- Die Art, wie Gewichte mit Daten interagieren, ist eine gewichtete Summe
- Nichtlineare Funktionen kommen ebenfalls dazwischen vor, hängen aber nicht von Parametern ab
- In der tatsächlichen Darstellung werden gewichtete Summen häufig als Matrix-Vektor-Multiplikationen gebündelt, statt sie einzeln sichtbar zu machen
- Die 175 Milliarden Gewichte von GPT-3 sind in rund 28.000 Matrizen organisiert
- Diese Matrizen fallen in 8 Kategorien
- Die Gewichte des Modells sind das beim Training gewonnene „Gehirn“, während die bei einem einzelnen Durchlauf verarbeiteten Daten einen konkreten Fall wie den Eingabetext kodieren
Embeddings, Kontextgröße und Ausgabewahrscheinlichkeiten
- Der erste Schritt besteht darin, den Eingabetext in Tokens zu zerlegen und jedes Token in einen Vektor umzuwandeln
- Tatsächliche Tokens können Wortteile oder Satzzeichen sein, werden zur Verständlichkeit hier aber wie Wörter behandelt
- Das Modell besitzt vorab eine Liste möglicher Tokens, das Vocabulary
- Die Embedding-Matrix legt fest, in welchen Vektor jedes Token umgewandelt wird
- Sie wird als W_E notiert
- Ihre Werte beginnen zufällig, werden aber durch datenbasiertes Training festgelegt
- Bei GPT-3 beträgt die Vocabulary-Größe 50.257 und die Embedding-Dimension 12.288
- Multipliziert man beides, hat die Embedding-Matrix etwa 617 Millionen Gewichte
- Word Embeddings kann man sich als Punkte in einem hochdimensionalen Raum vorstellen
- Wörter mit ähnlicher Bedeutung liegen tendenziell nahe beieinander
- Mit fortschreitendem Training tendieren Embeddings dazu, sich so im Raum anzuordnen, dass Richtungen Bedeutung tragen
- Es werden Beispiele wie die Beziehung woman - man und king - queen sowie Italy - Germany + Hitler, das nahe bei Mussolini landet, gezeigt
- Beim queen-Beispiel wird auch darauf hingewiesen, dass das tatsächliche queen-Embedding weiter entfernt liegen kann als ein schlicht weiblich gedachter king
- Das Skalarprodukt misst, wie stark zwei Vektoren aufeinander ausgerichtet sind
- Zeigen sie in dieselbe Richtung, ist es positiv; stehen sie senkrecht, ist es 0; zeigen sie in entgegengesetzte Richtungen, ist es negativ
- Die Hypothese, dass cats - cat eine Richtung für Pluralität darstellen könnte, wird mit dem Skalarprodukt getestet
- Die Werte für Pluralnomen fallen tendenziell höher aus als für Singularnomen
- Auch Skalarprodukte mit Wörtern wie one, two, three zeigen Beispiele für ansteigende Werte
- Die Vektoren eines Transformers dürfen nicht nur ein einzelnes Wort repräsentieren, sondern müssen Kontext aufnehmen können
- Der zunächst erzeugte Vektor enthält nur die Bedeutung eines einzelnen Tokens aus der Embedding-Matrix
- Beim Durchlaufen des Netzwerks soll er eine spezifischere Bedeutung erhalten, die umgebende Wörter und auch weit entfernten Kontext berücksichtigt
- Die context size von GPT-3 beträgt 2048; das Modell wurde darauf trainiert, 2048 Vektoren auf einmal zu verarbeiten
- Diese Kontextgröße begrenzt die Textlänge, die das Modell bei der Vorhersage des nächsten Wortes berücksichtigen kann
- Das hängt damit zusammen, warum frühe Chatbots wie ChatGPT in langen Gesprächen den Eindruck erwecken konnten, den Kontext zu verlieren
- Der letzte Schritt besteht darin, eine Wahrscheinlichkeitsverteilung für das nächste Token zu erzeugen
- Der letzte Vektor des finalen Kontexts wird mit der Unembedding-Matrix W_U multipliziert, um eine Zahlenliste in Vocabulary-Größe zu erzeugen
- Jede Komponente dieser Rohausgabe wird als Logit der nächsten Wortvorhersage bezeichnet
- W_U hat für jedes Token des Vocabulary eine entsprechende Zeile, und jede Zeile hat die Länge der Embedding-Dimension
- Gemessen an GPT-3 fügt auch W_U etwa 617 Millionen Parameter hinzu
- Zusammengenommen liegen Embedding und Unembedding kumuliert bei etwas mehr als 1 Milliarde Parametern
- softmax wandelt eine beliebige Zahlenliste in eine gültige Wahrscheinlichkeitsverteilung um
- Jeder Wert muss zwischen 0 und 1 liegen und die Gesamtsumme muss 1 ergeben
- Für jede Eingabezahl wird eine Potenz von e gebildet, um sie positiv zu machen, anschließend wird durch die Gesamtsumme geteilt und normalisiert
- Große Eingabewerte erhalten eine hohe Wahrscheinlichkeit nahe 1, kleine Werte nähern sich 0
- Das ist weicher als nur den Maximalwert zu wählen, sodass auch ähnlich hohe Werte sinnvolle Wahrscheinlichkeiten erhalten können
- Die Temperature steuert die Schärfe der softmax-Verteilung
- Ist T groß, erhalten auch niedrigere Werte mehr Gewicht, wodurch die Verteilung gleichmäßiger wird
- Ist T klein, dominieren große Werte stärker
- T=0 ist der Extremfall, in dem sich das gesamte Gewicht auf den Maximalwert konzentriert
- Bei Temperature 0 wird immer das vorhersagbarste Wort gewählt; im Beispiel entsteht dadurch eine klischeehafte Geschichte im Stil von Goldilocks
- Eine höhere Temperature gibt weniger wahrscheinlichen Wörtern eine Chance, ausgewählt zu werden, doch im Beispiel beginnt die Geschichte zwar origineller, wird aber schnell sinnlos
- Die API erlaubt keine Temperature größer als 2; das ist keine mathematische Notwendigkeit, sondern eine willkürliche Begrenzung, die verhindern soll, dass das Tool zu sinnlose Ergebnisse erzeugt
1 Kommentare
Meinungen auf Hacker News
Falls jemand weiß, wie GPT funktioniert, hätte ich eine Frage. Ich dachte, diese Modelle wählen das wahrscheinlichste nächste Wort aus, aber kann es nicht passieren, dass die Wahl „eines der plausiblen Wörter“ dazu führt, dass die Liste der Vorhersagen für das darauffolgende Wort deutlich weniger plausibel wird?
Wenn es berechenbar ist, scheint es vorteilhafter, „zwei Wörter zusammen“ als Kandidaten durchzuspielen und das dann auf 3, 4, n Wörter zu erweitern. Ich frage mich, ob es so einen Ansatz gibt.
Nachdem ich das Video gesehen und die Kommentare gelesen hatte, wurde mir klar, dass das Beam Search ist und zusammen mit der Temperature verwendet wird, die dieses Verhalten steuert.
Temperature und
top_ksind ziemlich ähnliche Parameter; sie wurden eingeführt, um abzubilden, dass jeder Satz, den ein Mensch sagen kann, probabilistisch nicht vorhersagbar ist. Hier ist ein Beispiel aus dem Jahr 2021, das eine alte Grafik aus der Hugging-Face-Dokumentation von 2018/2019 ähnlich nachbildet: https://lilianweng.github.io/posts/2021-01-02-controllable-t...Beam Search über deutlich größere Längen könnte besser sein, und vielleicht funktioniert auch eine Kombination mehrerer Techniken gut, aber so sieht es nicht aus. Der Query-Key-Value-Teil von Transformern fokussiert in vielerlei Hinsicht im Verhältnis zum gesamten Kontext auf eine einzige Gesamtsumme. Die Architektur selbst ist nicht auf solche längeren Einheiten ausgelegt, und es gibt auch kein grundlegendes „Zwei-Token“-System.
Wenn die meisten GPT-Modelle 50.000 bis 100.000 Token haben, würde man es mit viel mehr Parametern zu tun bekommen, etwa 50.000*50.000, und es entstünde auch ein Problem mit Datensparsamkeit. Selbst ohne die Trainingskomplexität zu berücksichtigen, sind viele Elemente von GPT-Modellen so stark darauf ausgerichtet, den Reichtum eines einzelnen Tokens oder eines einzelnen Token-Index auszuschöpfen, dass man kaum sagen kann, sie seien für diese Art von Beam Search entworfen.
Techniken wie Beam Search helfen zwar, können aber nur eine Verbesserung um einen konstanten Faktor hinzufügen. Trotzdem haben Large Language Models trotz dieser Grenzen ihre heutige Leistung erreicht.
Ein Beispiel ist Beam Search: https://www.width.ai/post/what-is-beam-search
Im Kern hält man dabei ein Wahrscheinlichkeitsfenster vorhergesagter Token aufrecht, um die Qualität der endgültigen Ausgabe zu erhöhen.
Wenn man größere Blöcke chunkt, wird dieser ganze Prozess vermischt, sodass man dasselbe im Konzept-Raum tun kann. Nimmt man zum Beispiel eine Basismethode wie Satz-Embeddings, wird das zum Arbeitsblock für Vergleiche.
Mir fällt niemand Besseres ein, um der breiten Öffentlichkeit den Attention-Mechanismus zu erklären. Es fühlt sich an, als würde ein Traum wahr.
Wenn ihr die vorherigen Kapitel noch nicht gesehen habt, kann ich sie wirklich nur wärmstens empfehlen.
Wenn euch das gefallen hat: Auf dem Kanal von Andrej Karpathy gibt es ebenfalls interessante Videos, die neuronale Netze und ihre interne Funktionsweise erklären. Sie richten sich an Leute, die programmieren können.
Ich bin selbst ahnungslos direkt hineingesprungen und dachte fälschlicherweise, ich würde es beim Zuschauen schon verstehen, obwohl er empfahl, sich vorher frühere Videos anzusehen. Es kommen Begriffe vor, die man unbedingt kennen muss, um wirklich etwas mitzunehmen.
Nachdem ich aufgegeben, die Lücken mit anderem Lernen gefüllt und dann zurückgekehrt war, hatten seine Videos für mich einen viel größeren Wert. Wer neuronale Netze lernen will, dem empfehle ich dringend, aus meinem Fehler zu lernen.
Zwischen all den Aprilscherz-Inhalten ist das ein unglaublich gutes Gegenmittel. Am liebsten würde ich es mir direkt in die Vene legen.
Dazu ist auch diese interaktive Visualisierung sehenswert: https://bbycroft.net/llm
Frühere Diskussion: https://news.ycombinator.com/item?id=38505211
3B1B ist einer der besten STEM-Bildungsanbieter auf YouTube.
Es heißt, das nächste Token werde nach dem Unembedding durch Sampling der Logits der letzten Spalte gewonnen. Holt man damit dann nicht einfach wieder das letzte Token? Oder ändert sich die Matrixgröße in irgendeinem Schritt auf N+1?
Ich freue mich auf die nächsten Videos. Diesmal habe ich das Gefühl, dass ich endlich in mir verstehen und verinnerlichen kann, wie diese Dinge funktionieren.