Gesprochene Zusammenfassung — drücke auf Play zum Mitlesen: die gesprochene Zeile bleibt oben.
Der 100% interpretierbare Next-Token-Generator
Schreib eine Nachricht
Vor langer Zeit spielten meine Freunde und ich dieses Spiel, bei dem man sein Handy schnappte und eine Nachricht an einen Freund nur mit den empfohlenen nächsten Wörtern verfasste. Vielleicht hast du das auch gemacht.
Hier ist ein Simulator, der auf ein bisschen Inhalt „trainiert" wurde. Probier es aus!
hey weiß jemand wie man den build repariert
ich denke |
das wir ich
↻ von vorne beginnen
Wir sprachen darüber, als wäre es ein „Mich-Bot". Wir wussten, dass es Wörter basierend auf unseren individuellen Nutzungsmustern empfahl, und wir konnten unsere Stimmen in unseren personalisierten Empfehlungen sehen.
Damals waren wir glücklich, es als Tech-Magie abzutun. Ich glaube nicht, dass wir realisierten, wie einfach der Algorithmus sein könnte.
Lies weiter, wenn du einen mit mir bauen möchtest :)
Dein Modell „trainieren"
Lass uns auf einer Handvoll Nachrichten trainieren. Alles, was wir tun müssen, ist die Verbindungen zwischen Wörtern zu zählen. Lass uns das eine Nachricht nach der anderen machen.
\+ Nachricht 1 hinzufügen
Die Übergansmatrix
Füge oben Nachrichten hinzu, um die Matrix zu erstellen.
Diese fertige Karte der Verbindungen zwischen Wörtern wird Häufigkeitstabelle genannt. Normalisiere jede Zeile und du erhältst eine Wahrscheinlichkeitsverteilung dessen, was als nächstes kommt.
Der Akt, ein nächstes Wort basierend auf dem auszuwählen, was du bisher hast, wird Sampling genannt. Wir verwenden denselben Begriff für diesen Prozess mit modernen Sprachmodellen wie Claude.
Mach etwas Sampling
Verwende dieselbe Matrix basierend auf 5 Texten und spiel unser Spiel mit mehr Informationen. Wir zeigen dir die Wahrscheinlichkeiten.
↻ von vorne beginnen
Die hervorgehobene Zeile ist dein aktueller Kontext. Wähle ein Wort aus den verfügbaren Optionen, um fortzufahren.
Skaliere es hoch
Fünf Nachrichten gaben uns eine winzige Matrix und eine Handvoll Vorhersagen. Was passiert mit mehr Daten?
\+ 1 Nachricht \+ 10 \+ 50 Alle 222
5 Nachrichten
17 einzigartige Wörter
13 Kontexte
24 Übergänge
2 maximale Optionen
Nach :
Die Regler
Als du sampltest, konntest du Wahrscheinlichkeiten sehen, aber du hast auch deinen Instinkten vertraut, welche Wörter sich „richtig" anfühlten.
Wenn du Code schreiben müsstest, um diese Entscheidungen zu treffen, anstatt auf dein Bauchgefühl zu hören, welche codierte Regel denkst du würde das beste Ergebnis erzeugen?
Wähle immer das Wort mit der höchsten Wahrscheinlichkeit Wähle halbzufällig, gemäß Wahrscheinlichkeiten Wähle gemäß Wahrscheinlichkeiten, aber verstärke auch die wahrscheinlichsten Optionen Ignoriere alles unter einem bestimmten Wahrscheinlichkeitsschwellenwert Berücksichtige nur die Top-N-Optionen Goblin-Modus — ignoriere die Wahrscheinlichkeiten und wähle etwas Zufälliges
Zeig mir die Regler
Großartig. Spiel mit den Reglern unten, um zu sehen, wie Sampling-Parameter die Entscheidungen eines Sprachmodells beeinflussen. Dann überprüfe, wie deine Intuitionen sich abgebildet haben.
Entwickler verwenden Parameter wie temperature und tail trimming, um das Sampling nach der Wahrscheinlichkeitsgenerierung zu verbessern.
Nach „denke":
Temperature 1. 0
fokussiertZufällig
Sampling treu aus der Verteilung.
Tail trimming
Entferne unwahrscheinliche Wörter vollständig vor dem Sampling.
Keine Top-k Top-p
Top-Wörter 3
Nur die 3 wahrscheinlichsten Wörter überleben.
Wahrscheinlichkeitsmasse 0,9
Behalte die kleinste Menge von Wörtern, deren Wahrscheinlichkeiten sich zu 90% summieren.
Im Gegensatz zu top-k passt sich dies an die Sicherheit an — wenn das Modell sicher ist, überleben weniger Wörter. Wenn es unsicher ist, überleben mehr.
Generieren zurücksetzen
Wenn du dich früher entschieden hast, hast du intuitiv einen dieser Ansätze gewählt.
Wie hat sich mein Instinkt auf diese Parameter abgebildet?
Die Brücke
Die Sampling-Strategien, die du gerade verwendet hast, sind mehr oder weniger die gleichen Sampling-Einschränkungen, die Entwickler an Claude übergeben. Für LLMs unterscheiden sich ein paar Dinge.
Markov-Kette
LLM
1 Lese Kontext
letztes Wort: „denke"
1 Lese Kontext
das gesamte bisherige Gespräch
2 Berechne Verteilung
schaue eine Zeile in einer Tabelle nach
2 Berechne Verteilung
Forward Pass durch Milliarden von Parametern — Attention, Embeddings, Feedforward-Schichten, Residualverbindungen, Layer Norms...
3 Sample nächstes Token
das 32% der 16% ich 11%
3 Sample nächstes Token gleicher Prozess
das 32% der 16% ich 11%
Das Markov-Tabellen-Lookup ist eine wirklich einfache und erklärbare Operation. Ein Forward Pass durch ein neuronales Netzwerk ist ziemlich viel komplexer. Aber in beiden Fällen ist das Ergebnis das gleiche: eine Wahrscheinlichkeitsverteilung wahrscheinlicher nächster Wörter oder Tokens.
Während Sampling das gleiche ist, ist Training radikal unterschiedlich. Die exponentielle Wand von vorher (Vokabular^N Zeilen) gilt nicht. LLMs tauschen die Erklärbarkeit des einfachen Zählens von Wörtern gegen viel mehr Kontext und viel größere Fähigkeiten ein.
100 Jahre alte Technologie
„Ist das echte Technologie? " Großartig, dass du fragst, Leser.
Markov veröffentlichte diese Idee 1906. Ein Jahrhundert später im Jahr 2010 trieben n-gram-Modelle wie dieses die Next-Word-Vorhersage auf deinem Handy an (SwiftKey, dann Apples QuickType). Um 2015 begannen neuronale Netzwerke — zuerst RNNs, dann Transformer 2017 — den Tabellen-Lookup-Ansatz durch eine gelernte Funktion zu ersetzen, und der Rest ist... nun ja, das ist das, woran wir jetzt arbeiten.