LLM

In diesem Abschnitt wird beschrieben, wie ein LLM funktioniert.

Mehr erfahren

Neurale Netzwerke

Grundlagen

Ein künstliches neuronales Netzwerk (KNN) ist der Versuch, die Funktionsweise des menschlichen Gehirns mathematisch nachzubauen, um Computer dazu zu bringen, komplexe Muster zu erkennen. Während klassische Computerprogramme stur einer programmierten Logik folgen (Wenn A, dann B), lernt ein neuronales Netzwerk aus Erfahrungen, ähnlich wie ein Kind lernt, eine Katze von einem Hund zu unterscheiden.

Input Layer
Hidden Layers
Output Layer

Die Grundstruktur besteht aus künstlichen Neuronen (Knoten), die in verschiedenen Schichten (Layers) angeordnet sind:

Gewichte und Parameter

Das wichtigste Konzept zum Verständnis sind die Verbindungen zwischen den Neuronen. Jedes Neuron ist mit den Neuronen der nächsten Schicht verbunden. Diese Verbindungen sind jedoch nicht alle gleich stark. Jede Verbindung hat ein sogenanntes Gewicht (Weight).

Man kann sich diese Gewichte wie Wasserleitungen mit Ventilen vorstellen: Bei manchen Verbindungen ist das Ventil weit offen (das Signal kommt stark durch), bei anderen ist es fast zu (das Signal wird blockiert).

Interaktives Element: Das Ventil

Input 1.0
Weight: 1.0
Output 1.0

Stell dir das Gewicht als Ventil vor. Verändere das Gewicht, um zu sehen, wie viel vom Input beim Output ankommt.

Zusammengenommen bilden diese Gewichte und Einstellungen die Parameter des Modells. Wenn wir später davon sprechen, dass ein LLM «Milliarden von Parametern» hat, meinen wir genau diese Milliarden von kleinen Stellschrauben (unseren Ventilen) und Verbindungen innerhalb des neuronalen Netzwerks, die den Informationsfluss steuern.

Das Ziel des Netzwerks ist es, diese Parameter so einzustellen, dass am Ende das richtige Ergebnis herauskommt. Ein LLM ist im Grunde nichts anderes als ein gigantisches, hochkomplexes neuronales Netzwerk mit einer speziellen Architektur, die sich besonders gut für Sprache eignet.

Die Mathematik hinter einem Neuron

Um zu verstehen, wie das Netzwerk "denkt", müssen wir uns ansehen, was in einem einzelnen Neuron mathematisch passiert. Es ist weniger kompliziert, als es aussieht. Der Prozess in einem einzelnen Neuron lässt sich in zwei Schritte unterteilen: die lineare Funktion und die Aktivierungsfunktion.

1. Die gewichtete Summe (Linearer Teil)

Stellen wir uns ein Neuron vor, das drei Eingaben erhält (z. B. drei Wörter oder Pixel). Jede Eingabe (x) wird mit ihrem eigenen Gewicht (w) multipliziert. Das ist genau der Effekt des oben beschriebenen "Ventils". Anschliessend werden alle Ergebnisse zusammengezählt.

Mathematisch dargestellt: z = (x1 · w1) + (x2 · w2) + (x3 · w3) + b

Oder vereinfacht: z = Σ(xi · wi) + b

Was bedeuten diese Variablen?
  • z (Output): Die Information, die rausgeht
  • x (Input): Die Information, die reinkommt
  • w (Weight): Die Wichtigkeit der Information (unser Ventil)
  • b (Bias): Der Schwellenwert

Der Bias (b)

Der Bias ist ein spezieller Parameter, der oft vergessen wird. Er ist eine Art "Grundstimmung" des Neurons. Selbst wenn alle Eingaben (x) null sind, kann der Bias dafür sorgen, dass das Neuron trotzdem feuert. Er verschiebt die Aktivierungskurve nach oben oder unten, ähnlich wie der y-Achsenabschnitt in einer einfachen Geradengleichung (y = mx + q).

Bias verschiebt die Aktivierung

Ohne Bias (b = 0)

z f(z) 0

f(z) = max(0, z)

Mit Bias (b = +2)

z f(z) 2 0

f(z) = max(0, z + 2)

Der Bias verschiebt die gesamte Aktivierungsfunktion nach oben oder unten.

2. Die Aktivierungsfunktion (Nicht-linearer Teil)

