1 Punkte von GN⁺ 2024-02-25 | 1 Kommentare | Auf WhatsApp teilen

Methoden zur Optimierung von Datenbankabfragen

  • Erläuterung, wie sich Datenbankabfragen beschleunigen lassen.

Ein GPT-Modell in SQL implementieren

  • Theorie und praktischer Implementierungsprozess zur Umsetzung eines GPT-Modells in SQL.
  • Ein GPT-Modell ist eine Funktion, die eine eingegebene Textzeichenfolge entgegennimmt und ein Array aus Zeichenfolgen und Zahlen zurückgibt.
  • Diese Funktion ist deterministisch und liefert für dieselbe Eingabe immer dieselbe Ausgabe.

Theorie

  • Kurze Erklärung der inneren Funktionsweise des GPT-Modells.
  • Erläuterung, was ein generatives großes Sprachmodell aus technischer Sicht ist.
  • Der Rückgabewert der Funktion ist ein Array von Tupeln, die das Wort, das den eingegebenen Prompt fortsetzt, und dessen Wahrscheinlichkeit darstellen.

Bedeutung der Werte

  • Die von der Funktion zurückgegebenen Werte sind ein Array von Tupeln, bestehend aus einem Wort und einer Zahl, die die Wahrscheinlichkeit angibt, mit der dieses Wort den Prompt fortsetzt.

Verschiedene Methoden der Textgenerierung

  • Große Sprachmodelle werden in Textanwendungen verwendet und arbeiten, indem Wörter ausgewählt werden, die das Modell vorschlägt, und dem Prompt hinzugefügt werden.
  • Dieser Prozess erzeugt Text, der Grammatik, Syntax sowie Intelligenz und Schlussfolgerungen menschlicher Sprache enthält.

Bedeutung von Generative Pre-trained Transformer

  • „Generative“ bedeutet, dass Text erzeugt wird, und „Transformer“ weist darauf hin, dass ein bestimmter Typ neuronalen Netzwerks verwendet wird.
  • „Pre-trained“ bedeutet, dass die Fähigkeit des Modells, Text fortzusetzen, als Vortrainingsphase für spezielle Aufgaben gedacht war, dass jedoch ausreichend große Modelle auch ohne zusätzliches Training Anweisungen in menschlicher Sprache befolgen können.

Generierung

  • Erklärung des Prozesses, mit GPT2 aus einem Prompt Text zu generieren.
  • Der Text wird in eine Liste von Tokens umgewandelt, der Algorithmus ausgeführt und die Wahrscheinlichkeiten der Kandidaten-Tokens berechnet.
  • Danach wird das nächste Token ausgewählt, zur Token-Liste hinzugefügt und dieser Vorgang wiederholt, bis genügend Wörter erzeugt wurden.

Tokenizer

  • Der Prozess, Text vor der Eingabe in das neuronale Netzwerk in eine Zahlenliste umzuwandeln.
  • GPT2 implementiert den Tokenizer mithilfe einer Variante des Byte pair encoding-Algorithmus.

Embeddings

  • Da Tokens Teile menschlicher Sprache repräsentieren, müssen die Beziehungen zwischen Tokens kodiert werden, die für die Textvervollständigung nötig sind.
  • GPT2 verwendet zur Einbettung jedes Tokens einen 768-dimensionalen Vektor.

Aufmerksamkeitsmechanismus

  • Erklärung des Self-Attention-Mechanismus, dem Kern der Transformer-Architektur.
  • Die Vektoren der einzelnen Tokens beeinflussen sich gegenseitig und übertragen Eigenschaften auf den letzten Vektor.

Feedforward

  • Ein Schritt, der in tiefen neuronalen Netzwerken ausgeführt wird und Eingaben über mehrere Schichten verarbeitet.
  • Jede Schicht transformiert die Eingabe mithilfe gelernter Parameter.

Blöcke

  • Der in den vorigen Schritten beschriebene Prozess wird über mehrere Schichten (Blöcke) hinweg wiederholt.
  • Die Ausgabe jedes Blocks dient als Eingabe für den nächsten Block.

Meinung von GN⁺

  • Dieser Artikel ist für Datenbankexperten und Softwareingenieure sehr nützlich und kann helfen, den komplexen Prozess der Implementierung eines GPT-Modells in SQL zu verstehen.
  • Durch die Erklärung der Grundprinzipien und Implementierungsmethoden des GPT-Modells können Leser Einblicke in die Funktionsweise von KI-Sprachmodellen gewinnen.
  • Der Artikel enthält technische Inhalte, hilft aber auch dabei, aktuelle Entwicklungen in diesem Bereich zu verstehen, indem er ein interessantes Beispiel für die Verbindung von KI- und Datenbanktechnologien liefert.

