Tokenization (NLP) (CS)
Tokenizace v kontextu velkých jazykových modelů (LLM) je základní proces předběžného zpracování, který spočívá v rozdělení textové sekvence na menší, zvládnutelné jednotky nazývané tokeny. Tyto tokeny jsou následně převedeny na číselné identifikátory, které může model zpracovávat. Tokenizace je kriticky důležitým prvním krokem, protože přímo ovlivňuje výkon, efektivitu, spravedlnost a kvalitu porozumění jazyku modelem.
Základní koncepty
Token
Token je diskrétní jednotka textu, kterou zpracovává jazykový model. V závislosti na zvolené metodě tokenizace může token představovat:
- Celé slovo (například „kočka").
- Část slova nebo podslovo (například „ne-", „-hled-", „-al").
- Jednotlivý znak (například „a", „b", „c").
- Bajt (v případě byte-level tokenizace).
Každému unikátnímu tokenu je přiřazen specifický indexový číslo ze slovníku tokenizátoru.
Slovník tokenizátoru
Slovník (nebo vokabulář) je úplný soubor všech možných tokenů, které model dokáže rozpoznat. Velikost slovníku je důležitým hyperparametrem:
- Velký slovník umožňuje reprezentovat více slov jako celky, což zlepšuje porozumění a zkracuje délku sekvencí, ale zvyšuje velikost modelu a složitost trénování.
- Malý slovník je kompaktnější, ale vyžaduje rozdělení vzácných nebo složitých slov na větší počet podslov, což může prodlužovat sekvence a ztěžovat zachycení sémantiky.
Velikost slovníku se mezi modely výrazně liší: od ~50 000 tokenů v GPT-2 až po více než 100 000 v moderních modelech, jako jsou GPT-4 (100 277) a LLaMA-3 (128 000).
Základní metody tokenizace
Existují tři základní úrovně granularity tokenizace.
1. Tokenizace na úrovni slov (Word-level)
- Princip: Text je rozdělen na jednotlivá slova na základě oddělovačů (mezery, interpunkce).
- Výhody: Intuitivně srozumitelná; sekvence tokenů jsou kratší, což snižuje výpočetní zátěž.
- Nevýhody:
- Problém neznámých slov (Out-of-Vocabulary, OOV): Model nedokáže zpracovat slova, která nebyla ve trénovacím slovníku, ani překlepy a nová slova.
- Velká velikost slovníku: Je třeba ukládat všechna unikátní slova, což je zvláště problematické pro jazyky s bohatou morfologií.
2. Tokenizace na úrovni znaků (Character-level)
- Princip: Text je rozdělen na jednotlivé znaky.
- Výhody:
- Žádný problém OOV: Jakékoli slovo lze reprezentovat jako sekvenci znaků.
- Malý slovník: Omezen velikostí abecedy a speciálních znaků.
- Nevýhody:
- Dlouhé sekvence: Text se převádí na velmi dlouhé sekvence tokenů, což výrazně zvyšuje výpočetní náklady.
- Ztráta sémantiky: Pro model je obtížnější zachytit význam, protože pracuje s jednotlivými znaky, nikoli s celými slovy.
3. Podslová tokenizace (Subword Tokenization)
Jde o přechodný a dnes nejpopulárnější přístup, který kombinuje výhody předchozích metod.
- Princip: Často používaná slova zůstávají jako celé tokeny, zatímco vzácná nebo neznámá slova jsou rozdělena na menší, smysluplné části (podslova).
- Výhody:
- Efektivně zpracovává OOV slova a morfologické variace.
- Řiditelná velikost slovníku.
- Zachycuje morfologickou strukturu slov.
- Hlavní algoritmy:
- Byte Pair Encoding (BPE): Iterativní algoritmus, který začíná se sadou znaků a postupně slučuje nejčastěji se vyskytující páry do nových tokenů. Používá se v modelech GPT. Byte-level BPE, používaný v GPT-2 a RoBERTa, považuje slova za sekvence bajtů, čímž zcela řeší problém OOV.
- WordPiece: Algoritmus podobný BPE, ale pro slučování párů vybírá ty, které maximalizují pravděpodobnost trénovacích dat. Používá se v modelech BERT.
- Unigram LM: Na rozdíl od BPE/WordPiece začíná tato metoda s velkou sadou podslov a postupně ji zmenšuje odstraňováním těch tokenů, které nejméně ovlivňují celkovou pravděpodobnost korpusu. To umožňuje vytvářet několik pravděpodobných tokenizací pro jedno slovo (podslová regularizace).
- Nástroj SentencePiece: Knihovna od Google, která implementuje BPE a Unigram LM a zpracovává text jako nepřetržitý proud znaků, což ji činí univerzální pro jazyky bez explicitních oddělovačů slov (například čínštinu). Používá se v modelech LLaMA a T5.
Tokenizace v multimodálních LLM
V multimodálních modelech pracujících nejen s textem se tokenizace rozšiřuje i na další typy dat:
- Vizuální tokenizace: Obrázky jsou rozděleny na malé záplaty (patche) (například 16x16 pixelů), které jsou následně převedeny na vektory-tokeny, obdobně jako textové tokeny.
- Audio tokenizace: Nepřetržité audiosignály jsou převedeny na sekvenci diskrétních tokenů, které představují krátké zvukové úseky.
- Jednotný přístup (TEAL): Koncept, při němž jsou data jakékoli modality nejprve tokenizována pomocí příslušného tokenizátoru a jejich embedding jsou poté zpracovány ve společném sjednoceném prostoru.
Problémy a omezení
Tokenizace, přes svůj velký význam, je zdrojem mnoha problémů v práci LLM:
- Nekonzistentnost a citlivost: Malé změny ve vstupních datech (překlep, velikost písmen, mezera na konci) mohou zásadně změnit tokenizaci, což vede k nepředvídatelnému chování modelu.
- Vícejazyčné problémy: Jednotný slovník pro mnoho jazyků bývá neefektivní pro nízkozdrojové nebo morfologicky bohaté jazyky, což vede k příliš dlouhým sekvencím tokenů.
- Vliv na uvažování: Nelogické rozdělení čísel (například „25 000" na „25", „,", „000") nebo znaků ztěžuje provádění aritmetických a symbolických úloh.
- Glitch tokeny (Glitch Tokens): Anomální nebo vzácné tokeny z trénovacích dat (například uživatelská jména z Redditu), které mohou způsobovat nepředvídatelné nebo škodlivé chování modelu.
Vyvíjející se oblast a budoucí směry
Výzkum v oblasti tokenizace se aktivně rozvíjí v následujících směrech:
- Modely bez tokenizátoru: Vývoj modelů (CANINE, ByT5) pracujících přímo na úrovni bajtů nebo znaků, aby byl zcela odstraněn krok explicitní tokenizace a s ní spojené problémy.
- Adaptivní a trénovatelná tokenizace: Vytváření tokenizátorů, které se mohou dynamicky přizpůsobovat jazyku, doméně nebo dokonce konkrétnímu vstupnímu textu, nebo jsou trénovány společně s hlavním modelem.
- Kognitivně orientované přístupy: Vývoj metod inspirovaných kognitivní vědou o lidském zpracování jazyka (například „Princip nejmenší námahy") pro vytváření sémanticky smysluplnějších tokenizací.
Odkazy
- Přehled tokenizace v kurzu o LLM od Hugging Face
- Dokumentace k tokenizaci od Mistral AI
Literatura
- Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
- Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
- Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
- Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
- Song, X. et al. (2021). Fast WordPiece Tokenization. ACL-Anthology.
- Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
- Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
- Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
- Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. arXiv:2305.17179.
- Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT. arXiv:2303.00722.
- Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
- Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.