Nachdem die gewichtete Summe (z) berechnet wurde, ist das Ergebnis oft eine beliebige Zahl zwischen minus unendlich und plus unendlich. Damit das Netzwerk komplexe Probleme lösen kann, muss entschieden werden: "Ist dieses Signal stark genug, um weitergeleitet zu werden?".

Hier kommt die Aktivierungsfunktion (f) ins Spiel. Sie nimmt das Ergebnis der Summe und wandelt es um:

output = f(z)

In modernen LLMs wird hier oft die ReLU-Funktion (Rectified Linear Unit) verwendet. Sie ist mathematisch sehr simpel: Sie wandelt alle negativen Zahlen in Null um.

f(z) = max(0, z)

Das bedeutet: Wenn die gewichtete Summe negativ ist, bleibt das Neuron "still" (Output 0). Ist sie positiv, leitet es das Signal weiter. Ohne diese nicht-linearen Funktionen wäre das gesamte Netzwerk, egal wie gross, nur eine einfache lineare Regression und könnte keine Sprache verstehen.

LLM Aufbau

Architekturen

Ein LLM kann sehr unterschiedlich aufgebaut sein. Die bekanntesten LLM-Architekturen heissen Transformer, Mamba und RNN (Rekurrente Neurale Netze). RRN wurden durch Transformer abgelöst, dabei wurden zwei grosse Probleme behoben. Transformer laufen im Vergleich zu RRN parallel, somit können sie einen Text gelichzeitig abarbeiten und gehen nicht Wort für Wort vor. Zusätzlich können sich Transformer an sämtliche Informationen im Text erinnern, während RRN die Informationen, wenn der Text zu lange war, nach und nach wieder vergassen. Die Transformer Architektur ist aktuell die meistverbreitete Architektur und wird in ChatGPT, Copilot, Gemini und vielen weiteren Chatbots verwendet. Mamba ist eine Architektur, die gerade erst entwickelt wird. Hier wird versucht den Rechenaufwand, der bei Transformer quadratisch zur Textlänge steigt, linear zur Textlänge gestalten. Innerhalb dieser IDPA werden wir nur auf die Transformer Architektur weiter eingehen, da diese aktuell am meisten verwendet wird.

Bei allen folgenden Informationen zum Transformer-Aufbau muss beachtet werden, dass diese stark vereinfacht sind. Da LLM ihre Modell-Parameter selbst einstellen, kann zwar erklärt werden, welche mathematische Funktionen ausgeführt werden, was diese aber schlussendlich wirklich bewirken, bleibt selbst für Expert:innen oft eine Vermutung.

Grundsätzlich ist ein Transformer in vier Teilschritte trennbar. Im ersten Teil wandelt der Transformer die, für uns Menschen verständlichen, Wörter um. Genauer gesagt, erstellt er Vektoren, die dieses Wort abbilden und für den Computer verständlich sind. Dieser Schritt wird Embedding genannt. Anschliessend, in der sogenannten Attention berechnet der Transformer den Kontext der einzelnen Wörter. Dieser Schritt ermöglicht es, komplexere Wörter oder Sätze zu verstehen. So gibt es zum Beispiel Wörter, welche mehrere Bedeutungen haben, wobei die richtige Bedeutung erst durch den Kontext hervorkommt. Ein Beispiel für ein solches Wort ist die "Bank". Im nächsten Schritt hat die LLM dann noch die Chance das Wort, welches generiert wird, mit eigenen Informationen anzureichern. Bei diesem Schritt gibt es verschiedene Lösungsansätze, wir schauen uns nur das MLP (Multilayer Perzeptron) genauer an. Nach diesem Schritt ist die Generierung des Wortes abgeschlossen und das Wort wird wieder umgewandelt in ein, für uns Menschen, verständliches Wort.

Embedding

Bedeutung in Vektoren

LLMs nutzen hochdimensionale Vektoren um die Bedeutung von Wörtern festgehalten. Diese Vektoren haben tausende von Dimensionen, welche verschiedene Attribute des Wortes festhalten.

Ein Beispiel für die Festhaltung von nicht numerischer Bedeutung in den Dimensionen von Vektoren, ist wie Farben innerhalb des RGB-Farb-Profils dargestellt werden. RGB wird von Bildschirmen genutzt, um Farben darzustellen. Ein Computer muss also wissen, wie er eine spezifische Farbe darstellt. Dies wird durch einen Vektor gemacht, welcher die Farbmischung darstellt.

