Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

PHPz
PHPznach vorne
2023-04-13 22:22:01604Durchsuche

Stephen Wolfram, der Vater der Wolfram Language, ist gekommen, um ChatGPT erneut zu unterstützen.

Letzten Monat schrieb er außerdem einen Artikel, in dem er ausdrücklich seine eigene Computer-Wissenssuchmaschine WolframAlpha empfahl, in der Hoffnung, eine perfekte Kombination mit ChatGPT zu finden.

Die allgemeine Bedeutung lautet: „Wenn Ihre Rechenleistung nicht dem Standard entspricht, können Sie meine ‚Superkraft‘ hineinspritzen.“

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Nach mehr als einem Monat veröffentlichte Stephen Wolfram erneut einen 10.000 Wörter langen Artikel, um in einfachen Worten eine ausführliche Erklärung rund um die beiden Fragen „Was ist ChatGPT“ und „Warum ist es so effektiv?“ zu geben. "

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

(Um das Leseerlebnis zu gewährleisten, wird der folgende Inhalt von Stephen Wolfram in der Ich-Perspektive erzählt; am Ende des Artikels befinden sich Easter Eggs!)

Fügen Sie jeweils ein Wort hinzu

ChatGPT kann automatisch Text generieren, der der menschlichen Schrift ähnelt. Ein Punkt ist sehr auffällig und unerwartet. Wie wird es also erreicht? Warum gelingt es so gut, aussagekräftigen Text zu generieren?

In diesem Artikel gebe ich Ihnen einen Überblick über das Innenleben von ChatGPT und erkunde, warum es ihm gelingt, zufriedenstellende Texte zu generieren.

Es ist zu beachten, dass ich mich auf den Gesamtmechanismus von ChatGPT konzentrieren werde. Ich werde zwar einige technische Details erwähnen, aber nicht näher darauf eingehen. Gleichzeitig sollte betont werden, dass das Gesagte auch für andere aktuelle „große Sprachmodelle“ (LLM) gilt, nicht nur für ChatGPT.

Als erstes muss erklärt werden, dass die Kernaufgabe von ChatGPT immer darin besteht, eine „vernünftige Fortsetzung“ zu generieren, also auf Basis des vorhandenen Textes den nächsten sinnvollen Inhalt zu generieren, der den menschlichen Schreibgewohnheiten entspricht. Das sogenannte „Vernünftige“ bezieht sich auf die Schlussfolgerung, welche Inhalte als nächstes erscheinen könnten, basierend auf den statistischen Mustern von Milliarden von Webseiten, digitalen Büchern und anderen von Menschen geschriebenen Inhalten.

Wenn wir beispielsweise den Text „Das Beste an KI ist ihre Kraft“ eingeben, findet ChatGPT ähnlichen Text in Milliarden von Seiten menschlichen Textes und zählt dann die Wahrscheinlichkeit, dass das nächste Wort erscheint. Es ist zu beachten, dass ChatGPT den Text selbst nicht direkt vergleicht, sondern auf einem gewissen Sinn für „Bedeutungsübereinstimmung“ basiert. Letztendlich erstellt ChatGPT eine Liste möglicher Wörter und gibt jedem Wort eine Wahrscheinlichkeitsbewertung:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Es ist erwähnenswert, dass ChatGPT, wenn er eine Aufgabe wie das Schreiben eines Artikels abschließt, diese tatsächlich immer und immer wieder fragt noch einmal: „Was sollte das nächste Wort auf der Grundlage des vorhandenen Textes sein?“ – und jedes Mal, wenn ein Wort hinzugefügt wird (genauer gesagt, wird, wie ich erklärt habe, ein „Token“ hinzugefügt). Dies kann nur ein Teil des Wortes sein. weshalb es manchmal „neue Wörter schafft“).

Bei jedem Schritt erhält es eine Liste von Wörtern mit Wahrscheinlichkeiten. Aber welches Wort sollte es wählen, um es dem Artikel (oder etwas anderem) hinzuzufügen, den es schreibt?

