Goethe oder GPThe?


In «Wie funktioniert ChatGPT?» habe ich die Experimente von Andrej Karpathy mit Shakespeare-Texten wiedergegeben. Aber funktioniert das auch auf Deutsch? Zum Beispiel mit Goethe? Finden wir es heraus!

Die Quelle

Auf Project Gutenberg gibt es zur Zeit 40 Texte von Goethe in Deutsch. Von der Textstruktur könnte man sie beispielsweise in Gedichte, Theaterstücke und Fliesstext (Novellen, Tagebücher, Briefe, …) klassieren. Da wahrscheinlich bei den meisten auf das Stichwort «Goethe» zuerst die Assoziation «Faust» einfallen dürfte, habe ich mir die 13 Theaterstücke ausgesucht und den englischen (und nicht von Goethe stammenden) Gutenberg-Vor- und z.T. -Abspann entfernt (von Hand, da sie in fast jeder Datei anders sind). Die Werke sind (in der Reihenfolge ihres Eingangs auf gutenberg.org):

  1. Iphigenie auf Tauris
  2. Egmont
  3. Faust: Der Tragödie erster Teil
  4. Faust: Der Tragödie zweiter Teil
  5. Götz von Berlichingen mit der eisernen Hand: Ein Schauspiel
  6. Die Geschwister: Ein Schauspiel in einem Akt
  7. Die Mitschuldigen
  8. Prometheus
  9. Satyros oder Der vergötterte Waldteufel
  10. Die Laune des Verliebten
  11. Torquato Tasso
  12. Die natürliche Tochter
  13. Die Aufgeregten

Auch dann noch sind sie unterschiedlich formatiert:

Eine Vereinheitlichung der Struktur vorab hätte sich wohl positiv auf die Ergebnisse ausgewirkt; für dieses erste Experiment wollte ich den Aufwand aber nicht treiben.

Die Trainingsdaten

Karpathy fügt die Werke Shakespeares aneinander und verwendet die ersten 90% des resultierenden Textes als Trainingsdaten für das Modell, die letzten 10% zu seiner Validierung. (Scheinbar sind in den Shakespeare-Texten nur die Dialoge vorhanden, keine Handlungsanweisungen o.ä.)

Mit der Validierung (manchmal auch «Test») wird überprüft, wie ähnlich die aus dem Modell generierten Texte anderen Goethe-Texten sind, die das Modell garantiert noch nicht gesehen hat. Damit soll u.a. erreicht werden, dass das Modell nicht nur Goethe-Texte 1:1 wiedergeben kann, sondern Goethe-ähnliche Texte erzeugen kann. «Goethe-gleiche» Texte sind nicht gewünscht, denn sie liessen sich auch einfacher, z.B. mittels Copy+Paste, erzeugen.

Beim Zusammenfügen der Dateien in der alphabetischen Reihenfolge ihres Namens wären «Die Geschwister», «Die Mitschuldigen» und «Prometheus» (und der Schluss vom «Götz von Berlichingen») zu den Validierungsdaten geworden. Dies erschien mir wenig repräsentativ, weshalb ich eine andere Aufteilung als Karpathy wählte:

  • Die ersten und letzten 45% jeden Stücks wurden zu Trainingsdaten.
  • Die mittleren 10% (von 45 bis 55%) wurden zu Test- bzw. Validierungsdaten.

Von den insgesamt ca. 1.5 Megabyte Text waren damit 1.35 MB Trainingsdaten (581’749 GPT-2-Token) und 150 kB Validierungsdaten (70’154 GPT-2-Token).

Das Probetraining

Da mir für dieses Experiment keine leistungsfähige Grafikkarte zur Verfügung stand, nutzte ich für einen ersten Versuch die von Karpathy empfohlenen Einstellungen für Leute, die «nur einen billigen Computer» haben.