Der Vektor zeigt auf eine einzige Farbe, beispielsweise Gelb. Der Computer kennt jedoch nur Rot, Grün und Blau. Also informieren wir den Computer wie ausgeprägt alle der Grundfarben sind, damit Gelb entsteht. Der Ausprägungsgrad pro Dimension ist ein Wert von 0-255. Der Computer versteht nicht, was die Farbe Gelb effektiv ist, doch er versteht, wo genau Gelb im dreidimensionalen Raum liegt. (255, 255, 0) bedeutet "rote und grüne Pixel auf maximaler Helligkeit".

Interaktives Element: Farben als Vektoren (3D)

Lade 3D Ansicht...

Rot (X) 0
Grün (Y) 0
Blau (Z) 0
Vektor: (0, 0, 0)

Der Vektor zeigt vom Ursprung (Schwarz) zur gemischten Farbe im RGB-Würfel. Rotieren & Zoomen möglich.

Nun kann der Computer Gelb repräsentieren, obwohl er gar nicht wirklich weiss, was Gelb ist. Viele Informationen kann er nun auch aus den Beziehungen zwischen zwei Farben entnehmen. Beispielsweise weiss er, dass die Farben "Gelb" und "Orange" ähnlich sind, da ihre Vektoren an einen ähnlichen Orte zeigen. Wiederum versteht er, dass Dunkelblau überhaupt nicht nahe an diesen Farben ist.

Wörter sind für LLMs genauso Vektoren, nur dass diese durch die erhöhte Komplexität in ihrer Bedeutung deutlich mehr Dimensionen benötigen, worin Attribute oder auch Fakten festgehalten werden können. Rot, Grün und Blau reichen nicht um das Wort "Flugzeug" zu beschreiben. Moderne LLMs haben zehntausende an Dimensionen. Diese Dimensionen sind jedoch nicht klar benennt und uns Menschen unbekannt. Sie werden durch "Self Supervised Learning" definiert. Vereinfacht -> Das LLM bringt sich dies selbst bei. Nur das LLM selbst versteht, was die Dimensionen bedeuten und wie sie zusammenspielen.

Attention

Attention

Im Einbettungsschritt haben wir den Input ins LLM in verschiedenen Token aufgetrennt und für jeden Token ein Vektor erhalten. Dies ist jedoch noch sehr linear, das Wort Flugzeug wird immer als gleicher Vektor interpretiert. Die unterschiedlichen Hersteller oder Typen können nicht widergespiegelt werden. Damit die Bedeutung des Wortes genauer definiert werden kann, muss der Kontext vom Text angeschaut werden. In der Attention können die anderen Tokens, welche auch eingebettet wurden, den Vektor für “Flugzeug” beeinflussen. Somit kann Kontext vom Rest des Textes zu einem Wort hinzugefügt werden. In diesem Abschnitt werden wir nur die Self-Attention genauer anschauen, die Cross-Attention lassen wir aus.

Query- und Key-Vektoren

Innerhalb der Attention werden mit jedem Token zwei Matrixmultiplikationen durchgeführt. Beide Matrizen bestehen komplett aus Modellparametern, welche, während dem Lernen der LLM definiert werden. Als Ergebnis der beiden Multiplikationen erhalten wir Query und Key Vektoren, diese befinden sich in einer kleineren Dimension im Vergleich zum ursprünglichen Einbettungsraum.

Die erste Matrixmultiplikation ergibt einen Query-Vektor, welcher eine Frage an die umliegenden Tokens widerspiegelt. Ein sehr stark vereinfachtes Beispiel ist, das die Matrix, welche bei der Matrixmultiplikation für den Query-Vektor verwendet wird, bei Nomen den Fragenvektor "Gibt es ein Flugzeugtyp vor mir?" zurückgibt.

Bei der zweiten Matrixmultiplikation erhalten wir einen Key-Vektor. Der Key-Vektor ist die Antwort zur Frage des Query-Vektors. Hier würden in unserem Beispiel Tokens, welche einen Flugzeugtyp repräsentieren, die Antwort geben, "Ich bin ein Flugzeug Typ, an der Position X".

Input Token
W_Query
×
Query Vector
q = x · W_q
W_Key
×
Key Vector
k = x · W_k

Skalarprodukt vom Key und Query Vektor