Man könnte meinen, dass das Wort mit dem „höchsten Rang“ (d. h. das Wort mit der höchsten „Wahrscheinlichkeit“) ausgewählt werden sollte. Doch hier beginnt sich etwas Geheimnisvolles einzuschleichen. Denn aus irgendeinem Grund – und vielleicht werden wir eines Tages ein wissenschaftliches Verständnis haben – wenn wir immer das am höchsten bewertete Wort wählen, erhalten wir normalerweise einen sehr „langweiligen“ Artikel, der niemals Kreativität zeigt (manchmal sogar wörtlich wiederholt). Wenn wir manchmal (zufällig) ein Wort mit niedrigerem Rang auswählen, erhalten wir möglicherweise einen „interessanteren“ Artikel.

Das Vorhandensein von Zufälligkeit bedeutet hier, dass wir höchstwahrscheinlich jedes Mal einen anderen Artikel erhalten, wenn wir dieselbe Eingabeaufforderung mehrmals verwenden. Im Einklang mit dem Voodoo-Konzept gibt es dabei einen bestimmten sogenannten „Temperatur“-Parameter, der bestimmt, wie häufig Wörter mit niedrigerem Rang für die Artikelgenerierung verwendet werden. Diese „Temperatur“ wird am besten auf 0,8 eingestellt. Es muss betont werden, dass es sich hier nicht um „Theorie“ handelt; es handelt sich lediglich um Fakten, die sich in der Praxis bewährt haben. Beispielsweise existiert der Begriff „Temperatur“, weil Exponentialverteilungen (bekannte Verteilungen aus der statistischen Physik) zwar verwendet werden, zwischen ihnen jedoch, zumindest soweit wir wissen, kein „physikalischer“ Zusammenhang besteht.

Bevor ich fortfahre, sollte ich erklären, dass ich aus Gründen der Präsentation meistens nicht das vollständige System in ChatGPT verwende, sondern normalerweise ein einfacheres GPT-2-System, das großartige Funktionen bietet ist klein genug, um auf einem Standard-Desktop-Computer ausgeführt zu werden. Daher enthält fast alles, was ich zeige, expliziten Wolfram Language-Code, den Sie sofort auf Ihrem Computer ausführen können.

Das Bild unten zeigt beispielsweise, wie man die obige Wahrscheinlichkeitstabelle erhält. Zuerst müssen wir das zugrunde liegende neuronale Netzwerk „Sprachmodell“ abrufen:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Später werden wir in dieses neuronale Netzwerk eintauchen und diskutieren, wie es funktioniert. Aber vorerst können wir dieses „Netzwerkmodell“ als Blackbox auf unseren Text anwenden und die fünf besten Wörter basierend auf den Wahrscheinlichkeiten anfordern, denen das Modell folgen sollte:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Nachdem wir die Ergebnisse erhalten haben, werden wir dies tun Konvertieren Sie dies in einen explizit formatierten „Datensatz“:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Das passiert, wenn Sie das Modell iterativ „anwenden“ und bei jedem Schritt die Wörter mit der höchsten Wahrscheinlichkeit hinzufügen (in diesem Code wie im Modell „Entscheidung“ angegeben). "):

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Was passiert, wenn wir weitermachen? In dieser („Null-Grad“)-Situation kann es schnell zu recht verwirrenden und sich wiederholenden Situationen kommen.

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Aber was wäre, wenn Sie, anstatt immer „Top“-Wörter auszuwählen, manchmal zufällig „Nicht-Top“-Wörter auswählen („Zufälligkeit“ entspricht einer „Temperatur“ von 0,8)? Wir können den Text wieder weiter schreiben:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Und jedes Mal, wenn wir das tun, wird es eine andere zufällige Auswahl geben und der entsprechende Text wird anders sein. Zum Beispiel die folgenden 5 Beispiele:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Es ist darauf hinzuweisen, dass bereits im ersten Schritt viele mögliche „nächste Wörter“ basierend auf dem vorhandenen Text (im Fall einer Temperatur) zur Auswahl stehen von 0,8 unten), obwohl ihre Wahrscheinlichkeiten schnell abnehmen (ja, die gerade Linie in diesem logarithmischen Diagramm entspricht einem n–1-„Potenzgesetz“-Zerfall, der ein allgemeines statistisches Merkmal von Sprachen ist):

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Also Was passiert, wenn wir weiter schreiben? Hier ist ein zufälliges Beispiel. Es ist etwas besser als die Verwendung des Wortes mit dem höchsten Rang (Nullgrad), aber immer noch etwas seltsam:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Dies wurde mit dem einfachsten GPT-2-Modell (von 2019) durchgeführt. Mit dem neueren, größeren GPT-3-Modell sind die Ergebnisse besser. Hier ist der Text mit dem Wort mit dem höchsten Rang (Nullgrad), der mit demselben „Hinweis“, aber unter Verwendung des größten GPT-3-Modells generiert wurde:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Als nächstes folgt ein zufälliges Beispiel für „Temperatur beträgt 0,8“:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Woher kommen diese Wahrscheinlichkeiten?

