Kategorien
Künstliche Intelligenz

Die Technik hinter ChatGPT

Lieber Charles, 

die KI von ChatGPT schlägt hohe Wellen. Auch ich habe den Eindruck, dass gerade wir die Geburt einer neuen revolutionären, disruptiven Technik miterleben. Deshalb ist es Zeit, dass ich Ihnen die zugrundeliegende Technologie erkläre. Sicher gibt es unglaublich viele Artikel im Netz, die das ebenfalls tun, aber ich will das nicht nur für Sie, sondern auch für mich tun, um mir beim Schreiben selbst darüber klar zu werden.

Also, hier ist meine Erklärung, die vor allem verständlich sein soll, hier zuerst der große Überblick: 

Die „Transformer“ genannten neuronalen Netzwerke wurden vermutlich zuerst mit dem Ziel entwickelt, gute Übersetzungen zu liefern, also Texte einer Quellsprache in eine andere Zielsprache zu transformieren. Interessant ist es, dass man bei Transformern die Länge des Ausgabetextes angeben kann. Weiter hat man auch die Möglichkeit, als Zielsprache dieselbe Sprache wie die Quellsprache zu wählen. Lässt man nun einen kürzeren Text in einen längeren transformieren, so erfindet das System einen längeren Text, basierend auf der Eingabe und den Daten, mit denen das Netzwerk vortrainiert wurde. Dieses wurde nämlich unter großem Aufwand mit vielen Texten aus dem Web und auch vielen Buchtexten vortrainiert. Daher kommt auch die Abkürzung GPT für „General Pretrained Transformer“. Man kann sich auch Texte zusammenfassen lassen, indem man einen langen Text hineingibt und die Länge des Ausgangstextes kleiner angibt.  

Es gibt eine Standardübung für den Umgang mit GPT-Transformern, die das verdeutlicht, die automatisierte Erstellung von Rezepten: das GPT-Netzwerk wurde bereits mit vielen Büchern und Texten aus dem Web vortrainiert, kann also grundsätzlich Sprache verarbeiten. Man kann es zum Profikoch ausbilden, indem man es zusätzlich mit Rezepten aus dem Internet füttert (z.B. von Chefkoch.de). Das Wissen von vielen Hobbyköchen hat es dann verinnerlicht. Die Rezepte haben immer die gleiche Struktur: Zuerst gibt es eine Liste an Zutaten, dann die Anweisung für die Zubereitung. Gibt man nun als Eingabetext lediglich eine Zutatenliste an, erfindet der Algorithmus einen Zubereitungstext hinzu. In diesem kommen dann auch die Zutaten vor, das Rezept wurde auf Basis des Wissens, welches in der Rezeptsammlung steckt, generiert, allerdings ist (meistens) neuartig. Hier kommt auch ein Zufallsmechanismus ins Spiel. Wenn man das Verfahren wiederholt, kommen dauernd neue Rezepte zum Vorschein. Auf diese Art kann man auch bei ChatGPT Anweisungen geben oder Fragen stellen. Die Ausgabe bezieht sich dann immer auf die Eingabe (Zutaten).

Hier noch ein paar Fachbegriffe: Das Anpassen des Netzwerks auf eine spezielles Wissensgebiet nennt man „Transfer Learning“. Es wird also ein vortrainiertes Netzwerk an eine gewisse Domäne (z.B, Kochen) angepasst. So muss man nicht immer von vorn anfangen mit dem Training und kann nachjustieren. ChatGPTs Fähigkeiten werden so immer weiter verfeinert. So wurden im Januar die mathematischen Fähigkeiten von ChatGPT verbessert. 

Die grundlegende Transformer genannte Architektur basiert auf dem „Encoder Decoder“-Modell, also Verschlüsselungs- und Entschlüsselungs-Modell, Wobei ChatGPT genaugenommen nur den Decoder-Teil der Technologie verwendet, im Gegensatz zu Überstzungs-KI-Modellen: Es geht allerdings, wie der Name vermuten lässt, nicht darum, Geheimbotschaften zu entschlüsseln, sondern darum, Texte zu generieren. Die Eingaben des Menschen werden vorher in eine für den Computer verständliche Form gebracht, also Zahlen (vgl. Unterwegs im Cybercamper, Kap. 1.3 Bleiwüste aus Bits). Diese werden dann vom Encoder wieder in Texte verwandelt, wobei hier immer ein Wort nach dem anderen generiert wird, unter Berücksichtigung der vorher erzeugten Wörter. 

Eine Frage wirst Du dir aber vermutlich noch stellen, lieber Charles: Kann man mit der simplen Umwandlung von Wörtern in Zahlen die Struktur eines Textes erfassen? – Nein! – Hier wird ein weiterer Trick angewendet: Es kommen die RNN-Netzwerke zum Einsatz (Recurrent Neural Networks). Diese nehmen ein Wort, kodieren dieses in eine Zahl, allerdings beeinflusst das vorherige Wort die Kodierung. So fließen die vorhergegangenen Teile des Textes  immer in die Kodierung des aktuellen Wortes mit ein. 

Ein weiterer Mechanismus ist dann bei der Dekodierung noch wichtig, er nennt sich „Attention“, also Aufmerksamkeit. Dieser Mechanismus kann die Einflussstärke der als Fragen eingegebenen Texte-Teile auf das jeweils zu generierende Wort ermitteln. Das ist auch bei Übersetzungen wichtig, da Sprachen einen unterschiedlichen Satzbau haben und man nicht Wort für Wort übersetzen kann. Hier noch ein Buchtipp für Spezialisten: „Natural Language Processing with Transformers“.

