Ein einfaches Weltbild

In RAG (Retrieval-Augmented Generation) geht es darum, aus einer großen Menge von Daten, zum Beispiel PDF-Dokumenten, zu einer Frage die besten Quellen zu finden und diese dem LLM zur Verarbeitung zu übergeben. Empirisch zeigt sich, dass das LLM mit RAG besser grounded ist, also weniger zu Halluzinationen neigt, mehr auf dem Boden der Tatsachen steht und sich scheinbar nur mit den übergebenen Daten beschäftigt.

Ich hatte die naive Vorstellung, dass das LLM meine bereitgestellten Daten durchliest, versteht und daraus eine Antwort generiert. Das ist ein naheliegendes mentales Modell.

Bis ein kleines Detail auftauchte.

Die Sache mit den Formeln

In unserem RAG-Projekt durchsucht ein AI-Assistent 33000 Seiten Fachliteratur in PDF-Dokumenten, um mit einer Auswahl von bis zu 35 Seiten ein LLM zu füttern. Darin gibt es viele mathematische Formeln, wie zum Beispiel diese:

Das LLM gibt Formeln als LaTeX-Format aus, eingebettet in Markdown, und der Assistent transformiert es zu MathML, das im Browser hübsch aussieht. Alles klar soweit, noch kein Grund am Weltbild zu rütteln.

Die LaTeX-Formel:

\[B_0 = K \cdot \frac{(1 + i_k)^n}{(1 + r)^n}\]

Im Browser:

Mathematische Formel: B_0 = K * ((1 + i_k)^n / (1 + r)^n)

Man muss wissen, dass PDF ein Format zum Drucken und Anschauen ist, aber ganz erbärmlich für eine maschinelle Auswertung geeignet ist. Die Formeln sind eingebettete Bilder. Ein PDF-Parser [1] liest aber nur Text. Schauen wir in die tatsächlichen Daten, die aus dem PDF als Text extrahiert werden und zum LLM gehen:

