2 Punkte von GN⁺ 2023-09-24 | 1 Kommentare | Auf WhatsApp teilen
  • Der Autor hat von Hand ein GPT-2-ähnliches Transformer-Modell aufgebaut, um einfache Sequenzen vorherzusagen und ein tieferes Verständnis von Transformern und dem Attention-Mechanismus zu gewinnen.
  • Der Transformer wurde nicht mit bestehenden Gewichten trainiert; stattdessen wurde jedes Gewicht manuell festgelegt.
  • Als Aufgabe für den Transformer wurde die Vorhersage der Sequenz "aabaabaabaab..." gewählt, was erfordert, zur Bestimmung der nächsten Ausgabe die beiden vorherigen Token zu betrachten.
  • Der Autor verwendet ein Tokenisierungsschema, bei dem 'a' als 0 und 'b' als 1 dargestellt wird.
  • Der Code des Modells basiert auf jaymodys picoGPT-GPT-2-Implementierung und wurde zur Vereinfachung teilweise angepasst.
  • Zu den Dimensionen des Modells gehören eine Kontextlänge von 5, eine Vokabulargröße von 2 und eine Embedding-Größe von 8.
  • Der Autor entwarf die Embedding-Gewichte so, dass die ersten fünf Elemente für positionsbezogene One-Hot-Embeddings und die nächsten zwei Elemente für Token-ID-One-Hot-Embeddings verwendet werden.
  • Der Transformer-Block ist so ausgelegt, dass er q-, k- und v-Matrizen erzeugt, das Ergebnis zurück in Embeddings projiziert und dieses dann mithilfe der Token-Embedding-Gewichte erneut auf eine Menge von Next-Token-Logits abbildet.
  • Der Autor liefert eine detaillierte Erklärung zum Design des Attention-Heads und zur Projektion in den Embedding-Raum.
  • Der letzte Schritt besteht darin, das Ergebnis der Ausführung des Transformer-Blocks mit den transponierten Token-Embedding-Gewichten zu multiplizieren, um die finalen Logits zu erhalten.
  • Das Modell verwendet für das Training die Softmax-Funktion und kann für die gegebene Sequenz sinnvolle Vervollständigungen erzeugen.
  • Beim Testen mit eindeutigem Kontext erreicht das Modell eine Erfolgsquote von 100 %.
  • Der Autor ermutigt die Leser, ein intuitiveres Verständnis von Transformern und Attention zu entwickeln und selbst ein eigenes Modell zu bauen.
  • Der Artikel enthält den vollständigen Code des Modells, der Berechnungen mit numpy durchführt und Funktionen für Tokenisierung, Vorhersage und Sequenzvervollständigung definiert.
  • Der Autor schlägt vor, die Effizienz des Modells zu verbessern, indem das Kontextfenster verkleinert und Techniken wie Fused Multiply-Add und KV-Caching verwendet werden.
  • Der Artikel richtet sich an Leser im Bereich Sprachmodelle, insbesondere an Personen mit Interesse an Machine Learning und KI.

1 Kommentare

 
GN⁺ 2023-09-24
Hacker-News-Kommentare
  • Dieser Artikel behandelt die manuelle Erstellung eines Transformers, der einfache Sequenzen vorhersagt.
  • Die zugehörige Forschung „Thinking Like Transformers“ stellt RASP vor, eine primitive Programmiersprache, die sich mit Transformer-Komponenten modellieren lässt.
  • RASP und ähnliche Programme können ohne Training in Modellgewichte kompiliert werden.
  • Es wird empfohlen, einen Transformer von Grund auf selbst zu implementieren, um das Verständnis zu vertiefen, einschließlich der Bedeutung von Dropout und der Parallelisierung des Trainings über Tokens hinweg.
  • Der Artikel legt nahe, dass die praktische Arbeit mit Transformers zu unerwarteten Lernergebnissen führen kann.
  • Ein von Karpathy und anderen erstelltes Video wird als hilfreiche Ressource zum Verständnis von Transformers erwähnt.
  • Es wird die Idee einer intuitiven Schnittstelle für Modellgewichte vorgeschlagen, die von Domain-Experten manuell angepasst werden könnte, um das Training zu beschleunigen.
  • Der Artikel wird dafür gelobt, technische Konzepte durch eine klare Erklärung von Transformers zugänglicher zu machen.
  • Transformers werden mit abstrakten Maschinen verglichen, ähnlich einer Turingmaschine oder einer Maschine, die reguläre Ausdrücke parst.
  • Der Autor hält praktische Anwendungen zwar für fraglich, ermutigt die Leser jedoch, selbst ein Modell zu bauen.
  • Der Artikel ist interessant und informativ und regt unter technisch versierten Lesern Diskussionen und Ideen an.