Sobald für jeden Token ein Key und Query-Vektor berechnet wurde, wird das Skalarprodukt von jedem Key-Vektor mit jedem Query-Vektor ausgerechnet. Wenn das Skalarprodukt von einem Query-Vektor und einem Key-Vektor stark positiv ist, bedeutet dies, dass das Token vom Key-Vektor auf das Token vom Query-Vektor Einfluss haben sollte. Bei einem Skalarprodukt nahe bei Null oder im Minus beeinflussen sich die Tokens gegenseitig nicht oder nur sehr schwach. Bei unserem Beispiel würde das Skalarprodukt von einem Flugzeugtyp darstellendem Key-Vektor und einem "Flugzeug" Query-Vektor ein sehr hohes Skalarprodukt ergeben und somit aufzeigen, dass ein Flugzeugtyp das Wort "Flugzeug" stark beeinflusst.

Softmax

Sämtliche Skalarprodukte von Key-Vektoren, welche nach einem Query-Vektor in der Reihenfolge sind, werden auf minus unendlich gesetzt. Dies bewirkt, dass in folgendem Beispielsatz: "Das A320 Flugzeug neben dem PC-21" das Token für "PC-21" das Token für "Flugzeug" nicht beeinflusst.

Anschliessend wird ein Softmax von allen Skalaren von einem Query-Vektor und allen Key-Vektoren genommen. Softmax setzt alle Werte im Minusbereich auf Null und gewichtet alle positiven Zahlen so, dass am Schluss die Summe sämtlicher Zahlen zusammenaddiert Eins ergeben. Das Ergebnis vom Softmax ist eine normalisierte Spalte, in welcher abgelesen werden kann welcher Token welchen Token wie fest beeinflussen muss.

Beeinflussung

Nun wissen wir, zum Beispiel, dass "A320" die Einbettung für "Flugzeug" beeinflussen muss. Für die eigentliche Beeinflussung muss nun die Einbettung vom "Flugzeug"-Token angepasst werden. Hier wird eine weitere Matrixmultiplikation gerechnet. Auch bei dieser besteht die Matrix aus Modelparametern, die wiederum während dem Lernen gesetzt werden. Die Einbettung von jedem Token wird mit der Matrix multipliziert, daraus erhält man einen weiteren Vektor, der aufzeigt, was bei einem anderen Token addiert werden muss, um diesen zu beeinflussen. Diesen Vektor nennen wir von nun an "Beeinflussungs-Vektor". Bei unserem Beispiel würde die Multiplikation, der Matrix, mit dem Vektor für "A320" einen Beeinflussungs-Vektor ergeben, welcher zu "Flugzeug" addiert werden kann. Das Ergebnis daraus wäre "Flugzeug" mit dem Kontext "A320".

Da wir mehrere Tokens haben, welche unterschiedlich stark beeinflussen, müssen sämtliche Beeinflussungs-Vektoren mit dem Softmax-Ergebnis des gleichen Key-Tokens multipliziert werden. Nun können alle Ergebnisse für ein Query-Token zusammenaddiert werden, um einen Vektor zu erhalten, welcher die unterschiedlich stark gewichteten Beeinflussungen beinhaltet. In unserem Beispiel könnte also mit einem Vektor zum Token "Flugzeug" der Kontext "weiss, A320, Airbus" dazu addiert werden, wobei die einzelnen Kontextwörter unterschiedlich gewichtet wurden.

Original "Flugzeug"
+
Fakten Vektor (Neu)
Angereichertes Token
"Flugzeug" + A320 Info

Nun konnten wir erfolgreich Kontext, aufgrund anderer Tokens, zu einem zuvor kontextlosen Token hinzufügen.

Multi Headed Attention

Sämtliche Schritte der Attention werden in der Fachsprache "Head" genannt. In fast allen LLM's gibt es nicht nur einen "Head" in der Attention, sondern viele aneinander gereihte "Head". Dies wird dann Multi Headed Attention genannt. Der Hauptgrund, wieso eine Multi Headed Attention durchgeführt wird, ist, dass bei jedem einzelnen "Head" neue Matrizen verwendet werden, welche aus unterschiedlichen Modellparametern bestehen. Somit kann Kontext noch schneller und genauer bei Tokens hinzugefügt werden.

Multilayer Perzeptron (MLP)

Multilayer Perzeptron (MLP)

Das MLP ist ein neurales Netzwerk, welches dem LLM ermöglicht Informationen zu speichern. Ein anschauliches Beispiel ist, wenn man einen ChatBot fragt, wie viel Personen in einen Airbus A320 passen. Solange das LLM keinen Zugriff aufs Internet hat, muss die Sitzplatzanzahl innerhalb des Modells gespeichert sein. Genau diesen Schritt übernimmt das MLP. Jeder Vektor, aus der Attention, durchläuft die MLP-Schicht parallel und isoliert von sämtlichen anderen Vektoren. Damit wir den Aufbau des MLP besser verstehen, ignorieren wir die Parallelität und folgen schrittweise einem Durchlauf durchs MLP.