Nach wenigen Minuten war das Training beendet, bei einem «validation loss» (Qualitätsmass für die Ähnlichkeit der erzeugten Texte zu den Validierungsdaten; niedriger ist besser) von 3.4719. Karpathy erzielt mit Shakespeare und Grafikkarte (d.h. den Einstellungen für Leute, die einen richtigen Computer haben, und damit einem deutlich grösseren und komplexeren Modell) einen validation loss von 1.4967.

Ich rechnete also mit Texten, welche nicht viel mit Goethe gemeinsam hätten. Und wurde nicht enttäuscht:

Von dieses Glückt ihm ich mich zu würde,
Sind es soll’s in solchen Sorge dich verpfärtner wir lang.

Psyche.
Verlang mir verließt’s! Du nein Wieht,
Ich wärste zu einem jungen,
Dich wärehren sie nicht viel gehe.

MARGARETE.
Wenn wir hinabte,
Ich seinen Pfalt!

Ich kann sollt, oder Ihr seh,
Rug viel; was man mir gek;
So verschwind, so hab ich nichts zu hin,
Die gar zu wohl,
Doch lährt’ ich nicht überfreu.
Du mich, weißt er,
Da wärst du meinem Heiligen wahre
Dein angesten, ein jeder Götterndet.

nanoGPT versucht sich an Goethe (mit den Einstellungen für «Billigcomputer»)

Der Text beinhaltet relativ viele deutsche Wörter. Es klang vielversprechend, jetzt sollte ein richtiges Training her!

Die Hauptprobe

Ich spielte etwas mit den Modellparametern, bis ich eine Kombination hatte, die meinen Rechner über Nacht auslasten würde: Bis auf die Blockgrösse (und versehentlich eval_iters=50) waren schlussendlich alle Parameter gleich mit denen, die ein «richtiger Rechner» innert weniger Minuten trainieren könnte (bei mir sollte es, wie gesagt, die ganzen Nacht dauern). Die Blockgrösse sagt aus, wie weit entfernte Textzusammenhänge der «Attention»-Mechanismus von nanoGPT berücksichtigen kann, mehr ist besser. Der Standardwert liegt bei 256, ich wählte die Hälfte (128). Da ich den Text aber in Token (durchschnittlich ca. 2-3 Zeichen) verarbeitete und nicht in Zeichen, sollte dadurch kaum ein Nachteil entstehen.

Am nächsten Morgen sah ich erfreut Loss-Zahlen von 1.2 und 0.7 auf dem Bildschirm. Hurrah! Doch leider war der «eval loss» weiterhin bei 3.6616, also eigentlich sogar noch etwas schlechter als nach wenigen Minuten mit dem kleineren Modell.

Trotzdem, Wörter und Satzstrukturen wirken viel überzeugender:

Für bessere Resultate bräuchte es wahrscheinlich mehr (und vereinheitlichte) Trainingsdaten und ein grösseres Modell. Es ist eben noch kein Meister vom Himmel gefallen. (Und auch nicht aus den Rechnern der Cloud.)

Was lernen wir daraus?

GPT kann Goethe (noch?) nicht ersetzen. Aber wir sehen, dass man auf seinem «Billigrechner» zuhause mit relativ einfacher Software wie nanoGPT (2 Mal 300 Zeilen Python, Zeile für Zeile erklärt in einem Zwei-Stunden-Video) schon Texte produzieren lassen kann, die vor wenigen Jahren noch weltbewegend gewesen wären.

Gleichzeitig wachsen neue Modelle fast wie Pilze aus dem Boden. Einige vielversprechende Modelle sind auch Open Source, das heisst, ganz viele begeisterte und talentierte Leute können ihre Ideen daran ausprobieren. Damit werden uns die Sprachmodelle sicher noch einige Zeit begleiten und ihre Eigenschaften sich verbessern.

Bild von den Autoren des Papers «Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond» via deren GitHub-Repository.

Daten

