LLM Grundlagen, Teil 1: Über N-Gramme

(12 Kommentare.)

Ich will in einer Reihe von Blogeinträgen mir selbst erklären, wie das alles funktioniert, und das dann natürlich auch vorzeigen. Vermutlich werden das in relativ rascher Folge drei Blogeinträge mit den einfachen Inhalten, die ich zu verstehen glaube, und dann wird eine lange Pause sein, weil dann die eigentlich spannenden Dinge kommen, die ich noch nicht verstehe.

Mein Wissen habe ich letztlich aus ein paar Papier-Aufsätzen und vielen Quellen im Web. Die Quellen im Web sind mir leider meist entweder zu einfach, indem sie die schwierigen Punkte umgehen, oder zu technisch, indem sie sie nicht umgehen. Ich hätte die schwierigen Schritte gerne als Black Box erklärt, bei denen ich nicht wissen will, wie das genau funktioniert, aber genau wissen will, was der Input und der Output bei diesen Schritten ist. Wir werden sehen.

1. Begriffsklärungen

  • ChatGPT ist ein Chatbot einer konkreten Firma, die auf ein konkretes LLM zugreift.
  • LLM heißt Large Language Model und ist das Ding, das hinter dem Chatbot steckt.
  • Es gibt LLMs von verschiedenen Firmen, und verschiedene Chatbots, und sprachlich geht das oft durcheinanderm hängt ja auch zusammen. Soll sein, soll sein.

2. Worum es eigentlich geht

Tatsächlich geht es nur darum, vorherzusagen, wie ein angefangener Text weitergeht. Das kann man sich so vorstellen wie hier, wo nach und nach ein Wort an das andere gefügt wird:

Die meisten Satzzeichen fehlen bei diesem einfachen Modell absichtlich. Dass der Text nur mäßig Sinn ergibt, liegt daran, dass ein einfaches Modell benutzt wird, zu dem ich später mehr schreiben werde. Für die Einfachheit des Modells ist das Ergebnis übrigens gar nicht schlecht.

Reicht das schon um zu behaupten, dass ChatGPT Sprache versteht? Das ist eine Frage für später mal. Ich sage: nein, aber man kann das auch anders sehen.

Man kann sich die Entscheidung für das jeweils nächste Wort auch so vorstellen:

„(Wie) Versteht ChatGPT Sprache?“
CC BY NC SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/
Dr. Nicolas Ruh, Neue Kantonsschule Aarau, nicolas.ruh@nksa.ch

Außerdem gibt es hier noch einen Parameter, der Temperatur heißt. Bei niedriger Temperatur kommt stets das Wahrscheinlichste heraus. Das führt dazu, dass im Beispiel oben bei einem Anfang von „Die Katze frisst“ immer der Satz „Die Katze frisst Mäuse.“ (mit Punkt am Ende) produziert wird. Bei höherer Temperatur wird auch mal davon abgewichen, so dass Sätze wie „Die Katze frisst keine Elefanten“ (noch ohne Punkt) entstehen können.

Ist das wirklich so einfach? Ja und nein. Ja, weil ich denke, dass das wirklich so einfach ist; nein, weil der Knackpunkt natürlich der ist, wie diese Wahrscheinlichkeiten entstehen. Und das kann komplizierter werden. (Daneben gibt es Verfeinerungen und Verbesserungen, aber das, was so überrascht und fasziniert, das steckt bereits alles in dieser einfachen Vorhersage.)

3. Eine einfache Lösung: N-Gramme

Bis vielleicht 2010 herum experimentierte man, so las ich, gerne mit N-Grammen, bevor die durch moderne Verfahren abgelöst wurden. Dennoch scheint es mir sinnvoll, mit diesen N-Grammen zu beginnen, auch weil sie immer wieder als Beispiel und Erklärung herangezogen werden.

Im Prinzip geht es dabei darum, Wahrscheinlichkeiten von Wort-Kombinationen zu berechnen und zu speichern. Ein Bigramm ist eine Folge von zwei Wörtern, ein Trigramm eine Folge von drei Wörtern, und allgemein ein N-Gramm eine Folge von n Wörtern.

Man geht dabei so vor, dass man eine Sammlung von Texten als Materialbasis nimmt und die Häufigkeit von verschiedenen N-Grammen darin berechnet. Man zählt, wie häufig diese Paare sind:

  • ein Hund / ein Klavier / ein großes / ein. / ein,

Alle diese Paare könnten in deutschen Texten auftauchen, das letzte zum Beispiel in Sätzen wie „Schalten Sie den Rechner aus und ein, um zu sehen, ob er dann besser funktioniert.“ Wenn man dann wissen will, wie es nach dem Wort „ein“ weitergeht, schaut man sich an, welches Bigramm mit „ein“ als ersten Element am häufigsten auftaucht.

Das kann man erweitern auf Trigramme:

  • einmal ein Hund / einmal ein und / einmal ein oder / einmal ein. / einmal ein,

Auch für diese Trigramme gibt es Häufigkeiten und damit Wahrscheinlichkeiten. Wenn man dann die ersten beiden Teile davon hat, also „einmal ein“, dann kann das System entscheiden, welches Wort am wahrscheinlichsten darauf folgt.

Das kann man erweitern auf 5-Gramme, wie hier:

  • Es war einmal ein kleines / Es war einmal ein junger / Es war einmal ein Klavier

Dann kann das System entscheiden, was auf das 4-Gramm „Es war einmal ein“ am wahrscheinlichsten folgt, und so Texte erzeugen.

