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

un

Gast
1 / ?

Was ein Tokenizer frisst, wird zu dem, was er weiß

Tokenizer-Diät: Eine Definition

Ein Harris-Tokenizer trainiert auf einer Korpusprobe. Er führt eine distributionelle Analyse über diese Probe durch, wählt N Segmente aus, die am stärksten wiederkehren, & schreibt sie in ein Vokabular. Nach dem Training werden diese N Segmente zu einem festen Alphabet, das ein Sprachmodell für alles verwendet: Training, Inferenz, jeden Input, jeden Output.


Tokenizer-Diät = eine Textprobe, auf der ein Tokenizer trainiert.


Trainingsdiät = ein Korpus, auf dem ein Sprachmodell trainiert wird.


Wenn sich zwei Diäten unterscheiden, lernt ein Tokenizer Segmente, die auf Text abgestimmt sind, den ein Modell nie sehen wird. Embedding-Kapazität (ein Slot pro Vokabel-Eintrag) wird für Segmente ausgegeben, die während des Trainings keine Belohnung einbringen.


Tokenizer-Diät & Sättigung


ANDREA-12M's Fehler

ANDREA-12M hat seinen Harris-Tokenizer auf einem rohen Kopf von megachat-v8.txt trainiert. Dieser Kopf enthielt Code-Beispiele & Tool-Call-Daten. Der Trainingscurriculum jedoch schloss Code & Tool-Calls aus; ANDREA-12M sah nur konversationellen Text.


Ergebnis: Ein Tokenizer lernte Segmente aus Python-Keywords, JSON-Klammern, Shell-Flags. Ein Modell, das auf Wörterbucheinträgen & Dialog trainiert wurde. Nur 36,4 % der Segmente überschnitten sich mit einer curriculum-gewichteten Stichprobe. Die verbleibenden 63,6 % der Vokabularplätze wurden Segmenten zugewiesen, die das Modell zur Trainingszeit nie begegnen würde.


Warum das wichtig ist

Jeder Vokabulaireintrag verbraucht Embedding-Parameter: eine Zeile einer Embedding-Matrix mit der Form V × d_model (behandelt in Aktivität 4). Bei V = 4353 & d_model = 384 kostet jeder Vokabularplatz 384 Floats. 63,6 % Verschwendung verschwendet 63,6 % einer Embedding-Matrix an Daten, die das Modell nie sieht.

Nennen Sie eine Diet-Regel

Erklären Sie eine Tokenizer-Diet-Regel in einem Satz. Beschreiben Sie dann einen Worst Case: Ein Forscher trainiert einen Harris-Tokenizer auf Wikipedia (formaler Prosa, Zitationen), trainiert aber ein Modell auf Twitter (Slang, Emoji, Hashtags). Was geht schief?

Wie groß sollte N werden

Ein Vocab-Wissenschafts-Sweep

ANDREA-120M führte ein Vocab-Wissenschafts-Experiment durch: Trainiere Harris-Tokenizers bei verschiedenen N-Werten (angeforderte Segmente) auf demselben 1,25B-Zeichen-Feuerwehrschlauch-Corpus. Miss, wie viele Segmente ein Tokenizer tatsächlich findet. Plotte die Ergebnisse.


Gewünschtes NGefundene SegmenteStatus
2.0482.048Ungesättigt (Wachstumsraum)
4.0964.096Ungesättigt
8.1928.192Sättigungspunkt
16.38413.106Korpus erschöpft

Was Sättigung bedeutet

Bei kleinem N hat ein Korpus viele wiederkehrende Muster; ein Tokenizer füllt jeden Slot, den er verlangt. Bei großem N gehen einem Tokenizer die statistisch bedeutsamen Grenzen aus. Ein Korpus mit 1,25 Milliarden Zeichen enthält etwa 13.106 unterschiedliche morphemenförmige Segmente oberhalb einer Frequenzschwelle. Bei 16.384 gefundene Segmente: 13.106; die restlichen 3.278 Slots werden aufgefüllt oder leer gelassen.


Sättigung: der Punkt, an dem gefordertes N = gefundenes N. Jenseits der Sättigung kann ein Tokenizer keine weiteren Segmente entdecken, ohne die Qualität zu verdünnen (Frequenzschwellen senken & Rauschen akzeptieren).


Sweet Spot bei 8192

ANDREA-120M wählte N = 8192. Eine Begründung:


- Unter 8192 (z. B. 4096): Vokabular erfasst gängige Morpheme unzureichend; Sequenzen zerfallen in mehr Token; Durchsatz sinkt.

- Bei 8192: Jeder Segment-Slot bildet ein reales, rekurrentes Muster in einem Korpus ab.

- Über 8192: Abnehmende Renditen; 13.106 < 16.384 bedeutet, dass Slots verschwendet werden.


Finales ANDREA-120M-Vokabular: 256 + 8192 + 1 = 8449 Tokens. Durchschnittliche Kompression: 5,91 UTF-8-Bytes pro Token, was bedeutet, dass jeder Token ~5,9 Bytes Rohtext ersetzt. Dieses Verhältnis bestimmt den effektiven Kontext eines Modells: Bei 1024 Tokens × 5,91 Bytes/Token liest ANDREA-120M ungefähr 6.050 Zeichen Kontext pro Forward-Pass.

Über oder unter Sättigung

Stellen Sie sich vor, ein Forscher betrachtet zwei N-Werte für ein zukünftiges ANDREA-Modell: N = 6144 (unter Sättigung) versus N = 12288 (über Sättigung, wobei die tatsächlichen gefundenen Segmente = 13106 weiterhin gilt, da der Korpus fest ist). Für jeden: (a) berechnen Sie die finale Vokabelgröße (256 + N + 1), & (b) geben Sie in einem Satz an, ob jede Einstellung Vokabelkapazität verschwendet, alle verfügbaren Signale erfasst oder untererfasst. Zeigen Sie Ihre Arbeit.