ChatGPT wählt das nächste Wort immer basierend auf der Wahrscheinlichkeit aus. Aber woher kommen diese Wahrscheinlichkeiten?

Beginnen wir mit einer einfacheren Frage. Wenn wir erwägen, englischen Text Buchstabe für Buchstabe (und nicht Wort für Wort) zu generieren, wie bestimmen wir dann die Wahrscheinlichkeit jedes Buchstabens?

Der einfachste Weg besteht darin, eine Probe eines englischen Textes zu nehmen und die Häufigkeit verschiedener Buchstaben darin zu zählen. Hier ist zum Beispiel die Anzahl der Buchstaben im Wikipedia-Artikel für „Katze“ (die Zählergebnisse werden hier weggelassen):

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Dies ist für „Hund“ der Fall:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Die Die Ergebnisse sind ähnlich, aber nicht ganz (schließlich kommt das „o“ in „Hunde“-Artikeln häufiger vor, weil es im Wort „Hund“ selbst vorkommt). Wenn wir jedoch eine ausreichend große Stichprobe englischen Textes nehmen, können wir letztendlich damit rechnen, zumindest einigermaßen konsistente Ergebnisse zu erhalten:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Hier ist ein Beispiel, in dem wir Buchstabenfolgen mit genau diesen Wahrscheinlichkeiten generieren:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Wir können „Wörter“ besser aufteilen, indem wir die Verteilung der „Wortlängen“ erzwingen, damit sie mit dem Englischen übereinstimmen. „:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Hier haben wir keine „echten Wörter“ generiert, sondern das Ergebnis sieht etwas besser aus. Um jedoch weiter zu gehen, brauchen wir mehr Arbeit als nur die zufällige Auswahl jedes Buchstabens. Wir wissen zum Beispiel, dass wenn ein „q“ vorkommt, der nächste Buchstabe grundsätzlich ein „u“ sein muss.

Dies ist ein Wahrscheinlichkeitsdiagramm für die Buchstaben selbst:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Dies ist ein Wahrscheinlichkeitsdiagramm für Buchstabenpaare („2-Gramm“) in typischem englischen Text. Die horizontale Achse ist der mögliche erste Buchstabe und die vertikale Achse ist der zweite Buchstabe (das Wahrscheinlichkeitsdiagramm wird hier weggelassen):

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Hier können wir sehen, dass die Spalte „q“ außer dem „u“ ist In der Zeile ist alles andere leer (Nullwahrscheinlichkeit). Nun, anstatt „Wörter“ Buchstabe für Buchstabe zu generieren, generieren wir sie mithilfe dieser „2-Gramm“-Wahrscheinlichkeiten, jeweils zwei Buchstaben. Hier ist ein Beispiel der Ergebnisse – die zufällig einige „tatsächliche Wörter“ enthalten:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Mit genügend englischem Text können wir nicht nur eine gute Schätzung der Wahrscheinlichkeit eines einzelnen Buchstabens oder Buchstabenpaars erhalten (2- Gramm) kann auch die Wahrscheinlichkeit längerer Buchstabenkombinationen abgeschätzt werden. Wenn wir zunehmend längere N-Gramm-Wahrscheinlichkeiten verwenden, um „zufällige Wörter“ zu generieren, werden wir feststellen, dass sie allmählich „realistischer“ werden.

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Aber jetzt nehmen wir an, dass es sich – wie bei ChatGPT – um ganze Wörter handelt, nicht um Buchstaben. Im Englischen gibt es etwa 40.000 gebräuchliche Wörter. Indem wir uns eine große Menge englischen Textes ansehen (z. B. Millionen Bücher mit mehreren zehn Milliarden Wörtern), können wir die Häufigkeit jedes Wortes abschätzen. Mit dieser Schätzung können wir beginnen, „Sätze“ zu generieren, bei denen jedes Wort unabhängig und zufällig mit der gleichen Wahrscheinlichkeit ausgewählt wird, mit der es im Korpus vorkommt. Hier ist ein Beispiel von dem, was wir bekommen haben:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Es überrascht nicht, dass das Unsinn ist. Was können wir also tun, um bessere Sätze zu generieren? Genau wie bei Buchstaben können wir anfangen, über die Wahrscheinlichkeit nicht nur von Wörtern, sondern auch von Wortpaaren oder längeren N-Grammen nachzudenken. Für Wortpaare hier 5 Beispiele, die alle mit dem Wort „Katze“ beginnen:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

