Warum der KI-Textgenerator ChatGPT so fasziniert

Seite 3: Hintergrund: Funktionsweise und Training

Inhaltsverzeichnis

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Google Ireland Limited) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

ChatGPT baut auf dem Sprachmodell GPT-3 auf, das OpenAI bereits 2020 entwickelt hat. GPT-3 produziert Texte in nahezu fehlerfreiem Englisch und in jedem beliebigen Stil. Das neuronale Netz hat das mithilfe von terabyteweise Text aus dem Internet im sogenannten Pretraining gelernt – daher das P im Namen. Dabei hat es gelernt, möglichst ähnlich wie in den Trainingsdaten weiterzuschreiben (Generative, das G aus dem Namen).

GPT-3 ist ein Transformer-Netzwerk (das T aus dem Namen), eine kurz vorher entwickelte Netzwerkstruktur mit einer entscheidenden neuen Idee: Transformer nutzen auf jeder ihrer Schichten einen Aufmerksamkeitsmechanismus. Diesen Mechanismus kann man sich als ein minimalistisches neuronales Netz vorstellen, das lernt, was gerade nicht zum Thema gehört. Durch diesen Mechanismus lernen Transformer, sich auf bestimmte Daten zu konzentrieren. In einem gesonderten Artikel haben wir Transformer im Detail erklärt. Der Mechanismus ermöglicht zudem, neuronale Netze in nie da gewesener Größe zu trainieren. GPT-3 hat 175 Milliarden Parameter – viel Platz für Sprach- und Weltwissen.

GPT-3 kann Texte erzeugen, die wirken, als habe es einfach nur Vorhandenes aus dem Internet abgeschrieben oder zusammenkopiert. Versucht man, dem Sprachmodell wie einem menschlichen Gegenüber Fragen zu stellen, liefert es oft inhaltsleere oder falsche Antworten und manchmal auch Gegenfragen. An den Sprachfertigkeiten von GPT-3 zweifelt niemand, aber sie sind also nicht gut genug auf den Menschen "ausgerichtet", um bestimmte Fragen zufriedenstellend zu beantworten. OpenAI nennt das Problem "alignment".

Beim Training neuronaler Netze können zwei Probleme auftreten. Entweder springt der Lernalgorithmus hin und her, weil die Trainingsdaten stets große Veränderungen an den Parametern bewirken. Das passiert, wenn viel Rauschen im Datensatz steckt und das Netz keine Struktur darin erkennen kann. Oder die Daten geben keine eindeutige Richtung vor (zu kleine Gradienten), sodass der Algorithmus kaum noch etwas an den Parametern ändert. OpenAI hatte bei GPT-3 das zweite Problem. Wie also könnte man Gradienten berechnen, die genau dann groß sind, wenn das Sprachmodell gekonnt an der Frage vorbeischreibt?

ChatGPT weist auf seiner Startseite auf einige seiner Limitierungen hin, darunter sein eingeschränktes Wissen über die Welt und Ereignisse nach 2021.

Für die Antwort bedienten sich die Forscher an einer Idee aus dem Reinforcement Learning. Dabei trainiert man einen Agenten, der in einer Spielumgebung Dinge tut und hin und wieder belohnt oder bestraft wird. Forscher in dieser Disziplin testen ihre KIs typischerweise mit pixeligen Arcade-Spielen aus den 80ern. Das Problem dabei: Punkte gibt es erst nach einer ganzen Reihe von Spielzügen und die KI muss beim Training selbst herausfinden, welcher Spielzug letztlich für den Punktgewinn wichtig war, um zu lernen, den dann häufiger zu machen. Die übliche Lösung besteht darin, ein kleines neuronales Netz zu trainieren, das vorhersagt, ob es demnächst Punkte gibt. Dessen Einschätzung nutzt dann der Lernalgorithmus für den Agenten und schon bekommt man ein Lernsignal für jeden Spielzug.