Woher die 63,6 % kommen

Zählen verschwendeter Slots

Der Tokenizer von ANDREA-12M wurde auf rohem megachat-v8.txt trainiert (4096 Segmente angefordert, gefunden). Ein Team hat eine curriculum-gewichtete Teilmenge gesampelt: ein Korpus, gewichtet nach der Häufigkeit, mit der jede Quelle von einem Banditen gezogen wurde. Sie haben eine Harris-Analyse auf dieser gewichteten Stichprobe erneut durchgeführt & gefragt: Wie viele der ursprünglichen 4096 Segmente erscheinen noch?


Ergebnis: 36,4 % Überlappung. 1.491 von 4.096 Segmenten stimmten mit der Curriculum-Gewichtung überein. Die verbleibenden 2.605 Segmente stammten aus Quellen, die das Modell ausgeschlossen hat.


63,6 % der Vokabelplätze wurden für Bytes zugewiesen, die das Modell nie gesehen hat.


Einbettungskosten

Jeder Vokabeleintrag belegt eine Zeile einer Einbettungsmatrix mit der Form (V, d_model). Für ANDREA-12M:


- V = 4353 (256 + 4096 + 1)

- d_model = 384

- Einbettungsparameter = V × d_model = 4353 × 384 = 1.671.552 Parameter


63,6 % dieser Parameter wurden für das konversationelle Training nicht genutzt. 1.063.107 Parameter zugewiesen, 0 Belohnungssignal. ANDREA-12M überlebt, weil 256 Basisbytes immer jeden Charakter abdecken; aber Kapazität pro Parameter fiel stark ab.


Wie ANDREA-120M es behoben hat

Der Tokenizer von ANDREA-120M wurde auf einem vollständigen Datenstrom (1,25 Mrd. Zeichen, 21 Quellen) bei Sättigung N = 8192 trainiert. Ein Trainingskorpus = derselbe Datenstrom. Diät-Alignment: 100 %. Ergebnisüberschneidung auf chat-gewichteteter Stichprobe: 36,5 %. (Hinweis: 36,5 % ist Überschneidung, keine Abdeckung; Chat allein ist eine Teilmenge des vollständigen Datenstroms, daher verhält sich diese Zahl anders als die 36,4 % von 12M.)


Effektive Kompression: 5,91 UTF-8-Bytes pro Token. Embedding-Matrix von ANDREA-120M: 8449 × 768 = 6.488.832 Parameter. Jeder Parameter erhält ein Belohnungssignal, weil jedes Segment auf Text abbildet, auf dem das Modell tatsächlich trainiert wird.

Abdeckung vs. Überschneidung

Der Tokenizer-Corpus von ANDREA-120M entspricht seinem Trainings-Corpus. Dennoch lag die „Segmentabdeckung auf chat-gewogener Stichprobe“ bei 36,5 %, ähnlich wie bei 12M mit 36,4 %. Warum ist 36,5 % für 120M kein Problem, während 36,4 % für 12M ein Problem war? Verwenden Sie einen Satz darüber, welcher Teilmenge welcher ist.

Warum 5,91 Bytes pro Token wichtig sind

Ein Kompressionsverhältnis

Durchschnittliche UTF-8-Bytes pro Token misst, wie viel Rohtext jeder Vokabel-Eintrag komprimiert. ANDREA-120M liegt bei 5,91. Ein Modell mit kürzeren Stücken (3 Bytes/Token) liest weniger Kontext pro Forward-Pass; ein Modell mit längeren Stücken (8 Bytes/Token) liest mehr, trainiert aber langsamer (jedes Stück braucht mehr Stichproben, um gut zu lernen).


Effektiver Kontext


MengeWert
Token-Kontextfenster1.024 Tokens
Durchschnittliche Bytes pro Token5,91
Effektiver Zeichenkontext1024 × 5,91 ≈ 6.050

Etwa 6.000 UTF-8-Zeichen passen in einen Forward-Pass von ANDREA-120M. Eine Seite dichter englischer Prosa umfasst ~3.000–4.000 Zeichen; ANDREA liest etwa eineinhalb Seiten pro Pass.


Diät verbessert Kompression

Ein gut abgestimmter Tokenizer komprimiert besser. Wenn ein Tokenizer Segmente lernt, die im Trainingskorpus wiederkehren, passen mehr Text pro Token. Der schlecht abgestimmte Tokenizer von ANDREA-12M komprimierte bei Chat schlechter (mehr Bytes für Byte-Fallback-Fragmente, da Chat-Segmente im Vokabular seltener waren). Der diät-abgestimmte Tokenizer von ANDREA-120M behält ein chat-förmiges Stück auf einem schnellen Pfad und seltene Skripte auf einem Byte-Fallback.


Aktivität 4 wird fortgesetzt

Aktivität 4 (grow_a_language_model_embeddings) behandelt, was mit diesen 8449 Vokabuleinträgen passiert: Sie werden zu Zeilen einer Einbettungsmatrix mit der Form V × d_model, dann werden gelernte Positions-Einbettungen hinzugefügt, bevor sie in den ersten Transformer-Block fließen.

Wähle ein N aus

Reflektiere über einen Kompromiss: Soll ein zukünftiges ANDREA-Modell N = 4096 (schnelleres Training, mehr Bytes-pro-Token = längerer effektiver Kontext) oder N = 16384 (längere-aber-seltene Segmente, weniger Tokens pro Textstück, aber vergangene Sättigung also verschwendete Slots) verwenden? Wähle eines & gib einen ein-Satz-Grund. Keine falsche Antwort.