sieht etwas „bedeutungsvoller“ aus. Wenn wir ausreichend lange N-Gramme verwenden könnten, könnten wir uns im Wesentlichen vorstellen, „einen ChatGPT zu erhalten“ – das heißt, wir würden etwas erhalten, das lange Textsequenzen mit „der korrekten Gesamtartikelwahrscheinlichkeit“ generiert. Aber hier ist die Sache: Es wurde tatsächlich nicht genügend englischer Text geschrieben, um diese Wahrscheinlichkeiten ableiten zu können.

Ein Webcrawler kann Dutzende Milliarden Wörter enthalten; ein digitalisiertes Buch kann Dutzende Milliarden Wörter mehr enthalten. Aber selbst bei 40.000 gebräuchlichen Wörtern liegt die Zahl der möglichen 2-Tupel bereits bei 1,6 Milliarden und die Zahl der möglichen 3-Tupel bei satten 60 Billionen. Daher können wir die Wahrscheinlichkeiten dieser Möglichkeiten anhand des vorhandenen Textes nicht abschätzen. Wenn wir einen „Aufsatzausschnitt“ mit 20 Wörtern erstellen müssen, übersteigt die Anzahl der Möglichkeiten bereits die Anzahl der Teilchen im Universum, sodass sie in gewisser Weise nicht alle aufgeschrieben werden können.

Also, was sollen wir tun? Die Schlüsselidee besteht darin, ein Modell zu erstellen, das es uns ermöglicht, die Wahrscheinlichkeit abzuschätzen, dass Sequenzen auftreten, auch wenn wir diese Sequenzen im Textkorpus, den wir betrachten, nie explizit gesehen haben. Das Herzstück von ChatGPT ist das sogenannte „Large Language Model“ (LLM), das darauf ausgelegt ist, diese Wahrscheinlichkeiten sehr gut abzuschätzen.

(Aus Platzgründen erfolgt die Zusammenstellung von Kapiteln wie „Was ist ein Modell“, „Neuronales Netz“, „Maschinelles Lernen und Training neuronaler Netze“, „Praxis und Wissen über Training neuronaler Netze“ und „Einbettungskonzepte“ werden hier weggelassen. Interessierte Leser können den Originaltext selbst lesen)

Die interne Struktur von ChatGPT

Es besteht kein Zweifel daran, dass es sich letztendlich um ein riesiges neuronales Netzwerk handelt, und die aktuelle Version ist ein GPT-3-Netzwerk mit 175 Milliarden Gewichten . In vielerlei Hinsicht ist dieses neuronale Netzwerk den anderen neuronalen Netzwerken, die wir besprochen haben, sehr ähnlich, es handelt sich jedoch um ein neuronales Netzwerk, das speziell für die Verarbeitung von Sprache entwickelt wurde. Das bemerkenswerteste Merkmal ist eine neuronale Netzwerkarchitektur namens „Transformer“.

In der ersten Art von neuronalem Netzwerk, die wir oben besprochen haben, ist jedes Neuron in einer bestimmten Schicht im Wesentlichen (mit zumindest einem gewissen Gewicht) mit jedem Neuron in der vorherigen Schicht verbunden. Ein solches vollständig verbundenes Netzwerk ist jedoch (vermutlich) übertrieben, wenn Sie Daten mit einer bestimmten bekannten Struktur verarbeiten möchten. Daher ist es in den frühen Stadien der Bildverarbeitung üblich, sogenannte Faltungsneuronale Netze („Convnets“) zu verwenden, bei denen die Neuronen tatsächlich auf einem Raster ähnlich den Bildpixeln angeordnet sind und nur mit Neuronen in der Nähe der Bildpixel interagieren Netz angeschlossen.

