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

un

gast
1 / ?
terug naar lessen

Woorden naar Getallen

Een Vertaler aan een Grens

Een taalmodel ziet nooit tekst. Het ziet gehele getallen. Een tokenizeerder zit aan een grensovergang: menselijke woorden stromen naar binnen, integer-ID's stromen naar buiten. Generatie keert de stroom om: integer-ID's komen terug, een tokenizeerder rendert tekst.


Drie taken:


1. Segmenteren. Knip een string in stukken (tokens).

2. Mappen. Wijs elk stuk een uniek integer ID toe uit een vaste woordenschat.

3. Omkeren. Herbouw tekst vanuit IDs op het moment van generatie.


Waarom Stukken, Niet Hele Woorden

Een woordenschat van hele woorden explodeert. Alleen al het Engels heeft honderdduizenden vormen. Erger nog, een model getraind op hele woorden kan geen typfout, nieuwe naam of buitenlandse frase aan: elk onzien woord wordt gemapt naar een enkel <UNK>-slot.


Subword-tokenisatie lost dat op. Een vocabulaire van veelvoorkomende stukken kan elk woord samenstellen, inclusief woorden die nooit tijdens de training zijn gezien. Twee strategieën domineren: BPE (byte pair encoding) & distributionele segmentatie. ANDREA kiest een tweede strategie.


Harris vs BPE

Waarom Subword

Een whole-word tokenizer faalt op het zeldzame woord `proporian` (een woord dat ANDREA-12M produceerde op stap 43.100). Noem twee verschillende problemen die een subword-tokenizer (BPE of Harris) vermijdt en een whole-word tokenizer niet kan.

Waar Breekt een Woord

Zellig Harris, 1955

Een taalkundige genaamd Zellig Harris merkte iets op. Binnen een woord varieert het aantal verschillende letters die op een gegeven letterreeks volgen sterk. Na un kun je tientallen letters vinden: a, b, c, d, e ... Na unbel volgt slechts een klein aantal: i (dan ievable).


Een piek in de verscheidenheid van opvolgers markeert een waarschijnlijke morfeemgrens. Na un (een voorvoegsel) springt de verscheidenheid omhoog omdat veel wortels kunnen volgen. Binnen een wortel zoals believ blijft de verscheidenheid laag omdat letters elkaar voorspellen. Bij een overgang tussen morfeem, springt de verscheidenheid weer omhoog.


Van Verscheidenheidspieken naar Segmenten

Voer die detector uit over een trainingscorpus. Elk woord doneert statistisch bewijs. Een tokenizer verzamelt hoogfrequente segmenten die terugkeren op morpheem-gevormde grenzen: un, re, pre, believ, know, ing, able, ly, tion, ed.


Geen labels. Geen linguïst tagt morphemes handmatig. Een statistiek van letterco-occurrantie doet het werk.


Harris vs BPE


EigenschapHarrisBPE
GrenscriteriumSuccessor variety spikePaarfrequentie
Taalkundige vormMorfeem-uitgelijnd (voorvoegsel, wortel, achtervoegsel)Veelvoorkomende byteparen
Voorbeeld: unbelievablyun + believ + abl + yunb + eli + eva + bly
GeneralisatieSterk (wortel + affiks hercombineert)Zwakker (paren hoeven niet uit te lijnen)

Beide produceren subwoordstukken. Harris-stukken hebben de neiging om uit te lijnen met wat een taalkundige een morfeem zou noemen: de kleinste betekenisvolle eenheid. BPE-stukken optimaliseren compressie: het meest frequente bytepaar wordt samengevoegd, ongeacht de betekenis.

Segmenteer een Woord

Pas Harris-stijl redenering toe op het woord `replayed`. Stel drie morfeemsegmenten voor & rechtvaardig elk in één zin (welke rol speelt het: voorvoegsel, wortel, of achtervoegsel).

Drie Vocab Slabs

Anatomie van een ANDREA Vocabulary