1 Kommentare

 
GN⁺ 2024-02-25
Hacker-News-Kommentare
  • Das ist wunderschön. Der Autor hatte mit SQLite in dieselbe Richtung geforscht und sagte, für neuronale Netze sei es noch zu früh. Inspiriert von der Vorlesungsreihe zu makemore begann er nach etwa einer Stunde doch, neuronale Netze zu verwenden, und das ist ungefähr der Punkt, an dem der Autor angekommen ist. Die Aufteilung in ein relationales Modell ist tatsächlich eine sehr gute Übung.
  • Die Demo ist gut, aber die Erklärung der kausalen Maskierung im Artikel ist verwirrend. Kausale Maskierung existiert, um zu verhindern, dass das Modell während des Trainings auf zukünftige Token „spickt“, und bei Architekturen wie GPT dient sie während der Inferenz dazu, den autoregressiven Aspekt zu erzwingen. Während der Inferenz wird ohnehin nur das letzte Token verwendet, daher wird dieses Token auf die gesamte Eingabesequenz achten. Es wird also eindeutig nicht nur durch das Embedding des letzten Tokens bestimmt.
  • Es wird gefragt, ob das eine genaue Beschreibung der GPT-Treiberschleife ist. Der Code scheint einen String in eine Liste von Token umzuwandeln, den Algorithmus auszuführen, die Wahrscheinlichkeiten der Token zurückzugeben, das nächste Token aus einer Kandidatenliste auszuwählen, es der Token-Liste hinzuzufügen und dann wiederholt zu entscheiden, ob die Generierung gestoppt werden soll. Schließlich wird die Token-Liste offenbar wieder in einen String umgewandelt und zurückgegeben. Das wirkt einem Zustandsautomaten sehr ähnlich, der den Algorithmus von Shlemiel the painter implementiert, und wirft Fragen zu den inhärenten Rechenkosten der Generierungsaufgabe auf.
  • Modernes Machine Learning verlangt keine Turing-Vollständigkeit, aber die Leute ziehen die Möglichkeit von AGI in Betracht. Wenn Turing-Vollständigkeit nicht nötig ist, wäre das ziemlich interessant.
  • Verwandter Link: „60-zeiliges GPT in NumPy“ – Februar 2023 (146 Kommentare)
  • Ich liebe das. Was vor einem Jahr noch wie eine Art Magie begann, wird jetzt sehr gut erklärt, fast auf kindlich einfache Weise.
  • Ich habe GPT und LLMs komplett gemieden. Das hier scheint ein gewisses Maß an flüssiger Textausgabe erzeugen zu können, aber wohl nicht zum Parsen von Fragen und zum Beantworten geeignet zu sein. Ich frage mich, wie sie funktionieren und ob es einfache Blogposts oder Kurse gibt, die eine Spielzeug-Engine etwa in einer Sprache wie Python offenlegen. Alles Lehrmaterial, das ich bisher gesehen habe, konzentriert sich darauf, wie man Plattformen benutzt.
  • Das ist großartig. In einem ähnlichen Zusammenhang hat der Autor GPT auch nur mit Tabellenkalkulationsfunktionen implementiert und dazu ein Video-Tutorial bereitgestellt.
  • Unerwartet aufschlussreich und liefert Antworten auf einige Fragen, die ich anfangs hatte: nicht nur zum „Wie“, sondern auch zum „Warum“. Das softmax-Muster sieht man häufig. Ich wünschte, man würde es den Leuten als „differenzierbares argmax“ beibringen, statt ihnen sofort die Formel hinzuknallen. Das ist zwar nicht alles, aber oft wird es so verwendet.
  • Ich lese immer wieder, GPT sei nur ein „intelligenterer“, „komplexerer“ Markov-Prozess, der einfach das nächste Wort mit einer gewissen Wahrscheinlichkeit ausspuckt. Nach meiner Erfahrung stimmt das aber nicht – es muss auf irgendeine Weise lernen. Wenn man ihm zum Beispiel erzählt, heute sei etwas passiert, das der Vergangenheit widerspricht (ich habe dafür die Katar-WM verwendet), und dann eine Frage stellt, die von diesem Ereignis beeinflusst wird, antwortet es korrekt. Ich frage mich, wie ein einfacher Satz (die Information, die man liefert) die Wahrscheinlichkeit des nächsten Tokens auf so weite Entfernung verändern kann.