Die Idee von Transformer besteht darin, zumindest etwas Ähnliches wie die Reihenfolge der Token zu tun, aus denen der Text besteht. Der Transformer definiert jedoch nicht nur einen festen Bereich, innerhalb dessen Verbindungen hergestellt werden können, sondern führt auch das Konzept der „Aufmerksamkeit“ ein – das Konzept der „Aufmerksamkeit“, das sich mehr auf bestimmte Teile der Sequenz als auf andere konzentriert. Vielleicht macht es eines Tages Sinn, einfach ein allgemeines neuronales Netzwerk mit allen Anpassungen durch Training zu starten. Aber zumindest in der Praxis ist die Modularisierung von Dingen, zumindest im Moment, von entscheidender Bedeutung, genau wie bei Transformers und wahrscheinlich auch bei dem, was unser Gehirn tut.

Was macht ChatGPT (oder genauer gesagt das GPT-3-Netzwerk, auf dem es basiert) eigentlich? Denken Sie daran, dass sein übergeordnetes Ziel darin besteht, „vernünftig“ mit dem Schreiben von Texten fortzufahren, basierend auf dem, was es im Training sieht (einschließlich der Betrachtung von Texten von Milliarden von Seiten im Internet). Es verfügt also zu jedem Zeitpunkt über eine bestimmte Textmenge und sein Ziel besteht darin, eine geeignete Auswahl für das nächste Token zu treffen.

ChatGPT funktioniert basierend auf drei Grundstufen. Zuerst erhält es die Sequenz von Token, die dem aktuellen Text entspricht, und findet die Einbettung (d. h. ein Array von Zahlen), die sie darstellt. Diese Einbettung wird dann auf die „standardmäßige Weise eines neuronalen Netzwerks“ bearbeitet, wodurch die Werte durch aufeinanderfolgende Schichten im Netzwerk „schwanken“ und eine neue Einbettung (d. h. ein neues Array von Zahlen) entsteht. Als nächstes nimmt es den letzten Teil dieses Arrays und generiert ein Array mit etwa 50.000 Werten, die sich in Wahrscheinlichkeiten verschiedener und möglicher nächster Token übersetzen lassen (ja, es gibt zufällig die gleiche Anzahl von Token wie gebräuchliche englische Wörter, obwohl nur etwa 3000 Token sind vollständige Wörter, der Rest sind Fragmente)

Der entscheidende Punkt ist, dass jeder Teil dieser Pipeline von einem neuronalen Netzwerk implementiert wird und seine Gewichte durch das End-to-End-Training des Netzwerks bestimmt werden. Mit anderen Worten, nichts wird tatsächlich „explizit entworfen“, außer dass die Gesamtarchitektur aus den Trainingsdaten „gelernt“ wird.

Allerdings gibt es viele Details in der Art und Weise, wie die Architektur aufgebaut ist – was eine große Vielfalt an Erfahrungen und Kenntnissen über neuronale Netze widerspiegelt. Obwohl dies definitiv eine Frage der Details ist, dachte ich, dass es nützlich wäre, einige dieser Details zu besprechen, um zumindest zu verstehen, was zum Erstellen von ChatGPT erforderlich ist.

Das erste ist das Einbettungsmodul. Hier ist ein schematisches Diagramm von GPT-2, ausgedrückt in Wolfram Language:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Dieser Text stellt ein Modul namens „Einbettungsmodul“ vor, das drei Hauptschritte umfasst. Im ersten Schritt wird der Text in eine Token-Sequenz umgewandelt und jedes Token mithilfe eines einschichtigen neuronalen Netzwerks in einen Einbettungsvektor mit einer Länge von 768 (für GPT-2) oder 12288 (für ChatGPTs GPT-3) umgewandelt . Gleichzeitig gibt es im Modul auch einen „sekundären Pfad“, der dazu dient, die ganzzahlige Position des Tokens in einen Einbettungsvektor umzuwandeln. Schließlich werden der Token-Wert und der Einbettungsvektor der Token-Position addiert, um die endgültige Einbettungsvektorsequenz zu erzeugen.

