![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Trotz des aktuellen Hypes sind Sprachmodelle nicht neu. Wir haben sie seit Jahren in unseren Telefonen und führen automatische Vervollständigungen durch. Und obwohl sie uns vielleicht ein paar Sekunden bei der Rechtschreibung ersparen, würde niemand sie jemals als „intelligent“ oder „ intelligent “ bezeichnen.
Technisch gesehen sind alle Sprachmodelle nur Wahrscheinlichkeitsverteilungen von Token. Sie werden darauf trainiert, anhand der vorherigen das nächste wahrscheinliche Wort oder Symbol zu bestimmen, je nachdem, welches tokenisiert wurde. Sie können aber auch für andere Aufgaben wie Sprachübersetzung und Beantwortung von Fragen optimiert werden.
Bei der Sprachgenerierung handelt es sich um den Prozess, einem Algorithmus ein zufälliges Wort zu geben, damit er das nächste auf der Grundlage der Wahrscheinlichkeiten generieren kann, die er aus den Trainingsdaten gelernt hat, und ihn dann kontinuierlich mit seiner eigenen Ausgabe zu versorgen. Wenn das Modell beispielsweise „Ich“ sieht, erwarten wir, dass es „bin“, dann „gut“ usw. ausgibt.
Seine Fähigkeit, sinnvolle Sätze zu bilden, hängt von der Größe seines Referenzfensters ab. Ältere Basismodelle, wie sie beispielsweise in unseren Telefonen zu finden sind, können nur ein oder zwei Wörter zurückschauen, weshalb sie kurzsichtig sind und den Anfang eines Satzes vergessen, wenn sie die Mitte erreichen.
Vor Transformatoren verwendeten Forscher wiederkehrende neuronale Netze (RNNs), um das Problem des kurzen Gedächtnisses zu beheben. Ohne zu sehr ins Detail zu gehen, können wir sagen, dass ihr Trick darin bestand, einen versteckten Zustandsvektor zu erzeugen, der Informationen über alle Knoten im Eingabesatz enthält, und ihn mit jedem neuen eingeführten Token zu aktualisieren.
Obwohl die Idee auf jeden Fall clever war, war der verborgene Zustand am Ende immer stark auf die neuesten Eingaben ausgerichtet. Daher neigten RNNs wie grundlegende Algorithmen immer noch dazu, den Satzanfang zu vergessen, wenn auch nicht annähernd so schnell.
Später wurden die Netzwerke Long Short-Term Memory (LSTM) und Gated Recurrent Unit (GRU) eingeführt. Im Gegensatz zu Vanilla-RNNs verfügten sie über integrierte Mechanismen (Gates), die dazu beitrugen, die Erinnerung an relevante Eingaben beizubehalten, selbst wenn diese weit von der erzeugten Ausgabe entfernt waren. Allerdings waren diese Netzwerke immer noch sequenzieller Natur und hatten viel zu komplexe Architekturen. Sie waren ineffizient und verhinderten parallele Berechnungen, sodass es keine Chance gab, sie gleichzeitig auf mehreren Computern auszuführen, um eine blitzschnelle Leistung zu erzielen.
Im Jahr 2017 wurden Transformatoren in diesem Artikel von Google erstmals beschrieben. Im Gegensatz zu LSTMs und GRUs hatten sie die Möglichkeit, aktiv die Segmente auszuwählen, die in einem bestimmten Stadium für die Verarbeitung relevant waren, und sie bei der Erstellung einer Schätzung heranzuziehen. Sie waren schneller, effizienter und hatten eine einfachere Architektur, die auf dem Prinzip der Aufmerksamkeit basierte.
Es ist komisch, dass es, wenn man das Werk jetzt liest, wie ein gewöhnlicher Aufsatz über maschinelle Übersetzung klingt, von denen es damals viele gab. Den Autoren war wahrscheinlich nicht bewusst, dass sie eine der wichtigsten Architekturen in der Geschichte der KI erfunden haben könnten.
Im Kontext des maschinellen Lernens bezieht sich Aufmerksamkeit auf die jedem Token zugewiesenen Vektoren, die Informationen über seine Position in einer Sequenz und seine Bedeutung im Verhältnis zu anderen Eingabeelementen enthalten. Das Modell kann sie bei der Erstellung von Vorhersagen verwenden, ohne dass eine serielle Verarbeitung erforderlich ist. Lassen Sie es uns etwas aufschlüsseln, damit es klarer wird.
Vor Transformatoren bestand der traditionelle Ansatz zur Sequenz-zu-Sequenz-Verarbeitung, wie etwa die neuronale Sprachübersetzung, darin, alle Eingaben mithilfe eines RNN in einen einzigen verborgenen Zustand zu codieren und dann die Zielsequenz mithilfe eines anderen RNN zu decodieren. Bei der Kodierung kam es nur auf den Endzustand an.
Im Jahr 2014 haben Bahdanau et al. schlug die brillante Idee vor, alle verborgenen Zustände dem Decoder-Netzwerk zur Verfügung zu stellen und es bestimmen zu lassen, welche davon für die Erzeugung der aktuellen Ausgabe am wichtigsten sind. Das Netzwerk achtete auf die relevanten Teile und ignorierte den Rest.
Vier Jahre später wurde Googles Artikel veröffentlicht. Diesmal schlugen die Autoren vor, RNNs komplett aufzugeben und sich nur auf die Kodierungs- und Dekodierungsphase zu konzentrieren. Dazu mussten sie bestimmte Modifikationen am ursprünglichen Aufmerksamkeitsmechanismus vornehmen, was zur Entwicklung der Selbstaufmerksamkeit führte.
Es ist wahrscheinlich am einfachsten, sich Selbstaufmerksamkeit als einen Kommunikationsmechanismus zwischen Knoten in einer einzigen Sequenz vorzustellen. Die Funktionsweise besteht darin, dass allen Eingabetokens drei Vektoren zugewiesen werden – Abfrage (Q), Schlüssel (K) und Wert (V) – die verschiedene Aspekte ihrer anfänglichen Einbettung darstellen.
Die Abfragevektoren (Q) geben an, wonach die Eingabe sucht. Betrachten Sie sie als die Phrasen, die Sie in die YouTube-Suchleiste eingeben.
Die Schlüsselvektoren (K) dienen als Identifikatoren für die Eingabe und helfen ihr, Übereinstimmungen für ihre Abfrage zu finden. Diese ähneln den YouTube-Suchergebnissen mit relevanten Titeln.
Die Wertvektoren (V) stellen den tatsächlichen Inhalt jedes Tokens dar und ermöglichen es dem Modell, die Bedeutung eines relevanten Knotens in Bezug auf die Abfrage zu bestimmen und eine Ausgabe zu generieren. Man kann sich diese als Miniaturansichten und Videobeschreibungen vorstellen, die Ihnen bei der Entscheidung helfen, auf welches Video aus den Suchergebnissen Sie klicken möchten.
Hinweis: Bei der Selbstaufmerksamkeit stammen alle Qs, Ks und Vs aus derselben Sequenz, während dies bei der Kreuzaufmerksamkeit nicht der Fall ist.
Die Selbstaufmerksamkeitsformel sieht so aus: Attention(Q,K,V) = softmax((QK^T) / sqrt(d_k)V . Und hier ist die Vorgehensweise in Kürze:
Transformer wurden ursprünglich als einfache Alternative zu RNNs zur Kodierung von Sequenzen erfunden, doch in den letzten fünf Jahren wurden sie auf verschiedene Bereiche der KI-Forschung, einschließlich Computer Vision, angewendet und haben häufig modernste Modelle übertroffen.
Im Jahr 2018 wussten wir jedoch nicht, wie leistungsfähig sie sein könnten, wenn sie groß gemacht würden (mit Millionen von Parametern), mit ausreichend Rechenleistung ausgestattet und auf riesigen, vielfältigen und unbeschrifteten Textkorpora aus dem Web trainiert würden.
Den ersten Einblick in ihre Fähigkeiten gab der von OpenAI entwickelte Generative Pre-trained Transformer (GPT) , der über 117 Millionen Parameter verfügte und anhand unbeschrifteter Daten vorab trainiert wurde. Bei 9 von 12 NLP-Aufgaben übertraf es differenziert trainierte Modelle, obwohl diese Algorithmen speziell für die Aufgaben trainiert wurden, GPT jedoch nicht.
Dann kamen die GPT-2-Modelle (das größte Modell mit 1,5 Milliarden Parametern), denen viele andere Transformatoren folgten. Und im Jahr 2020 veröffentlichte OpenAI endlich GPT-3; seine größte Version hatte 175 Milliarden Parameter und seine Architektur war größtenteils die gleiche wie in GPT-2.
Es scheint, dass das Ziel von OpenAI darin bestand, herauszufinden, wie viel Leistung sie aus ihrem Modell herausholen können, indem sie es einfach größer machen und ihm mehr Text und Leistung verleihen. Die Ergebnisse waren erstaunlich.
Hinweis: 175 Milliarden Parameter gelten nach heutigen Maßstäben als recht klein.
GPT-3 ist in der Lage, Texte in verschiedenen Stilen und Formaten zu generieren, beispielsweise Romane, Gedichte, Handbücher, Skripte, Nachrichtenartikel, Pressemitteilungen, Bildunterschriften, Songtexte, E-Mails, Dialogantworten usw. Es kann Code schreiben, zusammenfassen, Informationen umformulieren, vereinfachen, kategorisieren und vieles mehr. Es würde buchstäblich einen ganzen weiteren Artikel erfordern, nur um alle seine Fähigkeiten aufzulisten. Und doch ist dieses Biest im Kern immer noch ein einfaches Autovervollständigungssystem.
Okay, wir haben also ein unglaublich leistungsfähiges Sprachmodell. Können wir es einfach als Chatbot verwenden? NEIN.
GPT-3 und seine Analoga sind immer noch Werkzeuge zur Sequenzvervollständigung und nichts weiter. Ohne die richtige Anleitung reden sie über das Thema, das sie aus Ihrer Frage aufgreifen, und erfinden falsche Artikel, Nachrichten, Romane usw., die vielleicht flüssig, zusammenhängend und grammatikalisch einwandfrei erscheinen, aber selten nützlich sind.
Um einen tatsächlich hilfreichen Chatbot zu erstellen, hat OpenAI eine umfangreiche Feinabstimmung von GPT-3 oder GPT 3.5, der aktualisierten Version des Modells, durchgeführt – wir wissen es noch nicht genau. Obwohl viele Details zu diesem Prozess noch nicht bekannt gegeben wurden, wissen wir, dass der Bot fast auf die gleiche Weise trainiert wurde wie InstructGPT , sein Schwestermodell. Und wir haben auch festgestellt, dass Letzteres in vielerlei Hinsicht Sparrow ähnelt, der noch nicht veröffentlichten Version eines „intelligenten Dialogagenten“ von DeepMind, die in diesem Artikel beschrieben wird, der etwas später erschien.
Da wir also wissen, dass alle transformatorbasierten Algorithmen praktisch die gleiche Architektur haben, können wir den Blogbeitrag von OpenAI lesen, ihn mit dem Sparrow-Artikel vergleichen und dann einige fundierte Vermutungen darüber anstellen, was unter der Haube von ChatGPT vor sich geht.
Der Feinabstimmungsprozess aus dem Artikel bestand aus drei Phasen:
Sammeln von Daten, die der KI zeigen, wie sich ein Assistent verhalten soll. Dieser Datensatz besteht aus Texten, auf die auf Fragen präzise und nützliche Antworten folgen. Glücklicherweise sind große vorab trainierte Sprachmodelle sehr probeneffizient, was bedeutet, dass der Prozess wahrscheinlich nicht so lange gedauert hat.
Probieren Sie das Modell aus, indem Sie es auf Abfragen reagieren lassen und mehrere Antworten auf dieselbe Frage generieren und anschließend jede Antwort von Menschen bewerten lassen. Und gleichzeitig wird ein Belohnungsmodell trainiert, um wünschenswerte Reaktionen zu erkennen.
Verwenden Sie die Proximal Policy Optimization von OpenAI, um den Klassifikator zu optimieren und sicherzustellen, dass die Antworten von ChatGPT gemäß der Richtlinie eine hohe Punktzahl erhalten.
Das Sparrow-Papier beschreibt eine ähnliche Methode, jedoch mit einigen zusätzlichen Schritten. Wie alle Dialogagenten von DeepMind ist Sparrow auf bestimmte handgefertigte Eingabeaufforderungen angewiesen, die als Eingaben dienen, die dem Modell immer von Programmierern gegeben werden und von Benutzern nicht gesehen werden können. ChatGPT orientiert sich wahrscheinlich auch an solchen „unsichtbaren“ Eingabeaufforderungen.
Um es zu einem effektiven Assistenten zu machen, wurden Sparrow Fragen gestellt und es generierte Antworten, die dann von Menschen auf der Grundlage der allgemeinen Prinzipien der Nützlichkeit und der ethischen Regeln bewertet wurden, die von DeepMind aufgestellt wurden (wie Höflichkeit und Genauigkeit). Es gab auch eine kontroverse Art von Training, bei der Menschen aktiv versuchten, Sparrow zum Scheitern zu bringen. Anschließend wurden zwei neuronale Netzklassifizierer für die Auswertung trainiert; eine, die die Antworten hinsichtlich ihrer Hilfsbereitschaft bewertet und eine, die feststellt, wie weit die Antworten von den DeepMind-Regeln abweichen.
ChatGPT weiß jetzt, dass es keine anstößigen Inhalte generieren darf, hat aber nach der Veröffentlichung gelegentlich unsensible Antworten produziert; Wir glauben, dass OpenAI möglicherweise ein weiteres Modell hinzugefügt hat, das speziell darauf ausgelegt ist, schädlichen Text nicht durchzulassen. Aber wir können es natürlich noch nicht genau wissen, und ChatGPT selbst verhält sich diesbezüglich zwielichtig.
Im Gegensatz zu ChatGPT wird Sparrow auch Beweise zur Untermauerung seiner Aussagen liefern können, da es Quellen zitiert und auf die Google-Suche zugreift. Um das Modell dazu zu befähigen, aktualisierten die Forscher seine ursprüngliche Eingabeaufforderung und führten zwei weitere Personas ein: die Suchabfrage und das Suchergebnis.
Hinweis: Das gleiche Prinzip wurde wahrscheinlich bei Bard angewendet, dem kürzlich von Google angekündigten Konkurrenten von ChatGPT.
Nach dem Training mit zwei Klassifikatoren unter Verwendung des ELI5-Datensatzes und der Antworten der vorherigen Iterationen von Sparrow ist das Modell in der Lage, mehrere genaue und gut recherchierte Antworten auf jede Frage zu generieren. Dem Benutzer wird immer die Antwort angezeigt, die beim Nützlichkeitsklassifikator am höchsten und beim Regelabweichungsklassifikator am niedrigsten abschneidet.
Bard, Googles Chatbo t basierend auf dem LaMDA-Sprachmodell, wurde am 6. Februar angekündigt. Es sorgt bereits für Aufsehen, es sind jedoch noch keine konkreten Details zu seiner Ausbildung bekannt geworden. Die Beta-Version von Sparrow wird voraussichtlich ebenfalls irgendwann im Jahr 2023 veröffentlicht. Es bleibt abzuwarten, ob einer dieser Bots annähernd so beliebt werden wird wie ChatGPT. Beide verfügen über einzigartige Funktionen, die ihnen das Potenzial geben, der neue Chatbot Nummer eins zu werden, aber wir glauben auch nicht, dass OpenAI aufhören wird, seinen Superstar-Chat-Assistenten zu aktualisieren und zu verbessern.
Vielleicht sehen wir ChatGPT bald mit neuen und noch besseren Funktionen. Es ist unmöglich vorherzusagen, welches Unternehmen hinsichtlich der Marktbeherrschung am Ende die Nase vorn haben wird. Aber wer auch immer den Wettbewerb gewinnt, wird die Grenzen dessen, was mit KI-Technologie als erreichbar angesehen wird, noch weiter verschieben, und es wird sicherlich spannend sein.