Der Aufmerksamkeits-Algorithmus
In diesem Arbeitspapier behandeln wir, was passiert, wenn man in einen Chatbot wie ChatGPT von OpenAI, Gemini von Google oder Chinas Ernie eine Anfrage eingibt.
Transformer-Modelle
Bei den genannten Programmen handelt es sich um bereits trainierte Large Language Models. Bevor wir uns ansehen, was mit unserer Anfrage geschieht, vergewissern wir uns noch einmal kurz, womit wir es bei einem solchen Sprachmodell zu tun haben. Dahinter steckt ein Neuronales Netz der modernsten Kategorie, ein sog. Transformer-Modell. Es hat in seinem Training einen riesigen Wortschatz erworben, der mathematisch gut aufbereitet vorliegt. Das große Geheimnis des Systems besteht darin, die Wahrscheinlichkeitsverteilungen für das gemeinsame Vorkommen von Wörtern in beliebigen Wortsequenzen zu kennen. Diese Kenntnis hat es durch sein Training auf der Basis der riesengroßen Datenmengen gewonnen. Mit Zugriff auf diese Wahrscheinlichkeiten können die Programme dann aufgrund eines speziellen Trainings z.B.
- Fragen der Benutzerinnen und Benutzer beantworten,
- Texte zusammenfassen,
- aufgrund von Stichworten eigene Texte verfassen oder
- Texte in andere Sprachen übersetzen.
Das Sprachmodell verfügt über eine Encoder-Decoder-Architektur. Unsere Eingabe wird vom Encoder in Token umgewandelt (die auf ihre Wortstämme reduzierten Wörter der Eingabe). Jeden Token verwandelt der Encoder jetzt in einen Embedding-Vektor, dessen Länge (oder besser Dimension) vom verwendeten Modell abhängt. Jeder dieser Vektoren, oft als verborgener Zustand oder Context-Vektor bezeichnet, wird in einer eigenen Encoderschicht gestapelt. Zusätzlich wird festgehalten, an welcher Stelle sich der gerade behandelte Token befindet. Mit diesem Positions-Embedding zusammen wird das Token-Embedding gemeinsam gespeichert.
Aufgabe der zweiten Komponente, des Decoders, besteht darin, jetzt Schritt für Schritt die passende Ausgabe-Sequenz zu erzeugen. Nach jedem Encoding-Schritt wird die komplette bisher eingesammelte Eingabe des Encoders in eine Decoder-Schicht eingespeist. Aufgrund seiner Kenntnisse der Verteilungswahrscheinlichkeiten für das gemeinsame Vorkommen eines Token mit anderen Token sagt der Decoder jetzt den wahrscheinlichsten nächsten Token voraus. Alles wird wieder in einer eigenen Decoder-Schicht gespeichert.
Die bisher aufgebaute Sequenz wird nun erneut als Input verwendet.
Das Vokabular des Systems besteht aus den als Token dargestellten Wörtern seines aufbereiteten Datensatzes.
Das Netz besteht aus einer Eingabeschicht, mehreren internen Schichten, sog. hidden layers und einer Ausgabeschicht. Bei der Eingabeschicht landet unsere Anfrage. Das Zauberwort Transformer bedeutet nichts anderes als dass unsere Eingabe in eine für uns brauchbare Ausgabe „transformiert“ wird.