0.1.9. Verlust
Der Verlust sagt, wie überrascht das Modell vom tatsächlich folgenden Token war. DocumentLoss bildet ihn. Training existiert, um diese Zahl zu verkleinern.
Softmax über die Logits einer Position:
- Das Maximum der Logits wird abgezogen.
- Jeder verschobene Wert geht durch Exp.
- Geteilt wird durch die Summe dieser Exp-Werte.
Jeder Eintrag ist positiv, die Summe ist 1. Dieselbe Funktion Softmax benutzt die Attention, dort über Positionen statt über das Vokabular.
Der Beitrag der Position i ist
-log(p[tokens[i+1]])
Der natürliche Logarithmus. War die Wahrscheinlichkeit 1, ist der Beitrag 0. Das öffnende BOS ist Eingabe und nicht selbst ein Ziel. Das schließende BOS ist ein Ziel: das Modell soll aufhören lernen. Es wird in diesem Dokument nicht noch einmal als Eingabe in den Cache geschrieben.
Der Dokumentverlust ist der Mittelwert über die n Positionen. n ist nicht die Kontextlänge und nicht die Zeichenzahl der Rohzeile. Ein längerer Name erzeugt dadurch nicht automatisch einen größeren Gradientenschritt. Eine Stufe druckt diesen Mittelwert, bevor Adam die Parameter bewegt.
Am Anfang sind die Logits unstrukturiert, also liegt p nahe an der Gleichverteilung und der Verlust nahe bei ln(V). Das Programm druckt ln(V) neben der Vokabulargröße. In der Namensliste des Referenzlaufs ist V = 27 und ln(V) ≈ 3.30. Die erste Stufe liegt dort, im festgehaltenen Lauf bei 3,2656. Ein erster Verlust nahe 0 hieße, das Ziel wäre in den Cache geraten oder der Verlust hätte die Eingabe-ID statt der nächsten ID gelesen.
Über 1000 Stufen fällt der Trend. Er springt, weil jede Stufe ein anderes Dokument ist. Der Verlust ist keine Trefferquote. Eine Stichprobe darf weiterhin ein seltenes Zeichen ziehen.
Die Temperatur wird hier nicht angewandt. Der Verlust bewertet die Verteilung, die die Parameter festlegen.
0.1.10. Autograd schickt diesen Verlust zurück zu den Gewichten.