Warum müssen wir den Token-Wert und den Einbettungsvektor der Token-Position hinzufügen? Eine besonders wissenschaftliche Erklärung scheint es nicht zu geben. Ich habe gerade ein paar verschiedene Dinge ausprobiert und dieses scheint zu funktionieren. Und die Tradition neuronaler Netze besagt auch, dass, solange die Anfangseinstellungen „ungefähr korrekt“ sind und ausreichend trainiert wird, die Details normalerweise automatisch angepasst werden können, ohne tatsächlich „zu verstehen, wie das neuronale Netz aufgebaut ist“.

Die Funktion dieses Moduls „Einbettungsmodul“ besteht darin, Text in eine Folge von Einbettungsvektoren umzuwandeln. Am Beispiel der Zeichenfolge „Hallo hallo hallo hallo hallo hallo hallo hallo hallo bye bye bye bye bye bye bye bye bye“ kann sie in eine Reihe von Einbettungsvektoren mit einer Länge von 768 umgewandelt werden, einschließlich Informationen aus jedem Token aus Werten und Orten extrahiert.

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Hier werden die Elemente jedes Token-Einbettungsvektors angezeigt. Eine Reihe von „Hallo“-Einbettungen wird horizontal angezeigt, gefolgt von einer Reihe von „Tschüs“-Einbettungen. Das zweite Array oben ist eine Positionseinbettung, deren scheinbar zufällige Struktur zufällig gelernt wird (in diesem Fall in GPT-2).

Okay, nach dem Einbettungsmodul kommt der „Hauptteil“ des Transformers: eine Reihe sogenannter „Aufmerksamkeitsblöcke“ (12 für GPT-2, 96 für ChatGPTs GPT-3). Das ist komplex und erinnert an typischerweise unverständliche große technische Systeme oder biologische Systeme. Hier ist jedoch ein Diagramm eines einzelnen „Aufmerksamkeitsblocks“ von GPT-2:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

In jedem Aufmerksamkeitsblock gibt es eine Reihe von „Aufmerksamkeitsköpfen“ (GPT-2 hat 12, ChatGPTs GPT -3 hat 96), jeder Aufmerksamkeitskopf wirkt unabhängig auf Blöcke mit unterschiedlichen Werten im Einbettungsvektor. (Ja, wir kennen weder die Vorteile der Aufteilung von Einbettungsvektoren in Teile, noch wissen wir, was ihre verschiedenen Teile bedeuten; es ist nur eine der Techniken, die sich als funktionierend erwiesen haben.)

Was ist also die Funktion des Aufmerksamkeitskopfes? Im Grunde handelt es sich dabei um eine Möglichkeit, auf eine Folge von Token (d. h. bereits generierten Text) „zurückzublicken“ und die historischen Informationen in eine nützliche Form zu „verpacken“, um das nächste Token leicht zu finden. Oben haben wir die Verwendung binärer Wahrscheinlichkeiten erwähnt, um Wörter basierend auf ihrem vorherigen Token auszuwählen. Der „Aufmerksamkeits“-Mechanismus in Transformer ermöglicht „Aufmerksamkeit“ auf frühere Wörter und erfasst möglicherweise beispielsweise die Art und Weise, wie sich Verben auf Substantive beziehen, die in einem Satz mehrere Wörter vor ihnen erscheinen.

Konkret besteht die Aufgabe des Aufmerksamkeitskopfes darin, die Blöcke der Einbettungsvektoren, die sich auf verschiedene Token beziehen, neu zu kombinieren und bestimmte Gewichte zuzuweisen. So haben beispielsweise die 12 Aufmerksamkeitsköpfe im ersten Aufmerksamkeitsblock in GPT-2 das folgende „Umgruppierungsgewicht“-Muster („Schauen Sie sich die Token-Sequenz bis zum Anfang zurück“) für die obige „Hallo, tschüss“-Zeichenfolge :

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Nach der Verarbeitung durch den Aufmerksamkeitsmechanismus wird ein „neu gewichteter Einbettungsvektor“ (Länge 768 für GPT-2 und 12.288 für ChatGPTs GPT-3) erhalten und dann durch einen standardmäßigen „vollständigen Einbettungsvektor“ geleitet „Verbinden“ Sie die Schichten des neuronalen Netzwerks. Es ist schwer zu verstehen, was diese Schicht tut. Aber hier ist ein Diagramm der 768×768-Gewichtsmatrix, die es verwendet (hier GPT-2):

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Mit einem gleitenden Durchschnitt von 64×64 beginnt sich eine (zufällige Walk-ähnliche) Struktur abzuzeichnen:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Was bestimmt diese Struktur? Dabei handelt es sich möglicherweise um eine „Neuronale Netzwerkkodierung“ der Merkmale der menschlichen Sprache. Doch bisher waren diese Eigenschaften möglicherweise unbekannt. Tatsächlich „öffnen wir das Gehirn“ von ChatGPT (oder zumindest GPT-2) und entdecken, dass darin zwar eine Menge Komplexität steckt, die wir nicht verstehen, obwohl es letztendlich die Fähigkeit zum Erkennen ermöglicht menschliche Sprache.

