Tokenizacija je nevidni prvi korak, zaradi katerega veliki jezikovni modeli besedila ne obravnavajo tako kot ljudje. Spodnji članek razloži, kaj se zgodi od uporabnikovega poziva do odgovora modela.
Bistvo v eni minuti
Ko uporabnik v pogovorno okno napiše »Kako poteka tokenizacija?«, veliki jezikovni model ne vidi povedi tako kot človek. Ne začne pri pomenu celotnega vprašanja in praviloma niti ne prejme seznama slovničnih besed. Preden besedilo doseže nevronsko mrežo, ga poseben algoritem – tokenizator – razdeli na omejen nabor računalniško obvladljivih enot. Te enote so lahko cela beseda, del besede, ločilo, presledek skupaj z besedo, posamezen znak ali zaporedje bajtov.
Tokenizacija je zato vhodna in izhodna »abeceda« LLM-ja. Določa, na katerih osnovnih kosih se model uči, koliko prostora bo besedilo zasedlo v kontekstnem oknu, koliko računanja bo potrebnega in deloma tudi, kako enostavno bo model obdeloval posamezne jezike, številke, kodo ter nenavadne zapise.

1. Zakaj modeli sploh potrebujejo tokene?
Nevronska mreža ne računa neposredno z nizi črk. Potrebuje števila. Najpreprostejša možnost bi bila, da vsaki besedi pripišemo svojo številko, vendar bi tak slovar hitro postal ogromen. Poleg tega bi imeli težave z novimi imeni, tipkarskimi napakami, pregibanjem in sestavljenkami. Druga skrajnost je obdelava vsakega znaka ali bajta posebej. S tem lahko zapišemo skoraj vse, vendar močno podaljšamo zaporedje in s tem povečamo računsko delo.
Sodobna podbesedna tokenizacija išče kompromis. Pogoste oblike shrani kot daljše tokene, redke besede pa razstavi na manjše, ponovno uporabne dele. Članek Sennricha, Haddowa in Birch iz leta 2016 je pokazal, kako je mogoče z BPE redke in prej neznane besede predstaviti kot zaporedja podbesednih enot, namesto da bi jih nadomestili z oznako »neznano«.
2. Token ni isto kot beseda
Pogosta razlaga, da je token približno tri četrtine angleške besede, je uporabna le kot zelo groba ocena za določene korpuse in tokenizatorje. Ni splošno pravilo. Beseda »model« je lahko en token, strokovni izraz ali slovenska pregibna oblika pa več tokenov. Presledek je lahko združen z naslednjo besedo. Ločilo je lahko samostojen token, pri bajtnih metodah pa se lahko znak zunaj pogostega nabora razdeli na več delov.
Pomembna posledica je, da števila besed, znakov in tokenov niso zamenljive količine. Dve povedi z enakim številom besed lahko porabita zelo različno število tokenov. Enako besedilo lahko različno tokenizirata tudi dva modela, ker uporabljata različna slovarja, pravila normalizacije in postopke predrazdelitve.

3. Kako se tokenizator izdela
Tokenizator se navadno nauči pred glavnim učenjem LLM-ja. Razvijalci izberejo reprezentativen korpus in ciljano velikost slovarja. Nato določijo normalizacijo besedila, način predrazdelitve in algoritem za izbiro podbesednih enot.
Pri BPE se postopek poenostavljeno začne z majhnimi simboli. Algoritem prešteva sosednje pare ter najpogostejše pare postopoma združuje v nove simbole. Če se denimo pogosto pojavljata zaporedji »token« in »izacija«, ju lahko slovar sčasoma obravnava kot uporabna kosa; pogosto zapisana celota lahko postane tudi en token. Naučena pravila združevanja se nato deterministično uporabljajo pri kodiranju novega besedila. Hugging Face opozarja, da je želena velikost slovarja hiperparameter: večji slovar običajno omogoča krajša zaporedja, vendar poveča število parametrov v vhodnih in izhodnih matrikah.
WordPiece je soroden pristop, vendar kandidatov ne izbira zgolj po surovi pogostosti para; izbira združitve, ki bolje izboljšajo verjetnost korpusa. Unigram začne z velikim naborom možnih kosov in postopoma odstranjuje najmanj koristne. SentencePiece pa je ogrodje, ki lahko dela neposredno s surovimi povedmi, presledek obravnava kot navaden simbol ter uporablja denimo Unigram ali BPE. Avtorja SentencePiece poudarjata jezikovno neodvisnost in možnost učenja brez predhodne besedne segmentacije, kar je posebej koristno pri jezikih, v katerih presledki ne označujejo besed na enak način kot v slovenščini ali angleščini.
4. Kaj se zgodi z uporabnikovim pozivom
Pri dejanski uporabi lahko tok opišemo v sedmih korakih:

Sistem sestavi celoten vhod: sistemska navodila, zgodovino pogovora, uporabnikov poziv in po potrebi rezultate orodij.
Besedilo se po pravilih tokenizatorja normalizira. To lahko vključuje določeno obravnavo Unicode, presledkov ali posebnih znakov; pravila niso pri vseh modelih enaka.
Predtokenizator določi začetne meje, na primer okoli presledkov ali ločil.
Podbesedni algoritem začetne dele razdeli oziroma združi skladno z naučenim slovarjem.
Vsak dobljeni token se preslika v celoštevilski ID. Dodajo se lahko posebni tokeni, ki označujejo začetek, konec ali vloge v pogovoru.
Vdelovalna matrika vsak ID preslika v gost vektor. Token-ID sam po sebi nima geometrijskega pomena; semantične in kontekstne lastnosti nastajajo v naučenih vektorjih in nadaljnjih plasteh modela.
Transformer obdela zaporedje in izračuna porazdelitev verjetnosti za naslednji token. Izbrani ID se doda zaporedju, postopek pa se ponavlja do zaključka.

Tokenizator torej ne »razume« stavka. Je determinističen kodirnik in dekodirnik. Razumevanje v funkcionalnem smislu pripisujemo naučenim izračunom modela nad vektorji in kontekstom, ne samemu rezanju besedila.
5. Bajtni BPE in problem neznanih znakov
Klasičen znakovni slovar težko zajame ves Unicode. GPT-2 je zato populariziral bajtni BPE: osnovo predstavlja 256 možnih vrednosti bajta, nad njimi pa se naučijo pogosta združevanja. Ker lahko vsak digitalni niz predstavimo z bajti, se model lahko izogne običajnemu tokenu `<unk>` za neznane znake. Dokumentacija Hugging Face za GPT-2 navaja 50.257 enot: 256 osnovnih bajtov, poseben token za konec besedila in 50.000 naučenih združitev.
To še ne pomeni, da je vsak znak en token. Znak UTF-8 lahko vsebuje več bajtov, pogosta bajtna zaporedja pa se lahko združijo v en token. Redkejši znaki, emojiji ali nenavadna zaporedja zato pogosto porabijo več tokenov.
6. Slovenski jezik: zakaj je merjenje nujno
Slovenščina je morfološko bogat jezik. Ista leksikalna osnova se pojavlja v številnih sklonih, številih in oblikah, zato besedni slovar ni gospodaren. Podbesedne enote omogočajo ponovno uporabo korenov, predpon in končnic, vendar tokenizator ni slovnični analizator: rez lahko sovpada z morfemom, ni pa nujno jezikoslovno smiseln.
Če je bil učni korpus izrazito angleško usmerjen, so pogoste angleške nize lahko zajeli daljši tokeni, manj zastopane slovenske oblike pa se razbijejo na več kosov. Posledica je več tokenov za primerljivo količino informacije. To lahko pomeni manj učinkovitega kontekstnega prostora, več zaporednih korakov pri generiranju in pri API-jih, ki obračunavajo tokene, tudi višji strošek. Vendar razmerja ni varno ugibati: besedilo je treba prešteti s točno tistim tokenizatorjem, ki pripada izbranemu modelu.
Praktični slovenski primer naj zato ne trdi, da se izraz »tokenizacija« vedno razcepi na določene dele. Pri enem slovarju je lahko celota en token, pri drugem več podbesednih kosov, pri tretjem pa zaporedje bajtnih enot. Pravilna formulacija je: rezultat je lastnost para besedilo + konkretni tokenizator.
7. Tokenizacija določa kontekst, hitrost in ceno
Kontekstno okno se meri v tokenih, ne v straneh ali besedah. Vanj se štejejo vhod, zgodovina, pogosto tudi skrita strukturna navodila sistema in prostor za izhod. Če dokument preseže dovoljeno zaporedje, ga je treba skrajšati, razdeliti, povzeti ali obdelati z iskanjem po odsekih.