Input ins MLP

Nach der Attention haben wir mehrere Vektoren erhalten, welche von anderen Tokens beeinflusst wurden. Da in der MLP-Schicht alle Vektoren parallel und isoliert voneinander verarbeitet werden, werden wir zur Vereinfachung nur einen Vektor, welcher den Airbus A320 widerspiegelt, anschauen.

Als erster Schritt innerhalb des MLPs wird der Vektor aus der Attention mit einer Matrix multipliziert. Bei der Matrix handelt es sich um viele Modelparameter, die, während des Lernens der LLM, definiert werden. Innerhalb der Matrix betrachten wir nun eine Zeile als einen weiteren Vektor. Bei der Matrixmultiplikation erhalten wir somit das Skalarprodukt des Airbus A320 Vektors und einem imaginieren Vektor, welcher aus einer Reihe innerhalb der Matrix besteht.

Input
x₁
x₂
x₃
x₄
×
Parameter Matrix
w1
w2
w3
w4
w5
w6
w7
w8
w9
w10
w11
w12
w13
w14
w15
w16
Projiziert auf Dimensionen
=
Expansion
y₁
y₂
y₃
y₄

Das Skalarprodukt von zwei Vektoren liefert Informationen darüber, wie Vektoren zueinanderstehen. Ist das Ergebnis positiv, bedeutet dies, dass eine Ähnlichkeit zwischen zwei Vektoren besteht. Ein Betrag im Minusbereich zeigt auf, dass die Vektoren gegensätzlich sind. Falls das Ergebnis genau null beträgt, haben die Vektoren keine Gemeinsamkeiten. Wenn die beiden Vektoren genau übereinstimmen, erhält man den Betrag, von einem der beiden Vektoren, im Quadrat. Sind die Vektoren genaue Gegenteile erhält man die Quadratzahl im Minus.

Um unser Beispiel möglichst verständlich zu halten, gehen wir davon aus, dass sowohl der Vektor aus der Attention wie auch der Vektor aus der Matrix Einheitsvektoren sind.

Jeder Vektor aus der Matrix kann als Frage angesehen werden. Diese Matrixmultiplikation ermöglicht es, Fragen zu dem Vektor, welchen wir aus der Attention erhalten haben, zu stellen. Anhand des Ergebnisses des Skalarproduktes erkennen wir, ob eine Übereinstimmung oder Gegensätzlichkeit besteht.

ReLU (Aktivierung)

Der erste Schritt innerhalb des MLP ergab einen Vektor mit Zahlen. Jede Zahl sagt aus, wie fest eine gestellte Frage mit dem ursprünglichen Vektor aus der Attention übereinstimmt. Um zu definieren, wann eine Frage zutrifft, und wann diese nicht zutrifft, wird eine nicht lineare Funktion verwendet. Diese Funktion ist unterschiedlich je nach LLM. Während unserer Arbeit schauen wir uns die ReLU Funktion genauer an.

x
y
f(x) = max(0, x)
0

Die ReLU-Funktion ergibt für alle Werte welche kleiner oder gleich null sind null. Bei positiven Zahlen gibt die ReLU-Funktion die positive Zahl, ohne Veränderung, wieder zurück. Nach der Ausführung der ReLU-Funktion kann abgelesen werden, welche Fragen zutreffen und welche nicht. Sämtliche Werte, welche grösser als null sind, treffen zu. Alle, die gleich null sind, treffen nicht zu.

Bei dieser Funktion kommt nun wieder der Bias ins Spiel. Falls der Fragenvektor die Addition der beiden Vektoren «Kann fliegen» und «Ist ein Flugzeug» bekommt man bereits einen positiven Wert, wenn nur einer der beiden Fragen stimmt. Mit dem Bias gibt es die Möglichkeit, im Nachhinein das Skalarprodukt noch anzupassen und zum Beispiel minus 1.9 rechnen. Da ein Skalarprodukt von zwei Einheitsvektoren maximal eins ergibt, wenn diese genau übereinstimmen, würde dieser Bias bewirken, dass unser Vektor aus der Attention extrem stark, mit den beiden Eigenschaften übereinstimmen muss.