Okay, nachdem wir ein Aufmerksamkeitsmodul durchlaufen haben, erhalten wir einen neuen Einbettungsvektor, der dann nacheinander durch andere Aufmerksamkeitsmodule geleitet wird (insgesamt 12 für GPT-2 und 96 für GPT-3). Jedes Aufmerksamkeitsmodul verfügt über seine eigenen spezifischen „Aufmerksamkeits“- und „vollständig verbundenen“ Gewichtungsmuster. Hier ist die Reihenfolge der Aufmerksamkeitsgewichte für den ersten Aufmerksamkeitskopf für die Eingabe „Hallo, tschüss“ (für GPT-2):

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Das Folgende ist die „Matrix“ der vollständig verbundenen Schicht (nach dem gleitenden Durchschnitt). ) :

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Obwohl diese „Gewichtsmatrizen“ in verschiedenen Aufmerksamkeitsblöcken sehr ähnlich aussehen, kann die Verteilung der Gewichtsgrößen interessanterweise unterschiedlich sein (und nicht immer Gaußsch):

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Also, Was ist der Nettoeffekt des Transformers nach all diesen Aufmerksamkeitsblockaden? Im Wesentlichen wird der ursprüngliche Einbettungssatz von Tokensequenzen in den endgültigen Satz umgewandelt. Die spezifische Funktionsweise von ChatGPT besteht darin, die letzte Einbettung im Satz auszuwählen und sie zu „dekodieren“, um eine Wahrscheinlichkeitsliste des nächsten Tokens zu erstellen.

Das ist also ein Überblick über die Interna von ChatGPT. Es mag komplex erscheinen (viele dieser Entscheidungen sind unvermeidbar, etwas willkürliche „technische Entscheidungen“), aber in Wirklichkeit sind die beteiligten Elemente letztendlich recht einfach. Denn letztendlich haben wir es nur mit neuronalen Netzwerken zu tun, die aus „künstlichen Neuronen“ bestehen, von denen jedes die einfache Operation ausführt, eine Reihe numerischer Eingaben mit einigen Gewichten zu kombinieren.

Die ursprüngliche Eingabe in ChatGPT ist ein Array von Zahlen (der bisherige Einbettungsvektor des Tokens), und wenn ChatGPT „ausgeführt“ wird, um ein neues Token zu generieren, werden diese Zahlen einfach durch die Schichten des neuronalen Netzwerks „weitergegeben“. Jedes Neuron „macht sein eigenes Ding“ und gibt das Ergebnis an die Neuronen der nächsten Schicht weiter. Es gibt keine Schleifen oder „Backtracking“. Alles wird einfach über das Netzwerk „gespeist“.

Das unterscheidet sich völlig von typischen Computersystemen wie Turing-Maschinen, die die Ergebnisse immer wieder durch dieselben Rechenelemente „neu verarbeiten“. Hier wird – zumindest im Hinblick auf die Generierung eines bestimmten Ausgabetokens – jedes Rechenelement (d. h. Neuron) nur einmal verwendet.

Aber es gibt immer noch das Gefühl einer „äußeren Schleife“ in ChatGPT, die sogar in berechneten Elementen wiederverwendet wird. Denn wenn ChatGPT ein neues Token generieren möchte, „liest“ es immer die gesamte davor erschienene Token-Sequenz (d. h. verwendet es als Eingabe), einschließlich der zuvor von ChatGPT selbst „geschriebenen“ Token. Wir können uns diesen Aufbau so vorstellen, dass ChatGPT auf seiner äußersten Ebene zumindest eine „Feedbackschleife“ beinhaltet, obwohl jede Iteration explizit als Token sichtbar ist, das im von ihr generierten Text erscheint.

