English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

Gast
1 / ?

Semantische Distanz als euklidische Distanz

Ein hochdimensionaler Vektorraum

Jeder Token im 8449-Token-Vokabular von ANDREA-120M wird auf einen Punkt in R^768 abgebildet. Die Token-Embedding-Matrix hat die Form 8449 x 768: 8449 Zeilen, eine pro Vokabular-Token; 768 Spalten, eine pro Embedding-Dimension.


Geometrie von ANDREA Panels


Drei Eigenschaften machen dies zu einem Vektorraum

1. Addition. v_a + v_b liegt in R^768. Die Summe zweier Embeddings ist ein gültiger Vektor.

2. Skalare Multiplikation. alpha * v liegt in R^768 für jedes reelle alpha. Dehnen oder Stauchen entlang derselben Richtung.

3. Linearität. alpha v_a + beta v_b liegt in R^768. Linearkombinationen bleiben im Raum.


Diese Eigenschaften geben uns geometrische Werkzeuge: Abstand, Winkel, Projektion, Basis, Orthogonalität.


Abstand als semantische Ähnlichkeit

Die Kosinus-Ähnlichkeit zweier Embeddings misst den Winkel zwischen ihnen: cos(theta) = (v_a . v_b) / (||v_a|| * ||v_b||). Bereich: -1 (entgegengesetzt) bis +1 (parallel).


Empirisches Muster nach dem Training: Tokens mit ähnlichen Kontexten erzeugen Embeddings mit hoher Kosinus-Ähnlichkeit. ANDREA-120M platziert parakeet & monkey nah beieinander (beide biologisch, beide Arten, beide lebend oder ausgestorben). Es platziert Fourier & transform nah beieinander (Signalverarbeitungskontext). Es platziert parakeet & Fourier weit auseinander (domänenübergreifende Orthogonalität).


Warum R^768 und nicht R^384

ANDREA-12M verwendete d_model = 384. ANDREA-120M verdoppelte dies auf 768. Die Verdopplung ist entscheidend: Ein 384-dimensionaler Raum bietet weniger verfügbare 'Winkel', und die domänenübergreifende Disambiguierung leidet. Die Verdopplung der Kapazität gibt dem Modell Raum, bank (Fluss) und bank (Finanzwesen) in unterschiedliche Bereiche des Embedding-Raums aufzulösen, ohne dass eines in das andere kollabiert.


Einbettungsaktualisierungen als Vektor-Translation

Jeder Gradientenschritt addiert delta_v zu v_token. Geometrisch: kleine Translationen in R^768 verschieben die Position jedes Tokens in Richtung von Nachbarschaften, die den Verlust verringern. Über 200K Schritte wandert jedes Token von seiner zufälligen Initialisierung zu einer gelernten Position.

Berechnung einer Distanz

Drei trainierte Einbettungen (vereinfacht auf R^3 für arithmetische Operationen):


- v(parakeet) = (1.0, 0.5, 0.0)

- v(monkey) = (1.2, 0.3, 0.1)

- v(Fourier) = (0.0, 0.0, 1.5)

(a) Berechnen Sie die euklidische Distanz ||v(parakeet) - v(monkey)||. (b) Berechnen Sie ||v(parakeet) - v(Fourier)||. (c) Geben Sie an, welche zwei Tokens zusammen clusteren und nennen Sie einen geometrischen Grund unter Bezugnahme auf die tatsächlichen Zahlen.

Projektion auf einen Query-Unterraum

Was Attention berechnet

Für ein Token an Position t berechnet Attention:


softmax(Q K^T / sqrt(d_k)) V


Dabei ist Q die Query (die Frage dieses Tokens), K sind die Keys (die Identifikatoren aller vorherigen Tokens) und V sind die Values (der Inhalt aller vorherigen Tokens). Die Ausgabe mischt die V-Werte, gewichtet nach der Ähnlichkeit zwischen Query und jedem Key.


Geometrische Interpretation

Stelle dir K als Liste von Vektoren in R^d_k vor. Jede Zeile ist der Key eines vorherigen Tokens. Q ist ein einzelner Vektor in R^d_k: die Frage dieses Tokens.