Zweite Matrix Multiplikation

Aus der ReLU-Funktion erhalten wir einen Vektor mit Zahlen von null bis unendlich. Der nächste Schritt innerhalb des MLP ist erneut eine Matrixmultiplikation wie im ersten Schritt. Bei dieser Multiplikation ist es am besten, wenn man sich die Matrix spaltenweise vorstellt. Jede Spalte hat genau die Grösse des ursprünglichen Vektorraums und widerspiegelt darin eine bestimmte Information. In unserem Beispiel gäbe es innerhalb der Matrix zum Beispiel eine Spalte, welche die 150-187 Sitzplätze innerhalb des ursprünglichen Vektorraums widerspiegelt. Falls das Skalarprodukt der Frage, ob es sich um einen Airbus A320 handelt, positiv ist, wird die ReLU Funktion den Wert nicht anpassen und bei dieser Matrixmultiplikation wird der Vektor der Sitzplätze beim Endergebnis mit einbezogen. Solange die ReLU-Funktion für eine Frage Null zurückgibt, wird diese Spalte nicht zum Endergebnis dazugerechnet.

Am Ende dieses Schrittes haben wir wieder einen Vektor, welcher die Grösse des ursprünglichen Vektorenraums hat, und sämtliche zusätzlichen Informationen verglichen mit dem Vektor aus der Attention enthält.

Residual Connection

Damit der ursprüngliche Vektor aus der Attention beim Weiteren verarbeiten nicht komplett vergessen wird, addiert der letzte Schritt des MLP den Vektor aus der Attention mit dem Vektor, welcher die zusätzlichen Fakten enthält.

Attention Vektor (Original)
+
Fakten Vektor (Neu)
Ergebnis
Kombiniertes Wissen

In unserem Beispiel hätten wir nun einen Vektor, welcher Airbus, A320 und nun auch die 150-187 Sitzplätze beinhaltet.

Training

Erklärung Training

Wenn man bei einem neuronalen Netzwerk «lernt» sagt, meint man damit eigentlich nichts anderes, als die Parameter zu ändern, sodass man ein gewünschtes Ergebnis bekommt. Dies ist jedoch nicht trivial, denn heutige LLMs haben über eine Billion Parameter. Man kann sich diese wie viele Schalter vorstellen, die man beliebig drehen kann, um einen anderen Wert zu erhalten.

Backpropagation

Backpropagation ist der zentrale Algorithmus, mit dem ein neuronales Netzwerk lernt.

Vereinfacht funktioniert der Algorithmus so, dass man einen Satz hat, den man kennt.

Als Beispiel nehmen wir: «Ein Kirschbaum ist pink.» Jetzt füttern wir das Netzwerk mit diesem Satz, lassen jedoch das letzte Wort weg. Das heisst wir fragen das Netzwerk, was das nächste Wort im Satz «ein Kirschbaum ist» ist.

Das Netzwerk wird jetzt durch die Schritte gehen, also Embedding, Attention, MLP und so weiter. Am Ende wird es eine Vorhersage machen, die könnte wie folgt aussehen:

Das Netzwerk hat «pink» mit 45% als wahrscheinlichstes nächstes Wort gewählt – Das ist richtig, jedoch mit 45% nicht überzeugend. Der Verlust misst nun, wie weit die Vorhersage von der Wahrheit entfernt ist. Mathematisch nutzen wir dafür die Cross-Entropy: Je höher die vorhergesagte Wahrscheinlichkeit für das richtige Wort, desto kleiner der Verlust. In unserem Fall ist die Wahrscheinlichkeit für «pink» 45%, also ist der Verlust deutlich grösser als null, in unserem Beispiel 55%.

Das Ziel: Diesen Verlust minimieren.

Lernen im Detail

Doch wie funktioniert das Lernen im Detail? Um das zu verstehen, hilft ein einfacheres Beispiel. Stell dir ein winziges neuronales Netzwerk vor mit nur drei Schichten: zehn Input-Neuronen für die zehn häufigsten Wörter, vier Neuronen in einer versteckten Schicht und zwei Output-Neuronen für die Kategorien «Säugetier» und «Vogel».

Input (Wörter)
...
Hidden Layer
Output (Kategorie)
Säugetier
Vogel

Wir trainieren es damit, das Wort «Katze» als Säugetier zu klassifizieren. Im Forward- Pass fliesst die Aktivierung durch das Netz, am Ende kommt bei «Säugetier» ein Wert von 0,7 heraus – richtig, aber unsicher. Der Verlust beträgt -log(0,7) = 0,15.