Harris-tokenization produceert een vocabulary met drie slabs:


Plak 1: 256 bas bytes. Elke mogelijke UTF-8 byte (0x00 tot en met 0xFF) krijgt zijn eigen token-ID. Een vangnet: elk teken dat een corpus bevat, kan een tokenizer weergeven als een reeks bytes. <UNK> wordt nooit geactiveerd.


Plak 2: N morfeemsegmenten. Veelvoorkomende stukken ontdekt door distributionele analyse. ANDREA-12M getraind N = 4096; ANDREA-120M getraind N = 8192. Elk segment comprimeert een terugkerende multi-byte string tot één token.


Plak 3: 1 BOS-token. Een speciaal merkteken geplaatst aan het begin van elke trainingssequentie. Laat een model leren 'deze positie heeft geen verleden'. ANDREA-12M & ANDREA-120M reserveren beide precies één ID voor BOS.


Woordenboekgroottes


ModelBase bytesMorpheme segments (N)BOSVocab size
ANDREA-12M256409614353
ANDREA-120M256819218449

256 + N + 1 = vocabulary size. Simpel. Reproduceerbaar. Open.


Waarom een Byte Slab Belangrijk is

Een byte-fallback garandeert dekking. Als een model 日本語 tegenkomt & een tokenizer geen Japanse morfen heeft, dragen individuele UTF-8-bytes een sequentie door. Een model traint op bytes; kwaliteit op zeldzame schriften hangt af van capaciteit & blootstelling, maar geen input crasht ooit een tokenizer.

Bereken een Vocabulair

ANDREA-480M (een derde model in een familie, toekomstige activiteit 24 behandelt het) plant om een Harris-tokenizer te trainen met N = 16,384 segmenten op een groter corpus. Bereken de grootte van het vocabulair. Toon een formule. Leg dan in één zin uit waarom een byte-slab op 256 blijft staan zelfs als N groeit.

Begin van Sequentie

Waarom een Sequens een Marker Nodig Heeft

Een decoder-only transformer voorspelt een volgend token vanuit voorafgaande context. Positie 0 heeft geen voorafgaande context. Zonder marker bevindt positie 0 zich in een logisch gat: een model heeft niets om op te letten.


BOS lost een gat op. Een enkel speciaal token (ID = 256 + N) staat aan het begin van elke sequens tijdens training. Een model leert:


- 'Wanneer je BOS ziet, voorspel een waarschijnlijke eerste token van natuurlijke tekst.'

- 'Wanneer je BOS gevolgd door een woord ziet, is dat woord een sequensbegin, geen voortzetting.'


Eén Token, Veel Gebruiken


BOS verschijnt op:


- Trainingsmoment: voor elk tekstblok gevoed aan een model voorgeplaatst.

- Inferentiemoment: voor een prompt voorgeplaatst zodat een model een vertrouwd 'fris start'-signaal ziet.

- Grenzmarkering: in sommige pipelines, een scheidingsteken tussen geconcateneerde documenten.


ANDREA reserveert precies één ID voor BOS. Geen EOS, geen PAD, geen speciale tokens bovenop wat een vocabulaire nodig heeft. Eenvoud blijft een permacomputerwaarde: elke token verdient zijn plek.


Activiteit 3 Gaat Door

Activiteit 3 (grow_a_language_model_tokenizer_diet) behandelt wat er gebeurt wanneer N te groot is of een tokenizer-corpus afwijkt van een training-corpus. ANDREA-12M verspilde 63,6% van zijn vocabulaire; ANDREA-120M loste het op. Lees verder.

BOS-Only Afwegingen

Reflecteer op een ontwerpaanpassing die ANDREA maakt: slechts één speciaal token (BOS), geen EOS, geen PAD. Noem één afweging die dit creëert. Een afweging kan een voordeel zijn (eenvoudigere engine, minder verspilde slots) of een beperking (sommige training-trucs hebben extra tokens nodig). Eén zin is voldoende.