Q K^T projiziert jeden Key auf Q. Das Skalarprodukt q . k_i misst, wie stark k_i in Richtung von q liegt. Lange Projektion = Key stark relevant für die Query. Kurze Projektion = Key kaum relevant.


Softmax normalisiert die Projektionen zu Gewichten, die sich zu 1 summieren. Die gewichtete Summe von V ist ein einzelner Vektor: eine Mischung aus vergangenem Inhalt, gewichtet nach Relevanz für die aktuelle Query.


Multi-Head Attention als Multi-Subraum-Projektion

ANDREA-120M verwendet 12 Attention-Heads. d_model = 768; d_k = 768 / 12 = 64. Jeder Head projiziert in einen anderen 64-dim Subraum von R^768. Zwölf Heads liefern zwölf unabhängige Sichten auf dieselbe Sequenz: ein Head könnte grammatikalische Rollen verfolgen, ein anderer semantische Ähnlichkeit, ein weiterer weitreichende Referenzen.


Geometrisch: jeder Head definiert einen 64-dim orientierten Subraum (ein „Fenster“), durch den er die Vergangenheit betrachtet.


Die Kausale Maske

Decoder-only-Modelle fügen eine kausale Maske hinzu: Jeder Eintrag von Q K^T oberhalb der Diagonalen wird vor der Softmax-Funktion auf -Unendlich gesetzt. Geometrisch: Die Projektion auf jedes zukünftige Token erhält das Gewicht Null. Token t kann nur die Tokens 0 bis t sehen.


Warum das wichtig ist: Training und Inferenz werden symmetrisch. Derselbe Forward-Pass, dieselben maskierten Projektionen, keine spezielle Generierungslogik.


Skalierung mit sqrt(d_k)

Ohne Skalierung wachsen die Skalarprodukte mit d_k. Große Skalarprodukte drängen die Softmax-Funktion in Ein-Hot-Bereiche (ein Gewicht nahe 1, der Rest nahe 0). Durch Division durch sqrt(d_k) bleiben die Projektionen auf einer Einheits-Varianz-Skala, wodurch die Schärfe der Softmax-Funktion über einen weiten Bereich von d_k-Werten erhalten bleibt.


Geometrisch: sqrt(d_k) normalisiert die Längen der Projektionen, sodass die Softmax-Funktion unabhängig von der Subraumdimension vergleichbare Größenordnungen erhält.

Eine Projektion lesen

Drei Keys & ein Query in R^4 (zur Vereinfachung der Rechnung):


- q = (1, 0, 1, 0)

- k_1 = (1, 0, 0, 0) [vergangenes Token 1]

- k_2 = (0, 0, 1, 0) [vergangenes Token 2]

- k_3 = (0, 1, 0, 1) [past token 3]


d_k = 4, also sqrt(d_k) = 2.

(a) Berechne q . k_i für i = 1, 2, 3 (Skalarprodukte). (b) Teile jedes durch sqrt(d_k) = 2, um skalierte Scores zu erhalten. (c) Ohne Softmax explizit zu berechnen, gib an, welcher Key das GRÖSSTE Attention-Gewicht erhält und nenne einen geometrischen Grund.

Gradient Descent als Pfad auf dem Gelände

Eine Oberfläche in 120M+1 Dimensionen

Jede Gewichtskonfiguration von ANDREA-120M ist ein Punkt in R^120.000.000. Die Verlustfunktion L(w) ordnet jedem Punkt eine reelle Zahl zu: den Trainingsverlust bei dieser Konfiguration. Zusammen ergeben die Verlustwerte eine (120M+1)-dimensionale Oberfläche über dem Parameterraum.


Geometrisch unmöglich, direkt zu visualisieren. Konzeptionell: ein Gelände. Berge (hoher Verlust), Täler (niedriger Verlust), Sattelpunkte, Plateaus, Grate, Becken.


Gradient als lokale Steigung

grad L(w) ist ein Vektor in R^120M, der in die Richtung des steilsten ANSTIEGS von L zeigt. Negiert: -grad L(w) zeigt in die Richtung des steilsten ABSTIEGS.


