Tokenizace je proces, při kterém se text rozděluje na menší jednotky zvané tokeny. Jazykový model díky tomu nemusí zpracovávat celé věty jako člověk, ale pracuje s číselnými reprezentacemi jednotlivých částí textu. Tokeny mohou odpovídat celým slovům, částem slov, interpunkci nebo jiným znakům.
Co je token a jak vzniká
Token je jednotka, na kterou text rozdělí tokenizér – součást systému připravujícího vstup pro model. Tokenizér převádí text podle předem vytvořených pravidel a slovníku. Výsledkem nemusí být rozdělení přesně podle mezer: jedno slovo může tvořit jeden token, ale také několik tokenů. Samostatné tokeny mohou představovat například interpunkční znaménka, čísla nebo části slov.
Konkrétní způsob rozdělení závisí na použitém tokenizéru. Různé modely proto mohou stejnou větu rozložit odlišně. To, co člověk vnímá jako jedno slovo, nemusí pro model představovat jedinou jednotku.
Proč se text rozděluje na tokeny
Neurální jazykové modely nezpracovávají text přímo v podobě běžných písmen a slov. Tokenizér převede jednotlivé tokeny na číselné identifikátory, s nimiž model dokáže pracovat. Model pak na základě kontextu odhaduje, jaké tokeny mají následovat, a z jejich posloupnosti vytváří odpověď.
Tokenizace zároveň umožňuje pracovat s novými nebo méně častými slovy. Pokud tokenizér daný výraz nezná jako celek, může ho rozdělit na menší části, které už ve svém slovníku má. Tento přístup je užitečný například u skloňovaných slov, odborných výrazů, složenin nebo nově vznikajících názvů.
Jaké části textu mohou být tokeny
Tokenizér může text rozdělit na celé výrazy i na jejich menší části. Například běžné slovo se může objevit jako jediný token, zatímco méně obvyklý výraz se rozdělí na několik částí. Způsob dělení ovlivňuje také jazyk, pravopis, interpunkce a konkrétní použitý model.
Tokeny mohou zahrnovat například:
- celá běžná slova,
- předpony, kořeny a přípony,
- mezery a interpunkční znaménka,
- číslice nebo části čísel,
- speciální značky používané při zpracování zpráv či jiných typů vstupu.
Vliv tokenizace na češtinu a další jazyky
Počet tokenů v textu se nemusí shodovat s počtem slov ani znaků. Rozdíl je patrný zejména u jazyků s bohatým skloňováním a časováním, mezi které patří i čeština. Různé tvary jednoho slova mohou být v slovníku zastoupeny různě, a proto je tokenizér může rozdělit odlišným způsobem.
Podobně mohou být méně úsporně tokenizovány odborné termíny, neobvyklá jména, překlepy nebo texty v jazycích, které byly při přípravě tokenizéru zastoupeny v menší míře. Stejný text tak může u různých modelů představovat různý počet tokenů.
Tokeny, délka kontextu a cena použití modelu
Počet tokenů má praktický význam při práci s jazykovými modely. Modely obvykle mají omezenou délku kontextu, tedy množství textu, které mohou zpracovat najednou. Do tohoto limitu se započítává nejen zadání uživatele, ale často také předchozí zprávy a generovaná odpověď.
Počet tokenů může ovlivňovat také dobu zpracování a cenu služeb, které účtují použití modelu podle množství zpracovaného nebo vytvořeného textu. Před odesláním dlouhého dokumentu je proto užitečné počítat s tím, že jeho tokenový rozsah se nemusí dát přesně odhadnout podle počtu slov.
Proč se stejná věta může rozdělit různě
Tokenizace není univerzální dělení textu platné pro všechny jazykové modely. Každý model může používat jiný slovník i jiná pravidla. Výsledek proto závisí na tom, jak byl konkrétní tokenizér navržen a jaké jazykové vzory při jeho přípravě zohlednil.
Tokenizace je tak nenápadnou, ale důležitou součástí zpracování přirozeného jazyka. Ovlivňuje, jak model vnímá text, kolik informací se vejde do jeho kontextu i jak efektivně dokáže pracovat s různými jazyky a výrazy.