Daljše tokenizirano zaporedje pomeni več položajev, ki jih mora model obdelati. Natančen strošek je odvisen od arhitekture in optimizacij, vendar tokeni ostajajo osnovna merska enota prepustnosti in zasedbe konteksta. Pri komercialnih API-jih se vhodni in izhodni tokeni pogosto obračunavajo ločeno. Ker izhod nastaja avtoregresivno – token za tokenom -, dolžina odgovora neposredno vpliva tudi na zakasnitev.
8. Kaj tokenizacija naredi slabše
Podbesedna tokenizacija je učinkovit kompromis, ne nevtralna tehnična podrobnost. Meje tokenov lahko otežijo naloge, ki zahtevajo natančno delo z znaki: štetje črk, obračanje niza, črkovanje, razumevanje dolgih števil ali manipulacijo delov, ki so znotraj enega tokena. Model nima neposrednega pogleda na črke na enak način, kot jih vidi uporabnik; prejme naučene enote in njihove ID-je.
Druga težava je jezikovna neenakost. Če isti pomen v enem jeziku zahteva več tokenov, ta jezik porabi več omejenega konteksta in potencialno več denarja. Tokenizacija tudi ni varnostna meja: vizualno podobni Unicode znaki, nenavadni presledki ali različni zapisi istega teksta lahko ustvarijo zelo različna zaporedja. Varnostni filtri morajo zato upoštevati normalizacijo in več reprezentacij, ne le navideznega besedila.
9. Ali lahko LLM deluje brez tokenizacije?
Raziskave preučujejo modele na ravni znakov ali bajtov ter arhitekture, ki dinamično namenijo več računanja pomembnejšim delom zaporedja. SpaceByte denimo poskuša zmanjšati slabosti fiksne podbesedne tokenizacije z bajtnim modelom in večjimi bloki na izbranih položajih. Takšni pristopi lahko zmanjšajo odvisnost od ročno določene segmentacije, vendar je termin »brez tokenizacije« nekoliko zavajajoč: tudi bajti so diskretne vhodne enote. Ključna razlika je, da model ne uporablja vnaprej naučenega podbesednega slovarja.

Za današnje produkcijske LLM-je podbesedni tokenizator ostaja zelo učinkovit način stiskanja zaporedja. Smer razvoja pa kaže k bolj prilagodljivim rešitvam, ki skušajo združiti robustnost bajtov z računsko učinkovitostjo daljših, naučenih enot.
10. Praktična pravila za uporabnike in podjetja
Tokenov ne ocenjujte samo iz števila besed. Pred uvedbo aplikacije merite realna slovenska besedila s tokenizatorjem ciljnega modela.
Pri menjavi modela ponovno preverite štetje. Enak poziv lahko dobi drugačno dolžino in drugačne meje.
Pri RAG-u delite dokumente po tokenih, vendar ohranite smiselne odstavke in naslove; slepo rezanje na fiksno število znakov lahko prereže pomemben kontekst.
Za strukturirane podatke odstranite resnično odvečen tekst, ne pa informacijskih oznak, ki modelu pomagajo razumeti polja.
Pri slovenščini testirajte pregibne oblike, lastna imena, kratice, šumnike in kombinacijo slovenščine z angleško terminologijo.
Če je pomembno natančno delo z znaki ali številkami, nalogo preverite s programskim orodjem; ne sklepajte, da model znotraj tokena zanesljivo »vidi« vsako črko.

Sklep
Tokenizacija je mnogo več kot tehnični predkorak. Je načrt vhodnega jezika modela: odloča, katere nize model obravnava kot osnovne enote, koliko dolga so zaporedja in kako učinkovito se različne vrste besedila preslikajo v računanje. Postopek je mogoče strniti v verigo besedilo -> tokeni -> ID-ji -> vektorji -> transformer -> naslednji ID -> besedilo, toda vsaka puščica ima posledice za kakovost, hitrost, stroške in jezikovno dostopnost.
Za AI Hub Nexus je najbolj praktičen nauk preprost: »token« ni univerzalna merska enota naravnega jezika, temveč merska enota konkretnega modela. Zato se resna optimizacija pozivov, RAG-sistemov in stroškov začne z dejanskim merjenjem na ciljnem tokenizatorju.
Omejitve in metodološka opomba
Članek opisuje prevladujoče pristope in namenoma ne pripisuje posameznim zaprtim modelom notranjih podrobnosti, ki niso javno dokumentirane. Konkretne razdelitve besed in število tokenov se spreminjajo glede na model ter različico tokenizatorja.
Izbrani viri in nadaljnje branje
Sennrich, Haddow in Birch (2016): Neural Machine Translation of Rare Words with Subword Units
Kudo in Richardson (2018): SentencePiece
Kudo (2018): Subword Regularization
OpenAI: tiktoken – uradni repozitorij
Hugging Face: Summary of the tokenizers
Slagle (2024): SpaceByte
Raziskovalni postopek se je ustavil po preverjanju izvirnih člankov, uradne implementacije in tehnične dokumentacije, ko so bile osrednje trditve podprte, terminološke razlike razrešene in dodatno iskanje ni več verjetno spreminjalo sklepov.
Trackbacks/Pingbacks