Künstliche Intelligenz

  • Neuralink ist (noch) keine Schlagzeile wert
    Diese Woche haben einige kurze Tweets von Elon Musk hunderte oder gar tausende von Artikeln ausgelöst. Wieso?
  • Die düsteren Datenhintergründe der KI
    Generative Sprachmodelle wie beispielsweise ChatGPT erwecken den Eindruck, Neues zu erzeugen. Dabei kombinieren sie nur Muster neu. Wobei: Diese Kombinationen sind nicht immer wirklich neu. Mit ein bisschen Geschick kann man die Sprachmodelle dazu bringen, viel über ihre ansonsten geheimen Trainingsdaten auszuplappern. Diese Einblicke in die dunklen Hintergründe dieser Daten werden unseren Umgang mit Privatsphäre, … Weiterlesen: Die düsteren Datenhintergründe der KI
  • «Quasselquote» bei LLM-Sprachmodellen
    Neulich erwähnte jemand, dass man ChatGPT-Output bei Schülern häufig an der «Quasselquote» erkennen könne. Das ist eine Nebenwirkung der Funktionsweise dieser Sprachmodelle, aber natürlich noch kein Beweis. Etwas Hintergrund.
  • «KI» und «Vertrauen»: Passt das zusammen?
    Vor einigen Wochen hat Bruce Schneier einen Vortrag gehalten, bei dem er vor der der Vermischung und Fehlinterpretation des Begriffs «Vertrauen» gewarnt hat, ganz besonders beim Umgang mit dem, was heute von Firmen als «Künstliche Intelligenz» verkauft wird.
  • Wegweiser für generative KI-Tools
    Es gibt inzwischen eine grosse Anzahl generativer KI-Tools, nicht nur für den Unterricht. Hier ein Überblick über verschiedene Tool-Sammlungen.
  • KI-Vergiftung
    Eine aggressive Alternative zur Blockade von KI-Crawlern ist das «Vergiften» der dahinterliegenden KI-Modelle. Was bedeutet das?
  • Lehrerverband, ChatGPT und Datenschutz
    Der Dachverband der Lehrerinnen und Lehrer (LCH) sei besorgt, dass es in der Schweiz keine einheitliche Regelung gäbe, wie Lehrpersonen mit Daten ihrer Schützlinge umgehen sollen und ob sie dafür KI-Systeme nutzen dürften.
  • «Recht auf Vergessenwerden»: Ende durch KI?
    Das Recht auf Vergessenwerden soll Menschen erlauben, dass Daten über sie nicht unnötig lange digital gespeichert oder verfügbar gemacht werden. Doch KI vergisst nicht gerne. Wie passt das zusammen?
  • Webseiten für KI-Crawler sperren?
    Der grösste Teil der Texte, auf denen moderne KI-Sprachmodelle trainiert wurden, stammen von Webseiten. Wenn Sie eine haben, dann vermutlich auch von Ihrer. Was kann man da tun?
  • KI und die Arbeitswelt der Zukunft
    Michael Seemann hat in rund 100 sehr gut lesbaren Seiten das Wichtigste zusammengefasst, was wir über ChatGPT & Co wissen. Und ein paar Szenarien für die Arbeitswelt analysiert.
  • Todesstoss für ChatGPT & Co?
    Die New York Times verhandelt schon länger mit OpenAI über Urheberrechtsabgaben. Laut Berichten hat OpenAI für das Training von ChatGPT unautorisiert Materialien der New York Times genutzt. Das kann in mehrfacher Sicht teuer werden.
  • Sinkt OpenAI?
    Schlagzeilen machen die Runde, dass OpenAI, die Firma hinter ChatGPT, schon nächstes Jahr Konkurs gehen könnte. Ein Versuch einer Analyse.

Bleibe auf dem Laufenden!

Erhalte eine Mail bei jedem neuen Artikel von mir.

Ca. 1-2 Mails pro Monat, kein Spam.

Folge mir im Fediverse


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.


Webapps