AI

Wie funktioniert ChatGPT?

4 Min. Lesezeit
Freitag, 03. Februar 2023

ChatGPT oder wie ich dieses Modell gerne nenne „Chatty“ 😉, ist derzeit in aller Munde. Ich habe Chatty gebeten, dass es sich mal bei mir vorstellt. 

230203_ChatGPT_Whois

Ich finde, dass Chatty sich perfekt selbst vorgestellt hat. Dennoch nehme ich mir die Zeit, selbst ein paar Worte dazu zu schreiben und die Hintergründe noch etwas genauer zu erklären.

ChatGPT wurde von OpenAI entwickelt und ist im Kern ein generatives Modell für Text, genauer gesagt GPT-3 (Generative Pre-trained Transformer 3). Diese Modelle generieren Texte, indem sie den nächsten Token vorhersagen. Ein Token kann beispielsweise ein Wort, ein Satzzeichen oder eine Sequenz von Buchstaben sein. Der Satz „Hi my name is Kristina. What is your name?” wird in eine Sequenz aus Tokens mit den IDs [17250, 616, 1438, 318, 14912, 1437, 13, 1867, 318, 534, 1438, 30] zerlegt. An diesem Beispiel wird einerseits ersichtlich, dass „is“ und „name“ die gleichen Tokens zugewiesen (1438, 318) bekommen und dass mein Name „Kristina“ in zwei Tokens zerlegt wird (14912, 1437). Gerne auch zum selber Ausprobieren: https://platform.openai.com/tokenizer.

Für das Generieren eines Textes wird dem Modell nun zuerst eine Sequenz von Input Tokens gefüttert und das Modell gibt den wahrscheinlichsten nächsten Token aus, gegeben den Tokens, die das Modell als Input erhalten hat. Wenn wir beispielsweise den Text „Paris is the capital of“ füttern, wird der Token für „France“ die höchste Wahrscheinlichkeit erhalten und somit auch als nächster Token vorhergesagt. Andere Sätze können jedoch weniger eindeutig sein. So werden mehrere Tokens auf den Input „My pet is a“ möglich sein, da dieser Satz grundsätzlich mehrere Ausgänge zulässt.

Somit ist das Generieren von Texten im Grunde das Ermitteln von Wahrscheinlichkeiten von Tokens gegeben einer zuvor gesehenen Sequenz von Input Tokens. Diese Wahrscheinlichkeit wird bewertet anhand der zuvor verwendeten Trainingsdaten. In dem Fall von GPT-3 wurden unter anderem Texte von Büchern, Wikipedia und verschiedenen weiteren Internet Sourcen verwendet. Und hier verbirgt sich auch eine Schwäche von GPT-3: GPT-3 bewertet nicht direkt, ob die generierte Antwort mit der Nutzerabsicht übereinstimmt, ob diese wirklich der Wahrheit entspricht oder gar in irgendeiner Art Schaden hervorrufen kann. Man spricht daher davon, dass das Modell „misaligned“ ist.

Genau hier hat OpenAI angesetzt, um ihr bisheriges Modell GPT-3 zu verbessern. Die Basis bleibt zwar weiterhin GPT-3, jedoch wird dem Modell in einem ersten Verbesserungsschritt noch ein Feinschliff verpasst (im Machine Learning spricht man von „fine-tuning“). Hierfür wurden weitere Trainingsdaten gesammelt, die Beispiele beinhalten, wie auf eine Frage geantwortet werden sollte. Fine-tuning bedeutet daher, dass die Wahrscheinlichkeiten, die GPT-3 anhand von Texten gelernt hat, nun dahingehend angepasst werden, dass GPT-3 tatsächlich gute (i.e. hilfreiche, wahrheitsgemäße und unschädliche[1]) Antworten gibt.

In einem zweiten Verbesserungsschritt wird ein „reward“ Model trainiert. Dieses Belohnungsmodell dient dazu, Antworten (Outputs) zu bewerten. Hierfür wird ein neuer Trainingsdatensatz generiert, der widerspiegelt, welche Outputs ein Mensch als gut erachtet. Mittels „reinforcement learning[2] wird dann das schon verbesserte Modell noch weiter verbessert (i.e. die Wahrscheinlichkeiten für die Tokens werden weiter angepasst).

Wieviel diese Methoden tatsächliche zur Verbesserung von GPT-3 beigetragen haben, wurde bei der Entwicklung von InstructGPT[3] evaluiert (Vorgängermodell von ChatGPT, das mit den gleichen Methoden, jedoch mit einem leicht abgeänderten Datensammelverfahren trainiert wurde). Leider steht dieser Vergleich nicht direkt für ChatGPT zur Verfügung, sondern nur für InstructGPT. Das Resümee zeigt, dass InstructGPT deutlich besser ist als GPT-3 in Bezug auf wahrheitsgemäße und informative Aussagen. Des Weiteren konnten leichte Verbesserungen in Bezug auf toxischen Aussagen festgestellt werden, jedoch keine Verbesserung in Bezug auf Bias.

Die Vergleiche, die bei der Entwicklung von InstructGPT präsentiert wurden, wurden sehr sorgfältig durchgeführt und so gut wie möglich auch objektiviert. Ich selbst habe mich während meiner Zeit an der Uni mit der Bewertbarkeit von generativen Modellen auseinandergesetzt. Eine objektive und in Zahlen messbare Antwort zu liefern, ob ein generatives Modell „gut“ oder „schlecht“ ist, ist sehr schwierig, da viele Facetten betrachtet und gewichtet werden müssen. Diese Betrachtung und Gewichtung können von Person zu Person unterschiedlich sein.

Die Verbesserung von GPT-3 basiert auf einem Belohnungssystem, das menschliche Bewertungen widerspiegelt. Die Autoren gehen sehr detailliert darauf ein, wie die Trainingsdaten erhoben wurden und die Subjektivität, die in der Natur einer menschlichen Bewertung liegt. Das verwendete Belohnungssystem ist somit nicht repräsentativ für alle (zukünftigen) Nutzer von ChatGPT. Die Autoren stellen daher auch eindeutig klar, dass „Our models are neither fully aligned nor fully safe; they still generate toxic or biased outputs, make up facts, and generate sexual and violent content without explicit prompting.“

Abschließend möchte ich daher sagen, dass ich den Hype um ChatGPT eindeutig verstehen kann, denn auch ich könnte Stunden damit verbringen, mich mit Chatty zu unterhalten. User sollten sich jedoch darüber im Klaren sein, dass die Antworten von ChatGPT nur eine Sequenz von sehr wahrscheinlichen Wörtern ist. Nicht mehr und nicht weniger. Für mich ist ChatGPT ein Sparring Partner, der mir gute Inputs liefern und mein Leben erleichtern kann, jedoch keinesfalls unfehlbar ist.

 

---

[1] Was eine “gute” Antwort ist und ob diese wirklich „hilfreich“ und „unschädlich“ ist, ist sehr subjektiv. Die Forscher von OpenAI, haben dazu ihre Einschätzung genauer im Paper unter Punkt 3.6 Evaluation „Training language models to follow instructions with human feedback“ beschrieben.

[2] Hier wird ein Algorithmus namens “Proximal Policy Optimization (PPO)“ verwendet. Für sehr interessierte Leser hier das Arxiv Paper „Proximal Policy Optimization Algorithms“. Für alle, die weniger lesen wollen und sich dafür mehr lustige AI Figuren, die einem Ball nachlaufen, ansehen möchten, empfehle ich diesen Blog von OpenAI 😊

[3] Siehe ebenfalls „Training language models to follow instructions with human feedback“.