K 0 = K × n ( ) i1 + k )n ( r1 +

Versuchen Sie mal, dieses seltsam verstümmelte Gebilde auf die Formel zu projizieren. Sie kommen wie ich damals zu dem Schluss, dass es nicht möglich ist, aus diesem Code die Formel wiederherzustellen. Es fällt auf, dass im Browser B0 steht anstatt K0 und die Zeichenfolge keinen Sinn ergibt[2].

Um der Sache auf den Grund zu gehen, schnippelte ich immer mehr von dem Text ab und staunte nicht schlecht, dass die Formel recht lange heil blieb.

Was für eine Magie ist das?

Das Ganze ist eine Illusion. Das LLM liest sich nichts durch und versteht auch nichts. LLMs lesen nicht wie Menschen von vorne nach hinten Text durch und merken sich, was sie gelesen haben.

Blitzeinführung Transformer-Netzwerke

Um die Magie zu entschlüsseln, müssen wir die Mechanik der Inferenz in Transformer-Netzwerken (kurz Transformer) mit Kontext und Attention-Mechanismus wenigstens auf einem vereinfachten Niveau ohne Mathematik [3] verstehen.

Schritt 1: Wenn dem LLM ein Text (Prompt mit oder ohne Daten) übergeben wird, dann wird jedes Wort[4] einmalig in einen mathematischen Vektor kodiert. Dieser Vektor hat viele hundert Dimensionen[5] und repräsentiert die vom LLM gelernte, allgemeine Bedeutung des Worts.

Die Menge aller Vektoren (stellvertretend für Worte) wird Kontext genannt. Worte haben unterschiedliche Bedeutung, abhängig vom Kontext, in dem sie stehen[6]. Diese kontextuelle Bedeutung wird im nächsten Schritt berechnet.

Schritt 2: Die Aufgabe des Attention-Mechanismus ist es, den Kontext auf sich selbst einwirken zu lassen (self attention), um die Bedeutung aller Worte zu verschieben. Die Worte zupfen sozusagen aneinander, um ihre Bedeutung gegenseitig zu verändern. Dazu gibt es mathematische Verfahren, die mit Matrizen und Vektoren arbeiten. Die Matrizen sind die mathematische Repräsentation des trainierten Wissens[7].

Das Ergebnis ist ein veränderter Kontext. Alle Vektoren sind verschoben worden. Die Worte haben eine veränderte Bedeutung.

Schritt 3: Es wird genau ein Wort (als Vektor) errechnet, das am besten (am wahrscheinlichsten) an den Kontext hinten angehängt werden kann. Der Kontext ist um eins länger geworden.

Das Spiel beginnt von vorne mit Schritt 2 und läuft so lange, bis das Ende am wahrscheinlichsten ist und die Ausgabe beendet wird.

Jetzt dämmert es

Aus der Transformer-Mechanik wird folgendes klar:

Also was ist nun mit den Formeln? Das LLM kannte sie schon vorher! Unsere Daten haben lediglich das Muster ausgelöst, das in den Trainingsdaten enthalten war.

Wir können einem LLM nichts Neues beibringen, indem wir Daten im Kontext mitgeben. Wir können ein LLM nur anregen, gelernte Muster[8] zu reproduzieren, die für den Kontext relevant sind. Das ist der ganze Zauber von RAG.

Denken Sie beim nächsten komplexen Prompt mal darüber nach, welche Worte am wirksamsten sein könnten im Kontext. Was “zupft” stärker? Kleine Änderungen können viel bewirken.

Das letzte Wort hat immer das LLM

Ein LLM ist eine Maschine, die nur inside-out arbeitet. Wir können mit RAG nichts in das LLM einbauen[9]. Durch äußere “Reize” im Kontext wird das LLM zur Rekonstruktion passender Muster angeregt. Das empfinden wir dann als grounded, weil das Ergebnis schön zu unseren Daten passt.

Durch die gewaltigen Mengen an Trainingsdaten kommt ein großes LLM mit ziemlich allem zurecht, was es in einem Unternehmen an Daten gibt. Die Illusion, dass es unsere Daten lesen würde, ist praktisch perfekt.

Die Antwort eines RAG-basierten Assistenten wird von Grund auf vom LLM aufgebaut. Der Kontext schubst das LLM mal in die eine oder andere Richtung, könnte aber nie die Struktur der Antwort liefern[10]. Sie kommt vom LLM. Das LLM “wählt” die Daten aus, die zu seinen Mustern passen [11].

Sie 👽 sind wie wir

Übrigens wird das Bild, das wir uns von der Welt machen, auch großteils von innen nach außen aufgebaut. Ohne unsere gelernten Muster könnten wir nichts in der Welt verstehen. Äußere Reize regen Muster aus dem Gedächtnis an. So entsteht z.B. die Illusion, dass wir scharf sehen würden, obwohl nur ein kleiner Bereich der Netzhaut wirklich scharf abbildet. Sehen ist großteils Rekonstruktion.

Sehr vertraut ist Ihnen bestimmt auch der Effekt, dass Sie in einem frisch geschriebenen Text offensichtliche Mängel nicht sehen. Jemand anderes fallen sie sofort auf und Ihnen nach einer Pause auch. Das was Sie zu lesen glauben ist nicht was da steht. Ihr Gehirn reproduziert den gewünschten Text, der in kleinen Details nicht mit dem geschriebenen Text übereinstimmt.

Der große Unterschied zwischen uns und den LLMs ist natürlich, dass wir kontinuierlich lernen. Ich bin gespannt, was die Entwicklung der LLMs in Zukunft in dieser Hinsicht bringen wird.

Dann könnte auch bei LLMs das Weltbild wackeln, wenn sie auf ein kleines Detail treffen.

  1. Wir verwenden pdfminer.six  ↩

  2. Ich habe nicht rausfinden können, warum diese seltsame Kodierung im PDF steht. Das spielt für das Thema auch keine Rolle.  ↩

  3. Wer sich die mathematischen Grundlagen voll geben will: Lieber erst mit ChatGPT sanft einsteigen, bevor man zu Wikipedia geht.  ↩

  4. Eigentlich sind es Tokens, kleinere Teile von Worten. Das ändert am Verständnis aber nichts.  ↩

  5. Er besteht aus hunderten Zahlen. Ein dreidimensionaler Vektor besteht aus drei Zahlen und repräsentiert die räumlichen (x,y,z) Koordinaten.  ↩

  6. Denken Sie an “Sitz”. Im Kontext von Möbeln etwas ganz anderes als bei Maschinen (Sitz eines Lagers). Wir könnten mit “Lager” gleich weitermachen…  ↩

  7. Es sind die Gewichte des neuronalen Netzes.  ↩

  8. “Muster” bezieht sich auf kleine Strukturen (Worte) und große Zusammenhänge.  ↩

  9. Nur mit finetuning kann ein LLM verändert werden.  ↩

  10. Die Daten bestehen aus lose zusammengewürfelten, unzusammenhängenden Seiten. Da ist keine Struktur zu erkennen, wenn man sie nicht schon vorher kennt!  ↩

  11. Man kann eigentlich keine aktive und passive Rolle vergeben. Kontext und LLM sind, während das LLM rechnet, eine Einheit für begrenzte Zeit.  ↩