Input "Katze"
0.7
Säugetier
0.3
Vogel
Loss = 0.15

Jetzt beginnt der Backward-Pass: Dieser Fehler von 0,15 wandert rückwärts durch jede einzelne Verbindung. Für jedes Gewicht berechnen wir, wie stark es zum Fehler beigetragen hat, also wie sehr eine Änderung an diesem Gewicht das Endergebnis ändern würde.

Die Kettenregel ist das mathematische Rückgrat des Backward-Passes. Sie funktioniert wie eine Abstiegsreise mit Zwischenstationen: Der Gesamtfehler am Ende (0,15) hängt vom Output-Wert ab, der wiederum vom vorletzten Gewicht abhängt, dieses vom davorliegenden Neuron, und so weiter bis zum ersten Gewicht am Input. Die Kettenregel sagt nun: Um zu wissen, wie sehr sich der Fehler ändert, wenn wir ein einzelnes Gewicht am Anfang verändern, multiplizieren wir die Ableitungen aller Zwischenstationen miteinander.

Konkret im Netzwerk: Der Fehler von 0,15 hängt direkt vom Output-Wert (0,7) ab. Der Output-Wert hängt von der Summe der Hidden-Neuronen ab, die wiederum von den Input-Gewichten für «Katze» abhängen. Die Kettenregel multipliziert nun für jede Verbindung die lokalen Ableitungen – also: Wie stark ändert sich die Aktivierung dieser Schicht, wenn ich das Gewicht davor verändere? Durch das geschickte Zwischenspeichern dieser Teilableitungen während des Forward-Passes kann der Algorithmus im Backward-Pass in einem einzigen Durchlauf von hinten nach vorne alle Gradienten berechnen, ohne für jedes Gewicht einen separaten Durchlauf zu starten.

Die Gradienten zeigen die Richtung des steilsten Anstiegs. Wir wollen aber den Fehler minimieren, also gehen wir in die entgegengesetzte Richtung. Die Lernrate, typischerweise eine kleine Zahl wie 0,01, bestimmt die Schrittgrösse:

Neues Gewicht = altes Gewicht - Lernrate * Gradient

Ein Gewicht, das den Fehler vergrössert hat, wird verringert; eines, das ihn verringern würde, wird erhöht. Dies passiert für alle Parameter gleichzeitig.

Wie jedoch lernen LLMs?

Dieses Prinzip, so einfach es klingt, ist exakt das, was in LLMs passiert. Statt zehn Gewichten hat GPT-3 175 Milliarden Parameter. Statt drei Schichten hat es 96 Transformer-Blöcke. Statt eines einzelnen «Katze»-Beispiels trainiert es gleichzeitig über Tausende von Sätzen. Der Ablauf bleibt 1:1 identisch: Forward-Pass durch Embedding, Attention und MLP, Berechnung des Verlustes mit Cross-Entropy, Backward-Pass durch alle 96 Schichten hinunter zu den Embeddings, und schliesslich das Update aller Parameter.

Was bei LLMs jedoch besonders ist: Die Embedding-Matrix selbst lernt mit. Während des Trainings rücken «Kirschbaum» und «Baum» im Vektorraum näher zusammen, während «pink» eine spezielle Beziehung zu «Kirschbaum» entwickelt. Die Attention-Parameter lernen, welche Wörter im Satz wichtig sind. Und weil die oberen Schichten direkt für die Vorhersage verantwortlich sind, lernen sie schneller als die unteren, die allgemeine Sprachmuster erfassen.

Dieser Zyklus wird nicht einmal oder hundert Mal durchgeführt, sondern Milliarden Mal. Jede Epoche, also jeder Durchlauf durch das gesamte Training, feilt die Parameter ein wenig mehr. Irgendwann wird aus dem 45%-Vorschlag für «pink» eine 99%-Wahrscheinlichkeit. Das Netzwerk hat gelernt, dass Kirschbäume pink sein können – nicht durch Regeln, sondern durch reine Optimierung von Zahlen.

Backpropagation ist also kein magischer Lernprozess, sondern ein mathematischer Fehlerkorrekturmechanismus, der durch die Kettenregel der Analysis effizient Millionen von Parametern gleichzeitig steuert. Ob zehn Gewichte oder 100 Milliarden – das Prinzip bleibt: Fehler messen, ableiten, anpassen und wiederholen.

