Token-Vektoren und Ähnlichkeit

Der Vektor eines Tokens ist ein Protokoll seiner Gesellschaft. Das funktioniert gut bei Wörtern mit spezifischer Gesellschaft und scheitert bei Wörtern, die neben allem stehen.

Interaktive Simulation wird geladen...

Diese Vektoren zählen Gesellschaft; die eines Transformers werden gelernt 🖖

Jede Zahl hier entsteht daraus, zu zählen, wie oft zwei Token innerhalb von vier Positionen voneinander auftreten, umgerechnet in einen Wert, der groß ist, wenn die Paarung häufiger vorkommt als der Zufall erwarten ließe. Das ist ein echtes Verfahren mit einem echten Namen, und es ist nicht das, was in einem Sprachmodell steckt. Die Embeddings eines Transformers beginnen zufällig und werden im Training so lange angepasst, bis sie beim Vorhersagen des nächsten Tokens helfen; sie kodieren am Ende also, was das Vorhersagen erleichtert hat — auch Dinge, die kein Zählverfahren finden würde. Was den Vergleich übersteht, ist die Form: Ein Token wird zu einer Richtung, und Nähe ist der Winkel zwischen Richtungen.

Ein naher Nachbar ist kein Synonym 🖖

Die Nachbarn von ␣Earth sind ␣planet, ␣Sun, ␣Jupiter und ␣Moon — keiner davon bedeutet Erde. Die von ␣star sind ␣yellow, ␣white und ␣red, also seine Eigenschaften und nicht seine Synonyme. Genau das misst distributionelle Ähnlichkeit: nicht, was ein Token bedeutet, sondern wovon der Korpus sprach, als er es benutzte. Zwei Token erreichen hohe Werte, wenn sie in derselben Gesellschaft besprochen werden — und zusammen besprochen zu werden ist eine viel weitere Beziehung als dasselbe zu bedeuten.

Hier gibt es keine Karte, und das ist kein Versäumnis 🖖

Jeder Vektor hat eine Dimension für jedes andere Token, neben dem er stehen kann — 2.742 Stück — und nichts auf dieser Seite reduziert das auf zwei. Der Kosinus braucht es nicht: Ein Winkel zwischen zwei Richtungen ist in beliebig vielen Dimensionen definiert, und das Gitter oben zeigt sämtliche Winkelpaare direkt. Die flachen Streudiagramme, die du anderswo gesehen hast, sind eine Projektion, gewählt nach Lesbarkeit und nicht nach Genauigkeit; zwei Token, die dort benachbart aussehen, können in dem Raum, in dem die Zahlen wirklich leben, weit auseinander liegen.

