Eine Eingabe kann mehrere passende Fortsetzungen haben
Im Kapitel über Tokenisierung hast du gelernt: Text wird in kleine Bausteine zerlegt, und jeder Baustein bekommt eine Kennnummer. Diese Bausteine heißen Tokens. Unser Sprachmodell soll nun für einen bisherigen Text bewerten, welches Token als Nächstes passen könnte.
Nach „Die Katze schläft auf dem“ sind verschiedene Fortsetzungen möglich. Wir verwenden in diesem Beispiel nur „Sofa“, „Dach“ und „Meer“. Das ist ein absichtlich winziges Wörterverzeichnis. Ein echtes Modell hat wesentlich mehr Auswahlmöglichkeiten.
Wir möchten nicht nur eine einzige Möglichkeit speichern, sondern ihre Wahrscheinlichkeiten. Eine Wahrscheinlichkeit liegt zwischen 0 und 1. Der Wert 0,25 entspricht 25 Prozent. Alle hier betrachteten, sich gegenseitig ausschließenden nächsten Möglichkeiten zusammen müssen Wahrscheinlichkeit 1 haben.
Eine Verteilung ist eine vollständige Aufteilung
Angenommen, das Modell weist dem Sofa 60 Prozent, dem Dach 30 Prozent und dem Meer 10 Prozent zu. Diese drei Zahlen ergeben zusammen 100 Prozent. Das nennen wir eine Wahrscheinlichkeitsverteilung über die möglichen nächsten Tokens.
Sie ist eine Modellbewertung, keine Garantie darüber, was ein Mensch schreiben wird. Andere Texte und andere Trainingsdaten können zu einer anderen Bewertung führen. „Sofa ist hier wahrscheinlich“ bedeutet auch nicht automatisch „der vollständige Satz ist sachlich wahr“.
Der bisherige Text zählt mit
Die Wahrscheinlichkeit soll vom schon gelesenen Text abhängen. Nach „Wir fahren mit dem Boot aufs“ wäre „Meer“ vermutlich passender als nach unserem Katzensatz. Den schon gelesenen Text nennen wir Kontext oder Präfix. Präfix bedeutet einfach „der Teil, der schon davorsteht“.
Dafür gibt es eine kurze Schreibweise: . Lies sie als „Wahrscheinlichkeit von Sofa, gegeben den bisherigen Text“. Das P benennt eine Wahrscheinlichkeit. Der senkrechte Strich bedeutet „unter der Bedingung“ oder hier einfacher „nach diesem Kontext“. Er ist kein Divisionszeichen.
Das Netz liefert zunächst Bewertungen, keine Prozentwerte
Die letzte Netzschicht kann gewöhnliche Zahlen ausgeben, etwa 2, 1 und 0. Solche Rohbewertungen heißen Scores oder, an dieser Ausgabestelle, Logits. Sie dürfen negativ sein und müssen sich nicht zu eins addieren.
Um daraus Wahrscheinlichkeiten zu machen, verwenden wir eine Rechenregel namens Softmax. Sie gibt höheren Scores höhere Wahrscheinlichkeiten und sorgt dafür, dass alle Wahrscheinlichkeiten zusammen eins ergeben.
Softmax an drei Zahlen
Für die Scores [2,1,0] rechnen wir in drei Schritten:
- Wandle jeden Score mit der Exponentialfunktion in eine positive Zahl um. Das ergibt ungefähr [7,389; 2,718; 1].
- Addiere diese Zahlen: 7,389+2,718+1≈11,107.
- Teile jede positive Zahl durch diese Summe.
| Möglichkeit | Score | Positive Umrechnung | Durch die Summe geteilt |
|---|---|---|---|
| Sofa | 2 | 7,389 | ungefähr 0,665 = 66,5 % |
| Dach | 1 | 2,718 | ungefähr 0,245 = 24,5 % |
| Meer | 0 | 1 | ungefähr 0,090 = 9,0 % |
Rundungsbedingt können angezeigte Prozentwerte minimal von genau 100 Prozent abweichen. Die ungerundete Rechnung ist normiert.
Was ist die Exponentialfunktion?
Die verwendete Rechenregel heißt exp. Du kannst sie für dieses Kapitel wie eine Taschenrechnerfunktion betrachten: exp(0)=1, exp(1)≈2,718 und exp(2)≈7,389. Sie lässt sich auch als Potenz der Zahl e≈2,718 schreiben: exp(z)=e hoch z.
Für uns sind zwei Eigenschaften wichtig: Das Ergebnis ist immer positiv, und größere Eingaben liefern größere Ergebnisse. Auch ein negativer Score lässt sich so in eine positive Zahl verwandeln. Für den Gebrauch von Softmax musst du die weitergehende Theorie der Zahl e noch nicht beherrschen.
Jetzt die Formel lesen
| Teil der Formel | In normalen Worten |
|---|---|
| i | Nummer der Möglichkeit, die wir gerade betrachten |
| Ihr Rohscore, zum Beispiel der Score 2 für Sofa | |
| Die positive Umrechnung dieses Scores | |
| j im Summenzeichen | Laufende Nummer durch alle Möglichkeiten |
| Summe aller positiv umgerechneten Scores | |
| Die gesuchte Wahrscheinlichkeit dieser einen Möglichkeit |
Die Formel sagt also nur: „Positive Umrechnung der betrachteten Möglichkeit, geteilt durch die Summe für alle Möglichkeiten.“ Für Sofa ist das 7,389/11,107≈0,665. Das i im Zähler bleibt die eine ausgewählte Möglichkeit; das j im Nenner läuft durch die ganze Liste.
Warum auch andere Wahrscheinlichkeiten mitwandern
Erhöhst du nur den Sofa-Score, wächst sein positiver Wert. Gleichzeitig wächst die Summe im Nenner. Deshalb sinken die Wahrscheinlichkeiten von Dach und Meer, obwohl ihre Rohscores unverändert bleiben. Die Möglichkeiten teilen sich insgesamt 100 Prozent.
Das erklärt, warum Softmax keine voneinander unabhängigen Ja/Nein-Wahrscheinlichkeiten berechnet. Hier wählen wir genau ein nächstes Token aus einer gemeinsamen Menge von Möglichkeiten.
Mehrere Tokens nacheinander
Stell dir eine Folge aus nur zwei Tokens vor. Das erste erhält Wahrscheinlichkeit 0,5. Das zweite erhält nach dem ersten Wahrscheinlichkeit 0,2. Die gemeinsame Wahrscheinlichkeit dieser konkreten Zweierfolge beträgt 0,5×0,2=0,1.
Für längere Folgen multiplizieren wir entsprechend die Wahrscheinlichkeit jedes nächsten Tokens unter seinem jeweiligen bisherigen Kontext. Dafür steht diese kompakte Schreibweise:
Schrittweise gelesen: ist das Token an Stelle t. sind alle Tokens davor. T ist die Länge der Folge. Das Produktzeichen sagt, dass wir die einzelnen bedingten Wahrscheinlichkeiten von Position 1 bis T multiplizieren. Die Punkte links bedeuten „alle dazwischenliegenden Elemente“.
Diese Zerlegung heißt Kettenregel der Wahrscheinlichkeit. Sie hat dieselbe Idee des Zusammensetzens wie andere Kettenregeln, ist aber nicht die Ableitungsregel aus Backpropagation. Für das Sprachmodell macht sie aus „ganzen Text bewerten“ viele Aufgaben „nächstes Token bewerten“.
Das Experiment und die späteren Erweiterungen
Im Experiment kannst du die drei Scores verändern. Der Regler Temperatur verändert, wie stark Softmax die Unterschiede betont: kleinere positive Werte führen zu einer konzentrierteren, größere zu einer gleichmäßigeren Verteilung. Es wird dafür jeder Score vor Softmax durch den Temperaturwert geteilt. Die endgültige Auswahl eines Tokens erklären wir im Generierungskapitel ausführlich.
Die angezeigte Entropie ist eine Maßzahl dafür, wie verteilt oder konzentriert die Wahrscheinlichkeiten sind. Du musst ihre Formel jetzt nicht kennen. Wenn fast alle Wahrscheinlichkeit auf einer Möglichkeit liegt, ist sie klein; bei einer gleichmäßigen Aufteilung größer.
Für sehr große Rohscores benutzt der Code eine numerisch stabile Variante: Er zieht zunächst den größten Score von allen Scores ab. Der gemeinsame Versatz verändert Softmax nicht, verhindert aber unnötig riesige Zwischenzahlen. Diese Implementierungsfrage ändert nichts an den drei Rechenschritten, die du gerade gelernt hast.