Reinforcement Learning from Human Feedback

RLHF ist eine Trainigmethode, bei welcher Menschen die Antwort zu einem gegebenen Prompt schreiben. Anhand dieser Prompts und Antworten wird dann das LLM trainiert. Damit erhält man ein LLM, welches unter anderem auch moralische Werte abbilden kann. So kann das LLM zum Beispiel lernen, dass Gewalt keine Lösung für einen verbalen Konflikt ist, wobei, rein faktisch gesehen, Gewalt eine Lösung ist. Diese Trainings methode ist zeitintensiv und teuer, da viel manuelle Arbeit ins Trainieren einfliesst.

Um Kosten und Zeit zu sparen, wird nach dem erfolgreichen ersten Training, wie oben beschrieben, das LLM nach einem anderen Vorgehen weitertrainiert. Anstelle, dass das LLM anhand bereits bestehender Antworten trainiert wird, generiert es nun mehrere Antworte auf einen Prompt selbständig. Menschen bewerten dann die generierten Antworten von der besten zur schlechtesten. Das LLM kann dann anhand der unterschiedlichen Bewertungen seine Modelparameter noch feiner einstellen. Durch dieses Vorgehen konnte schon Zeit gespart werden, weiterhin muss jedoch ein Mensch aktiv sämtliche Antworten bewerten.

Zusammenfassung

Grundprinzip: Next Word Prediction

LLMs fungieren im Kern als komplexe probabilistische Systeme. Ihre primäre Aufgabe ist die Next Word Prediction: Basierend auf einer gegebenen Eingabe (Prompt) berechnet das Modell die bedingte Wahrscheinlichkeit für das nachfolgende Token.

Um repetitive oder deterministische Ausgaben zu vermeiden und eine natürlichere Sprachgenerierung zu ermöglichen, wählt das Modell nicht zwingend das Token mit der höchsten Wahrscheinlichkeit, sondern nutzt Sampling-Verfahren zur Varianzbildung. Dieser Prozess verläuft in einer Schleife, heisst, jedes generierte Output-Token wird unmittelbar in die Eingabesequenz für die nächste Berechnung integriert.

Datenrepräsentationen: Vektorisierung und Embedding

Da neuronale Netze mathematische Operationen ausführen, ist eine Transformation sprachlicher Eingaben in numerische Werte erforderlich. Dies geschieht durch sogenannte Embeddings.

Wörter werden hier in hochdimensionale Vektoren übersetzt und in einem Vektorraum positioniert. Semantisch verwandte oder kontextuell ähnliche Begriffe (z.B. Synonyme) weisen in diesem mathematischen Raum eine geringe Distanz zueinander auf. Diese räumliche Nähe ermöglicht es dem Modell, semantische Beziehungen zu erfassen.

Die Transformer-Architektur

Moderne LLMs basieren auf der Transformer-Architektur, welche sich durch zwei Hauptmechanismen auszeichnet:

  • Attention: Dieser Mechanismus ermöglicht dem Modell die Kontextualisierung von Informationen. Über Query- und Key-Vektoren wird mit dem Skalarprodukt die Relevanz zwischen einzelnen Tokens berechnet. Ein hoher Skalar indiziert eine starke semantische Beziehung.
  • MLP: Nach der Kontextanalyse durch die Attention-Layer werden die Informationen im MLP weiterverarbeitet. Dieser Teil des Netzwerks dient primär als faktischer Wissensspeicher. Durch Matrixmultiplikationen werden kontextuelle Informationen mit gelerntem Weltwissen verknüpft und in den Ergebnisvektor integriert.

Training: Optimierung durch Backpropagation

Der Lernprozess eines LLMs entspricht der ständigen Optimierung seiner Gewichte. Das Verfahren nennt man hier die Backpropagation:

  • Forward Pass: Das Modell generiert eine Vorhersage.
  • Loss Calculation: Das System vergleicht die Vorhersage des Modells mit der tatsächlich korrekten Antwort.
  • Backward Pass: Der berechnete Fehler wird nun rückwärts durch das Netzwerk geleitet. Dabei analysiert der Algorithmus, welche Gewichte massgeblich zu diesem Fehler beigetragen haben. Die Abweichung zwischen beiden wird als "Loss" berechnet.
  • Parameter Update: Die Gewichte werden minimal angepasst. Das Ziel ist es, die Einstellungen so zu verändern, dass das Modell bei einer ähnlichen Aufgabe in Zukunft einen geringeren Fehler macht.