Für Pong und Breakout braucht man nicht viel mehr, weil die Spiele oft Punkte vergeben und die KI nicht so viele Möglichkeiten hat. Will man aber einem Strichmännchen in einer Physiksimulation einen Salto beibringen, gibt es viel zu viele Möglichkeiten, eine Vielzahl einzelner Gelenke zu bewegen. Die Wahrscheinlichkeit, den richtigen Bewegungsablauf zufällig zu finden, ist praktisch null. Schaut ein Mensch dem verdreht auf dem Boden liegenden Strichmännchen bei seinen Zuckungen zu, sieht er sofort, dass das so nichts wird.

Einfache Welt: Das Strichmännchen mit nur drei Gelenken kann sich nur in x- und z-Richtung bewegen. Trotzdem ist das Problem, einen Salto zu schlagen, für eine KI ohne menschlichen Lehrer zu schwer, um in erträglicher Zeit eine Lösung zu finden. Geben Menschen Feedback, reichen wenige hundert Versuche.

(Bild: OpenAI, https://openai.com/blog/deep-reinforcement-learning-from-human-preferences/)

Genau diese Expertise hat sich OpenAI zunutze gemacht: Sie ließen Menschen je zwei Bewegungsversuche der Strichmännchen beurteilen und verwendeten diese Information als Trainingsdaten für ein neuronales Netz, das vorhersagt, was ein Mensch sagen würde. Mit dem Netz trainierte OpenAI den Reinforcement-Learning-Agenten, ließ den wieder etwas gekonnter zucken und die Menschen wieder entscheiden, und so weiter. Nach ein paar hundert Durchläufen dieser Art hatte das Strichmännchen einen passablen Salto gelernt. Diese Idee verbunden mit einer etwas trickreicher gestalteten Loss-Funktion ("Objective Function" beim Reinforcement Learning) nennt OpenAI "Proximal Policy Optimization", kurz PPO.

Die Loss-Funktion legt fest, wann der Lernalgorithmus ein neuronales Netz belohnt oder bestraft. Für ein effektives Training muss die Funktion genügend Rückmeldung geben, um bei jedem Lernschritt einen spürbaren Fortschritt zu erzielen, aber nicht so extrem, dass das Netz sein gesamtes bisheriges Wissen über Bord wirft. In den letzten Jahren waren die meisten Fortschritte bei neuronalen Netzen auf bessere Loss-Funktionen und nicht auf eine andere Netzstruktur zurückzuführen.

Die Idee, dass Menschen die Daten für eine trainierte Loss-Funktion erzeugen, funktioniert nicht nur mit Arcade-Spielen und Physiksimulationen, sondern auch mit Frage-Antwort-Spielen: OpenAI ließ also GPT-3 Fragen mehrfach unterschiedlich beantworten und bezahlte Leute dafür, die verschiedenen Antworten nach ihrer Nützlichkeit zu sortieren. Mit diesem im Vergleich zum Pretraining viel zu kleinen Datensatz trainierten sie ein kleines Netz und benutzten es mit PPO, um GPT-3 zu optimieren. Damit es dabei seine früheren Fähigkeiten nicht ganz vergaß, streuten sie immer wieder Trainingsläufe nach dem alten Schema ein. PPO lieferte wieder deutlich größere Gradienten, und das Sprachmodell wurde auch ohne zusätzliche Neuronen besser. OpenAI nennt das nachtrainierte GPT-3 für besseres Alignment InstructGPT, weil es besser den Instruktionen aus den Anweisungen folgt.

Im letzten Schritt entstand aus InstructGPT schließlich ChatGPT, indem OpenAI den Kontext der bisherigen Konversation in das Sprachmodell integrierte. Dazu gehören sowohl die Fragen als auch die eigenen Antworten. Während man bei GPT-3 auf 2048 Tokens (also rund 8000 Zeichen bei englischen Texten) begrenzt war, berücksichtigt ChatGPT beliebig viel Text aus dem Chat.(pmk@ct.de)[Link auf :]

(jo)