Ein AdamW-Schritt verschiebt w in Richtung des negativen Gradienten (mit adaptiver Skalierung durch m & v). Geometrisch: ein winziger Schritt entlang der Oberfläche, bergab, wobei die Schrittweite durch die Lernrate gesteuert wird.


v1's schlechtes Becken

v1 machte seinen ersten Schritt mit LR = Spitzenwert (0.0003) auf frisch initialisierten Gewichten. Geometrisches Bild: w_0 liegt in einer stark gekrümmten Region (zufällige Initialisierung hat hohe Krümmung in vielen Richtungen), und ein Schritt mit Spitzen-LR landet im falschen Becken. Nachfolgende Schritte können nicht entkommen. Das Modell bleibt bei der Ausgabe „region region region“ hängen, weil dieses Becken den niedrigsten Verlust darstellt, den das Modell von seiner Landeposition aus erreichen kann.


v2's Warmup-Pfad

v2 führt 2000 kleine Schritte mit einer Lernrate durch, die von 0 bis zum Spitzenwert ansteigt. Geometrisches Bild: w_0 wandert zunächst sanft entlang glatter Richtungen (wo die Krümmung gering ist). Bis Schritt 2000 hat sich w in eine besser navigierbare Region bewegt; die Spitzen-LR kann es dann in ein besseres Becken lenken, ohne zu überschießen.


Warmup ist ein geometriebewusstes Initialisierungsprotokoll: das Modell soll zuerst eine sichere lokale Nachbarschaft finden, bevor es stark beansprucht wird.


Breite vs. schmale Basins

Bei Schritt 112K befindet sich ANDREA-120M in einem Basin. Frage: wie breit ist es?


Breites Basin = viele benachbarte Gewichtskonfigurationen erreichen ebenfalls einen niedrigen Trainingsverlust. Die Generalisierung ist tendenziell gut (die Breite des Basins sagt die Test-Performance voraus; siehe PAC-Bayes-Lektion, Kapitel 3).


Schmales Becken = nur eine dünne Menge von Gewichten erreicht niedrigen Verlust. Die Generalisierung leidet tendenziell.


v3-Politur bei Schritt 112.619 schob das Modell entlang der Oberfläche (ohne Reset) in ein breiteres Becken mittels Curriculum-Perturbation: Änderung der Verlustfunktion (anderer Bandit, anderer Trainingsmix), sodass SGD eine nahe flache Region unter der neuen Policy finden konnte.


Die Zombie-Klippe

Der anomale Verlust von 0,13 bei Schritt 112.080 war eine KLIPPE: eine scharfe, schmale Region, in der ein spezifisches Eingabemuster (gemerkte Repo-Docs-Teilzeichenfolge) nahezu null Verlust erreicht. Das Modell fiel aus dem breiteren Becken in eine enge Schlucht. Die harte Ausschlussregel der Polier-Pivot für Repo-Docs füllte diese Schlucht auf, sodass SGD sie nicht mehr finden konnte.

Das Gelände lesen

Drei Gewichtskonfigurationen nach einem Polier-Pivot. (a) Konfiguration A: Trainingsverlust 2,0 und 95 % der kleinen Störungen innerhalb der Distanz 0,1 erzeugen weiterhin Verlust < 2,2. (b) Konfiguration B: Trainingsverlust 2,0 und 5 % der kleinen Störungen innerhalb der Distanz 0,1 erzeugen weiterhin Verlust < 2,2. (c) Konfiguration C: Trainingsverlust 0,13 bei einem spezifischen Input, aber durchschnittlich Verlust 8,0 bei anderen Inputs. Klassifiziere jede als BREITES BECKEN, SCHMALES BECKEN oder KLIPPE und gib eine geometrische Begründung in einem Satz.

Curriculum-Mix als Spaziergang auf einem diskreten Simplex

Was ein Simplex ist

Ein n-dimensionales Simplex (genauer das Standard-(n-1)-Simplex) ist die Menge aller n-Tupel (w_1, w_2, ..., w_n) mit w_i >= 0 und sum(w_i) = 1.