Aufgabe vollständig gelöst

  1. Erde und Sonne bei 0,299 über 13 Treffen 6 Schritte

    Das Panel bewertet ␣Earth im Vergleich zu ␣Sun mit 0,299. Earth kommt im Korpus 230-mal vor und Sun 150-mal, verteilt auf 385.078 Tokens, die zusammen 2.770.646 Kontext-Slots eröffnen, und die beiden stehen 13-mal innerhalb von 4 Tokens zueinander. Berechnen Sie, wie viel von den 0,299 diese 13 Zusammentreffen ausmachen.

    1. Eine Koordinate pro Kontextwort, und die Vektoren werden auf die Länge 1 skaliert, bevor irgendetwas verglichen wird. Diese Skalierung macht die Kosinus-Ähnlichkeit zu einem einfachen Skalarprodukt: 0,299 ist eine Summe von Produkten, ein Term für jedes Kontextwort, das die beiden Tokens gemeinsam haben.

    2. Eine Koordinate ist ein Überraschungsverhältnis, keine Anzahl — wie oft das Paar tatsächlich zusammen auftritt, verglichen damit, wie oft ein durchmischtes Korpus die beiden zusammenbringen würde. Negative Überraschung wird auf 0 gekappt, sodass der Vektor erfasst, wovon ein Token angezogen wird, und keine Möglichkeit hat zu erfassen, was es meidet.

    3. Zunächst der Zufall. Earth besetzt 230 der 385.078 Positionen und Sun 150, sodass man über alle 2.770.646 Slots hinweg das Paar 0,6446-mal erwarten würde — weniger als 1 Vorkommen im gesamten Korpus.

    4. Sie treten 13-mal auf, das 20,17-Fache dessen, was der Zufall vorhersagt, und die Koordinate ist der Logarithmus dieses Verhältnisses: 3,004. Beide Vektoren erhalten denselben Wert, da die Anzahl und die beiden Häufigkeiten in beiden Richtungen gleich gelesen werden.

    5. Nun zur Skalierung. Der Vektor von Earth hat 419 positive Koordinaten und eine Länge von 30,381; der von Sun hat 302 und eine Länge von 29,144. Teilt man 3,004 durch den jeweiligen Wert, ergeben sich die Einheitskoordinaten 0,0989 und 0,1031.

    6. Ihr Produkt, 0,0102, ist der gesamte Beitrag dieser 13 Zusammentreffen. Earth und Sun teilen sich insgesamt 105 Kontextwörter; addiert man alle 105 Produkte, erhält man 0,2992, was das Werkzeug auf 0,299 rundet — die direkte Evidenz liefert also 3,4 % des Werts.

    Antwort

    Das Werkzeug gibt 0,299 aus, und die Male, in denen diese beiden Wörter tatsächlich aufeinandertreffen, machen 0,0102 davon aus. Der Rest ist Gesellschaft: 105 gemeinsame Kontextwörter von den 2.742 Tokens, die überhaupt einen Vektor besitzen. Daraus folgen zwei Dinge. Da das Kappen jede negative Koordinate entfernt, ist jedes der 105 Produkte positiv, sodass die Skala von 0 bis 1 statt von -1 bis 1 reicht — ein Paar ohne Gemeinsamkeiten erzielt den Wert 0, nicht das Gegenteil von 1. Als Winkel gelesen entspricht 0,299 einem Winkel von 72,6°, womit Earth und Sun 17,4° davon entfernt sind, gar nichts gemeinsam zu haben. Und die Rangfolge oberhalb des Werts ist feiner als die Evidenz darunter: ␣planet führt die Nachbarliste von Earth mit 0,307 an, mit 0,008 Vorsprung vor Sun, während die einzelne Koordinate für Earth und Sun allein schon 0,0102 wert ist. Ein einziges Kontextwort genügt, um zu ändern, welches Token als das nächstgelegene bezeichnet wird.

Lernpfad

Wie ein LLM das nächste Wort wählt

Führt zu Temperatur & Sampling

Quellen (2)

Beispielaufgaben

  • Gleiches Thema - ␣Earth und ␣Sun erreichen 0,299. Earths nächster Nachbar ist ␣planet mit 0,307 — die Astronomie-Token stehen zusammen, weil der Korpus sie zusammen behandelt.
  • Fast Synonyme - ␣speed und ␣velocity erreichen 0,282, und ␣speed ist unter allen 2742 Token der nächste Nachbar von ␣velocity. Austauschbar gebrauchte Wörter halten austauschbare Gesellschaft.
  • Verschiedene Themen - ␣Earth und ␣velocity erreichen 0,122 — weniger als die Hälfte des Werts von Earth–Sun. Andere Themen, andere Nachbarn.
  • Zwei häufige Wörter - ␣the und ␣is erreichen 0,505, das höchste Paar hier und höher als ␣Earth und ␣Sun mit 0,299. Keines teilt mit dem anderen irgendeine Bedeutung; beide stehen einfach neben allem.
  • Stern und Licht - ␣star und ␣light erreichen 0,262, und die Nachbarn von star sind ␣yellow, ␣white und ␣red — der Korpus spricht über Sterne über die Farbe.