Kategorien
Künstliche Intelligenz

Mensch oder nicht?

Lieber Charles, nachdem neue KI-Werkzeuge zur Generierung von Content zur Verfügung stehen, werden sie auch eingesetzt. Sie können die Menschen produktiver machen und die kreative Arbeit auf eine neue Stufe heben. Allerdings muss man den Umgang mit den neuen Werkzeugen erst erlernen. Neue Suchmaschinen werden möglich, die mit natürlich formulierter Sprache kommunizieren können, ganz neu ist Perplexity.

Es kann aber auch viel Unsinn erschaffen werden, und die neuen Möglichkeiten werden sicher auch zur Erzeugung von destruktiven Inhalten genutzt: Fake News und Propaganda kann man damit in einem ganz anderen Ausmaß erzeugen lassen. Die Modelle zur Erzeugung von Texten können dabei schlüssige Argumente für eine Sache liefern, aber auch genausogut den entgegengesetzten Standpunkt einnehmen. Es drängt sich die Frage auf, ob es einen Weg gibt, herauszufinden, ob der Text von einem Menschen oder einem Computerprogramm stammt. 

Auf den ersten Blick wirken die Texte sehr natürlich und als Lesende können wir uns hier nicht sicher sein. Der Turing-Test lässt grüßen (vgl. „Unterwegs im Cyber-Camper“ S. 424). Aber könnte denn ein Computerprogramm herausfinden, ob der Text generiert wurde oder nicht? 

Tatsächlich gibt es seit kurzer Zeit Programme, die das offensichtlich können, beispielsweise das frei zugängliche, nicht kommerzielle Tool GPT-2 Output Detector Demo. Ein Princeton-Student hat über Weihnachten eine Webseite aufgesetzt, die es nicht-Fachleuten erlaubt, Texte über ein Eingabefeld abzuschicken: GPTZero.

 Das Programm entscheidet dann, ob der Text vom Menschen stammt oder nicht. Die Nachfrage ist riesig, und so ist die Webseite meistens überlastet. Nun frage ich mich, lieber Charles, wie sicher diese Einschätzung ist. Zum Ergebnis wird eine Wahrscheinlichkeit angegeben, wie plausibel diese ist (Likelihood). 

Das ist schon mal sehr interessant, und das Programm kann also nicht mit absoluter Sicherheit eine Einschätzung geben. Es funktioniert auch offensichtlich besser, je länger der Text ist. Klar, je mehr Daten, desto mehr verräterische Muster sind eventuell vorhanden. 

Aber nichts würde einen Menschen daran hindern, auch einen Text zu erzeugen, der ähnliche Muster wie generierte Texte aufweist. So könnte es zu fatalen Fehleinschätzungen kommen, beispielsweise, wenn eine akademische Arbeit (oder Teile davon) fälschlicherweise als automatisch generiert eingeschätzt wird. Überhaupt muss man sich der Frage stellen, ob das nicht legitim ist und ob man sich bei trivialen Textpassagen nicht einfach dieses neuen Werkzeuges bedienen kann.  

Aber welche unsichtbaren Merkmale sind nun im generierten Text vorhanden, die Menschen offensichtlich nicht erkennen können und wie kann man diese finden? Ein Problem ist, dass man den Quellcode und damit die Funktionsweise von GPT-3, dem Algorithmus von OpenAI, bisher nicht einsehen kann. Aber die Vorgänger-Version, GPT-2, ist Open Source, also für alle Programmierer frei zugänglich. So basiert GPTZero und andere ähnliche Programme auf dieser Software. Aber anscheinend kann man damit genauso gut Texte, die von GPT-3 (wie von ChatGPT) erzeugt wurden, erkennen. 

Lieber Charles, das wichtigste Merkmal, nach dem der Entlarvungs-Algorithmus sucht, ist die Perplexität, also „Verblüffung“. Das bedeutet, wenn ein neuer Satz vom Computer auch so ähnlich entworfen worden wäre, tendiert er zu der Einschätzung, dass er automatisch generiert wurde. Wenn hingegen ein Satz kommt, der den Test-Algorithmus perplex macht, ist er eher vom Menschen erzeugt. Ist das nicht verblüffend, lieber Charles?

Warum der Algorithmus von einem Satz verblüfft ist, kann man dabei nicht genau sagen, da der Algorithmus  eine Black Box ist, wie alle neuronalen Netze, die hier ebenfalls die Grundlage sind. Lieber Charles, ich habe selbst ein Programm geschrieben, das die Perplexität ermitteln kann, ähnlich GPTZero. Hier siehst Du zwei Diagramme, die mein Programm erzeugt hat und die zeigen, wie hoch die Perplexität für die einzelnen Sätze ist. 

Ich habe zum Test zwei Texte verwendet, einen selbst geschriebenen und einen von ChatGPT generierten (ähnlich der Geschichte aus dem vorherigen Blog). Beide Texte sind exakt gleich lang. Hier die Diagramme:

Bewertung des von ChatGPT erzeugten Textes (Ø=33).
Bewertung meines selbst geschriebenen Textes (Ø=80).

Man kann gut erkennen, dass die durchschnittliche Perplexität bei dem selbst geschriebenen Text viel höher ist, nämlich 80. Beim Text con ChatGPT ist sie nur 33. Somit scheint es möglich zu sein, herauszubekommen, ob ein Text computergeneriert ist oder nicht. Ich bin gespannt, ob das so bleibt oder ob zukünftige Sprachmodelle nicht noch besser werden, im Punkt Perplexität, und uns noch mehr verblüffen.