Nach diesem Prinzip funktioniert https://www.soekia.ch/GPT/ und man kann das da wirklich schön ausprobieren. Machen wir ein Experiment:

  1. Das System wird mit 13 Märchenanfängen trainiert.
  2. Das sind zusammen etwa 19.000 Wörter, was nicht viel ist.
  3. Die Texte enthalten etwa 3.100 verschiedene Wörter (Großschreibung und Satzzeichen ignoriert).
  4. Für diese Wörter wird die Häufigkeit von N-Grammen berechnet.

Wenn ich – bei leicht erhöhter Temperatur – nur Bigramme für die Erzeugung von Texten benutze, kommt das heraus:

Das ist nicht besonders gut. Wenn ich Bi-, Tri- und 4-Gramme heranziehe, wird das schon viel besser:

(Die Farbe bedeuten übrigens, dass die entsprechende Wortfolge aus einem bestimmten Einzeltext stammt.)

Wir halten mal fest: Es gibt bessere Ergebnisse, wenn nicht nur Bigramme, sondern auch höhere N-Gramme berücksichtigt werden.

Das Modell ist überraschend brauchbar, und kann auch mit verschiedenen Tricks verfeinert werden. Dennoch ist das eine veraltete Lösung. Es gibt vor allem zwei Probleme beim Arbeiten mit N-Grammen.

Problem 1: Wenn es 50.000 verschiedene Wörter gibt, gibt es 50.0002 Bigramme, 125.000.000.000.000 Trigramme und 6.250.000.000.000.000.000 4-Gramme. Zugegeben, nicht alle Kombinationen werden in den Trainingstexten auftauchen, dennoch sind das einfach zu viele. Problem 2: Bei N-Grammen, die in den Trainingstexten überhaupt nicht auftauchen, können auch keine Wahrscheinlichkeiten gespeichert werden, so dass die nie in einem generierten Text verarbeitet werden.

(Solche N-Gramme kann man übrigens nicht nur auf Wortebene erstellen, sondern auch auf Zeichen-, also Buchstabenebene. Damit kommt man auch nicht weiter, aber man auch da schön experimentieren. Man kann auch mit eine Ebene zwischen Wörtern und Buchstaben arbeiten, und darum geht es im nächsten Beitrag.)

4. Links und Ausprobieren

  • SoekiaGPT, wo man einen Korpus eigener Texte hochladen oder mit den verschiedenen bereits vorhandenen arbeiten kann: https://www.soekia.ch/GPT/
  • Weil dort N-Gramme auftauchen: In verschiedenen Teil-Korpora von Google Books nach N-Grammen (hier: Wortfolgen) suchen und schauen, wie sich die Häufigkeit im Lauf der Jahrzehnte ändert: https://books.google.com/ngrams/

Fortsetzung folgt.


Beitrag veröffentlicht am

in

Kommentare: 12

Schlagwörter:

Kommentare

12 Antworten zu „LLM Grundlagen, Teil 1: Über N-Gramme“

  1. Thomas

    sehr schön 👍

  2. Sehr interessant, bin gespannt auf die nächsten Posts

  3. > will […] mir selbst erklären, wie das alles funktioniert

    … und wir Blog-Leser profitieren davon – wunderbar :-)
    Bin schon gespannt auf die Fortsetzung. Danke!

  4. Sehr vorbildlich einfach, besonders durch die Textbeispiele.
    Ich warte jetzt auf die Stelle, wo ich vermutlich die erste Frage stelle und wo mein 12-jähriger Sohn mir sagte: „Das habe ich 5 Schritte vorher erklärt [höflicherweise unausgesprochen: Da hättest du fragen müssen, warum hast du das nicht?“] und dann seinen Versuch aufgab, mir die neue Computersprache zu erklären. Denn er wusste, dass bei der kurzschrittigen Erklärung, die er sicherheitshalber gewählt hatte, damit ich folgen könnte, etwa 30 Schritte zur Klärung des Vorverständnisses folgen müssten, bevor die eigentlichen Besonderheiten dieser Sprache angesprochen werden könnten.

    Später hat er mir in 20 Minuten seine Dissertation erklärt und das so, indem er z.B. pauschal auf die vollständige Induktion hinwies, was mir deutlich machte, dass er „ein wenig“ vereinfacht hatte.
    Herr Rau kündigt (oder droht?) nun an, dass erklären will, was er verstanden hat, indem er überall wo nötig eine „black box“ einsetzt.
    Danke!

  5. […] Und Herr Rau erklärt uns LLMs. […]

  6. (Es freut mich sehr, wenn euch das gefällt!)

  7. Florian

    Popcorn hol und warten auf Teil 2 :-)

  8. […] LLM Grundlagen, Teil 1: Über N-Gramme […]

  9. Darf ich die Grafiken – und hier besonders das animierte GIF – für einen internen Vortrag verwenden?

    Genau so etwas brauche ich nämlich, um die Funktionsweise von LLMs zu erläutern.

  10. Aber klar, gerne. Das animierte gif kann ich auch als das urprüngliche mp4 bieten, aus dem ich es erzeugt habe.

  11. Vielen Dank! Das mp4 nehme ich auch gerne. Ich schicke Dir mal eine E-Mail.

  12. […] akzep­tie­ren, wenn es zu zufäl­li­gen Aus­ga­ben kommt. Bei Sprach­mo­del­len ist das prin­zip­be­dingt so und wir akzep­tie­ren es. Man kann zwar in Gren­zen Aus­ga­ben beein­flus­sen, aber […]

Schreibe einen Kommentar

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