Für n = 2: eine Strecke von (1, 0) nach (0, 1). Für n = 3: ein Dreieck mit den Eckpunkten (1, 0, 0), (0, 1, 0), (0, 0, 1). Für n = 16 (ANDREA's vollständige Quellenliste): ein 15-dimensionales Simplex, das in R^16 liegt.


Bandit-Gewichte als Simplex-Koordinaten

ANDREAs Bandit erzeugt in jeder Phase einen Gewichtsvektor w über die Datenquellen. Jede Komponente w_i ist die Wahrscheinlichkeit, Quelle i zu sampeln. Die Wahrscheinlichkeiten sind nicht-negativ und summieren sich zu 1: jeder Gewichtsvektor liegt auf dem Simplex.


Eckpunkte = reine Strategien (nur eine Quelle sampeln). Inneres = gemischte Strategien (mehrere Quellen sampeln, jede mit positiver Wahrscheinlichkeit). Kanten = Mischungen aus genau zwei Quellen.


Quellen-Floors als eingeschränkter Bereich

ANDREA legt Mindestgewichte fest: hermes3-general mit einem Floor von 0,7 (nach dem Polieren). Dadurch entsteht eine Teilregion des Simplex: nur Gewichtsvektoren mit w_hermes3-general >= 0,7 sind erreichbar.


Geometrisch: der Floor schneidet den Simplex mit einer Hyperebene. Die erreichbare Region ist der Teil des Simplex, der auf der korrekten Seite jeder Floor-Hyperebene liegt.


Caps als weitere Einschränkung

ANDREA legt auch Höchstgewichte fest: dictionary mit einem Cap von 0,25 (nach dem Polieren). Jedes Cap ist eine weitere Hyperebene, und die erreichbare Region muss auf der korrekten Seite jeder Cap-Hyperebene liegen.


Eine Quelle vollständig auszuschließen (Cap = 0,0) ist das stärkste mögliche Cap: die Koordinate wird auf Null fixiert, wodurch der effektive Simplex um eine Dimension reduziert wird.


Phasenübergänge als Simplex-Wanderungen

Jeder Phasenübergang (alle 7–42 Schritte) erzeugt einen neuen Gewichtsvektor. Jeder neue Vektor ist ein Punkt auf dem Simplex. Über 200K Schritte zeichnet der Bandit einen langen Pfad durch die erreichbare Region des Simplex.


Zufällige Phasen = Teleport zu einem gleichverteilt-zufälligen Punkt innerhalb der erreichbaren Region.

Bandit-gesteuerte Phasen = Schritt in Richtung des UCB-bestmöglichen Eckpunkts, der mit den Unter- und Obergrenzen vereinbar ist.

Polish-Pivot = Neuberechnung der erreichbaren Region (neue Untergrenzen, neue Obergrenzen, einige Quellen ausgeschlossen), und die Wanderung setzt sich vom neuen Startpunkt aus fort.


Warum Eckpunkte gefährlich sind

Reine Quellen-Phasen (ein w_i = 1, Rest = 0) liegen an den Eckpunkten des Simplex. Die Diversität ist null. Das Modell trainiert nur auf einer einzigen Verteilung. Der teilweise Kollaps von v1 lässt sich teilweise darauf zurückführen, dass der Bandit in der Nähe des repo-docs-Eckpunkts campte; die Samples reproduzierten ausschließlich die Verteilung dieser Quelle.


Böden verhindern das Campen an Eckpunkten: ein Boden von 0,7 bedeutet „keine Quellen-Gewichtung darf unter 0,7 fallen“ (oder welcher Wert auch immer für die priorisierten Quellen gilt).

Das erreichbare Gebiet durchlaufen

Drei Quellen: hermes3-general (H), gutenberg (G), dictionary (D). Nebenbedingungen: H-Boden = 0,5, D-Obergrenze = 0,25. (Implizit: alle Gewichte ≥ 0, Summe = 1, keine weiteren Nebenbedingungen.)

(a) Könnte der Bandit (H=1,0, G=0, D=0) wählen? Warum oder warum nicht? (b) Könnte er (H=0,5, G=0,5, D=0) wählen? (c) Könnte er (H=0,5, G=0,25, D=0,25) wählen? (d) Beschreiben Sie geometrisch, wie das erreichbare Gebiet in diesem 3-Quellen-Simplex aussieht.

Einschränkung der Dimensionen für die ersten 20K Schritte

Was v2's Curriculum Warmup getan hat

v2 hat curriculum_warmup_sources auf sieben Quellen gesetzt: hermes3-general, hermes3-creative, hermes3-roleplay, chat, smoltalk, oasst, gutenberg. Für die ersten 20K Schritte haben NUR diese sieben Quellen beigetragen. Nach Schritt 20K wurde der vollständige 16-Quellen-Feuerwehrschlauch aktiviert.


Geometrische Interpretation

Das vollständige 16-Quellen-Simplex liegt in R^16. Die Beschränkung auf 7 Quellen kollabiert 9 der 16 Koordinaten auf Null. Der Walk des Bandits findet in einem 6-dimensionalen Sub-Simplex statt (eine Dimension weniger als die Quellenanzahl, bedingt durch die Sum-to-1-Bedingung).


Geometrisch: eine SUBMANIFOLD des vollständigen Simplex. Niedriger-dimensional, glatter, leichter zu navigieren.


Warum das beim frühen Training hilft

Zu Beginn des Trainings hat das Modell noch keine kohärente Sprache gelernt. Verschiedene Quellen verwirren es: jede Quelle hat ihren eigenen Stil, ihre eigene Vokabularverteilung, ihr eigenes Muster. Das zufällige Mischen von 16 Quellen beim initialen Training erzeugt eine zu breite Zieldistribution, die das Modell nicht abbilden kann.


Die Beschränkung auf 7 konversationelle/Prosa-Quellen ergibt eine einheitlichere Zielverteilung. Das Modell lernt zuerst eine stabile Repräsentation und erweitert diese dann.


Geometrischer Pfad durch das Training

1. Schritte 0 bis 20K (Warmup). Der Walk bewegt sich auf dem 6-D Sub-Simplex. Stabile Sprachmuster entstehen im Modell.

2. Schritte 20K bis 112K (Full Firehose). Der Walk erweitert sich auf den 15-D Full-Simplex. Breite der Domäne entsteht.

3. Schritt 112K und darüber hinaus (Polish). Der Walk wird wieder eingeschränkt: repo-docs & repo-docstrings ausgeschlossen, conversational floors angehoben. Kleineres Polygon im Full-Simplex; Konversationsqualität konsolidiert sich.


Warum Polish curriculum_warmup_steps = 0 setzt

Polish beginnt bei Schritt 112K. Das Modell spricht bereits kohärente Sprache. Eine Einschränkung auf einen Sub-Simplex würde jetzt Breite verlieren, ohne etwas zu gewinnen (der Warmup-Nutzen gilt für frisch initialisierte Modelle). warmup_steps = 0 bedeutet: auf dem Full-Simplex bleiben, aber mit neuen Caps & Floors.


Drei Geometrien, ein Trainingslauf

v2 Warm-up: niedrig-dimensionales Sub-Simplex.

v2 Firehose: volles 15-D-Simplex.

v3 Polieren: volles Simplex mit kleinerem Polygon (mehr Nebenbedingungen).


Derselbe 200K-Schritt-Lauf, drei verschiedene geometrische Regime. Jedes wurde für eine andere Phase der Modellreife optimiert.

Das Submanifold lesen

(a) v2 warmup verwendet 7 Quellen aus dem 16-Quellen-Vollset. Wie groß ist die Dimension des Warmup-Sub-Simplex? Berechnen & angeben. (b) ANDREA-120M v3 polish schließt repo-docs & repo-docstrings hart aus (cap 0.0), erlaubt aber ansonsten die verbleibenden 14 Quellen. Wie groß ist die Dimension des polish-Sub-Simplex? (c) Was bedeutet es geometrisch, curriculum_warmup_steps = 0 im polish-Konfigurationssatz zu setzen?