Kehren wir zum Kern von ChatGPT zurück: dem neuronalen Netzwerk, das zur Generierung jedes Tokens verwendet wird. Auf einer Ebene ist es ganz einfach: eine Ansammlung identischer künstlicher Neuronen. Einige Teile des Netzwerks bestehen nur aus („vollständig verbundenen“) Schichten von Neuronen, wobei jedes Neuron auf dieser Schicht (mit einem gewissen Gewicht) mit jedem Neuron auf der vorherigen Schicht verbunden ist. Aber insbesondere in seiner Transformer-Architektur verfügt ChatGPT über einen strukturierteren Teil, in dem nur bestimmte Neuronen auf bestimmten Schichten verbunden sind. (Natürlich kann man immer noch sagen „alle Neuronen sind verbunden“ – aber einige Neuronen haben kein Gewicht).

Außerdem sind einige Aspekte des neuronalen Netzwerks in ChatGPT nicht die natürlichsten „homogenen“ Schichten. Beispielsweise gibt es innerhalb eines Aufmerksamkeitsblocks Stellen, an denen „mehrere Kopien“ der eingehenden Daten erstellt werden, die dann jeweils einen anderen „Verarbeitungspfad“ durchlaufen, der möglicherweise eine andere Anzahl von Schichten umfasst, bevor sie später wieder zusammengesetzt werden. Auch wenn dies eine bequeme Art der Notation sein mag, ist es zumindest im Prinzip immer möglich, die Schichten „dicht auszufüllen“ und nur einige Gewichte auf Null zu setzen.

Wenn Sie sich den längsten Pfad in ChatGPT ansehen, gibt es etwa 400 Schichten (Kernschicht) – in mancher Hinsicht keine große Zahl. Aber es gibt Millionen von Neuronen, insgesamt 175 Milliarden Verbindungen und damit 175 Milliarden Gewichte. Man muss sich darüber im Klaren sein, dass ChatGPT jedes Mal, wenn es ein neues Token generiert, Berechnungen für jedes Gewicht durchführen muss. Im Hinblick auf die Implementierung können diese Berechnungen in hochparallele Array-Operationen organisiert werden, die problemlos auf der GPU durchgeführt werden können. Aber das erfordert immer noch 175 Milliarden Berechnungen für jeden produzierten Token (und am Ende noch etwas mehr) – also ist es keine Überraschung, dass das Generieren eines langen Textstücks mit ChatGPT eine Weile dauert.

Aber letztendlich müssen wir auch beachten, dass alle diese Vorgänge irgendwie zusammenarbeiten, um eine so „menschenähnliche“ Aufgabe der Textgenerierung zu erfüllen. Es muss noch einmal betont werden, dass es (zumindest soweit wir wissen) keinen „ultimativen theoretischen Grund“ gibt, warum so etwas funktionieren sollte. Tatsächlich denke ich, dass wir dies, wie wir noch besprechen werden, als eine – möglicherweise überraschende – wissenschaftliche Entdeckung betrachten müssen: In einem neuronalen Netzwerk wie ChatGPT ist es möglich zu erfassen, was das menschliche Gehirn bei der Erzeugung von Sprache tut in der Lage, es zu tun.

(Aufgrund der Länge des Originalartikels können interessierte Freunde auf den Link am Ende des Artikels klicken, um den vollständigen Text zu lesen)

Noch eine Sache

Vielleicht sind einigen Freunden beim Öffnen dieses Artikels einige Feinheiten aufgefallen Änderungen:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Ja, der Herausgeber des Kerninhalts dieses Artikels ist kein anderer als ChatGPT!

Außerdem wird über seine Ansichten zu Stephen Wolframs Artikel gesprochen:

Warum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha

Referenzlink:

[1] ​​https://www.php.cn/link/e3670ce0c315396e4836d7024abcf3dd​ ​​
[2]​​​https://www.php.cn/link/b02f0c434ba1da7396aca257d0eb1e2f​​​
[3]​​​https://www.php.cn/link/76e9a17937b75b73a8a430acf210fe af​

Das obige ist der detaillierte Inhalt vonWarum ChatGPT so mächtig ist: eine ausführliche Erklärung eines 10.000 Wörter langen Artikels des Vaters von WolframAlpha. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen