Token

Čo je token?

Token je základná jednotka textu, s ktorou pracujú jazykové modely a systémy spracovania prirodzeného jazyka (NLP). Môže predstavovať celé slovo, časť slova, interpunkčné znamienko alebo dokonca jednotlivý znak. Tokenizácia – proces rozdelenia textu na tokeny – je prvým krokom pri spracovaní akéhokoľvek textového vstupu v AI systémoch.

Ako prebieha tokenizácia?

Tokenizácia transformuje súvislý text na sekvenciu diskrétnych jednotiek, ktoré model dokáže spracovať. Rôzne modely používajú odlišné tokenizačné algoritmy. Napríklad GPT modely využívajú Byte Pair Encoding (BPE), zatiaľ čo BERT pracuje s WordPiece tokenizáciou.

Jedno anglické slovo sa typicky rozloží na 1 – 2 tokeny, zatiaľ čo slová v iných jazykoch vrátane slovenčiny môžu vyžadovať viac tokenov. Menej bežné alebo zložené slová sa často rozkladajú na menšie časti – subword jednotky.

Prečo sú tokeny dôležité?

Tokeny priamo ovplyvňujú fungovanie a náklady jazykových modelov. Každý model má definovaný kontextový limit – maximálny počet tokenov, ktoré dokáže spracovať v jednej požiadavke.

Počet tokenov určuje aj cenu za používanie API komerčných modelov. Poskytovatelia ako OpenAI účtujú podľa počtu spracovaných tokenov, pričom vstupné a výstupné tokeny môžu mať rozdielnu sadzbu.

Vieš, že
Vieš, že…

…anglické slovo „tokenization“ sa rozloží na tri tokeny („token“, „iz“, „ation“), zatiaľ čo jednoduché slová ako „the“ alebo „cat“ tvoria vždy len jeden token?

Typy tokenizácie

Existuje niekoľko prístupov k tokenizácii:

  • Word-level tokenizácia rozdeľuje text podľa medzier a interpunkcie, čo vedie k veľkému slovníku.
  • Subword tokenizácia (BPE, WordPiece, SentencePiece) balansuje medzi veľkosťou slovníka a schopnosťou reprezentovať neznáme slová.
  • Character-level tokenizácia pracuje s jednotlivými znakmi – má najmenší slovník, ale vytvára najdlhšie sekvencie. Výber tokenizačnej metódy závisí od jazyka, domény a požiadaviek na výkon modelu.

Obmedzenia tokenizácie

Tokenizácia má svoje limitácie. Pre jazyky s bohatou morfológiou, vrátane slovenčiny, môže byť menej efektívna ako pre angličtinu. Rovnaký text v slovenčine typicky vyžaduje viac tokenov ako jeho anglický ekvivalent, čo zvyšuje náklady aj výpočtovú náročnosť. Niektoré modely majú problémy so špeciálnymi znakmi, emotikonmi alebo textom v menej zastúpených jazykoch.

Zdroje a odkazy

Použité zdroje:

  • OpenAI Platform Documentation – Tokenizer tool: https://platform.openai.com/tokenizer
  • Hugging Face Documentation – Summary of the tokenizers: https://huggingface.co/docs/transformers/tokenizer_summary

Odporúčané zdroje:

  • Google Research – SentencePiece: https://github.com/google/sentencepiece

Uvedené informácie sú orientačné a môžu sa líšiť v závislosti od verzie, implementácie a prostredia.