Die Datenquelle
Lokale Daten werden gesucht …
Trainierte Gewichte vom anderen Rechner verwenden
Synchronisiere Checkpoints/bestes_modell.pt oder führe den folgenden Export direkt auf dem Trainingsrechner aus. Das Skript liegt neben dem Lehrnotebook und nutzt dieselbe Python-Umgebung.
python exportiere_embeddings.py Checkpoints/bestes_modell.pt
Öffne danach die erzeugte Data/embeddings-checkpoint.json über „Checkpoint-Export laden“. Sie enthält beide Embeddingtabellen, die erste LayerNorm und den zum Checkpoint gehörenden Tokenizer. Ein separates tokenizer.json wird dafür nicht benötigt. Die große .pt-Datei bleibt außerhalb des Browsers.
Bei Nutzung über einen lokalen Webserver wird der Export automatisch aus ../Data/embeddings-checkpoint.json geladen. Ohne Export wird ../Data/tokenizer.json für die Tokenisierung verwendet. Beim direkten Öffnen der HTML-Datei wähle die JSON-Datei über die Schaltfläche aus. Alle Berechnungen bleiben lokal.
Text → Tokens → IDs
ByteLevel-BPE aus dem Original-Tokenizer. Ein Token ist nicht zwingend ein ganzes Wort.
Die Positionen zählen Tokens ab 0, nicht Wörter oder Buchstaben. Es werden keine Sondertokens automatisch ergänzt; das Chat-Beispiel enthält sie ausdrücklich.
Hier erscheinen die trainierten Vektoren.
Die Tokenisierung funktioniert bereits mit einer tokenizer.json. Für die folgenden Farbstreifen fehlen noch die Originalgewichte. Lade den Checkpoint-Export, um den ganzen Weg bis zur LayerNorm zu sehen.
Es werden keine Zufallswerte oder Ersatz-Embeddings angezeigt.
Wähle ein Token oder klicke in einen Farbstreifen, um seine Zahlen unten zu untersuchen.
Das Token-Embedding E[ID]
Die ID wählt eine ganze Zeile aus tok_emb.weight. Dasselbe Token hat an jeder Position denselben Ausgangsvektor. Einzelnen Dimensionen sind hier keine festen Begriffe wie „Farbe“ oder „Bedeutung“ zugewiesen.
Das Positions-Embedding P[Position]
GuppyLM nutzt gelernte Positions-Embeddings aus pos_emb.weight, keine Sinus-/Kosinusformel. An Position 0 wird Zeile 0 gelesen, an Position 1 Zeile 1 usw. Die Positionsvektoren hängen von der Position ab, nicht von der Token-ID.
Token + Position
Komponentenweise Addition: x[t, d] = E[IDₜ, d] + P[t, d]. Die Dimension bleibt erhalten. Wir rechnen wie bei modell.eval(): Das Dropout nach der Addition ist ausgeschaltet. Diese Summe geht auch unverändert in den ersten Residualpfad.
Die erste LayerNorm
Pro Token über alle Modelldimensionen normalisieren, danach trainierte Skalierung γ und Verschiebung β anwenden.
Hier wird blocks.0.norm1 aus dem Checkpoint verwendet. Ihr Ausgang geht zu den Q/K/V-Projektionen von Block 1. γ und β sind trainiert: Der Ausgang muss daher weder Mittelwert 0 noch Varianz 1 haben.