Tokenization (NLP) (TL)

From Systems analysis Wiki
Jump to navigation Jump to search

Tokenization sa konteksto ng malalaking language model (LLM) — ito ay isang pundamental na proseso ng paunang pagpoproseso na binubuo ng paghahati ng isang pagkakasunod-sunod ng teksto sa mas maliliit at mas mapamahalang yunit na tinatawag na mga token. Ang mga token na ito ay pagkatapos ay ginagawang mga numerikong identifier na maaaring iproseso ng modelo. Ang Tokenization ay isang kritikal na unang hakbang dahil direkta nitong naaapektuhan ang pagganap, kahusayan, katarungan, at kalidad ng pag-unawa ng modelo sa wika.

Mga Pangunahing Konsepto

Token

Ang token ay isang diskreto na yunit ng teksto na pinoproseso ng isang language model. Depende sa napiling paraan ng tokenization, ang isang token ay maaaring kumatawan sa:

  • Isang buong salita (halimbawa, «pusa»).
  • Isang bahagi ng salita o subword (halimbawa, «hindi-», «-tingin-», «-an»).
  • Isang indibidwal na karakter (halimbawa, «a», «b», «k»).
  • Isang byte (sa kaso ng byte-level na tokenization).

Ang bawat natatanging token ay binibigyan ng isang tiyak na index number mula sa talasalitaan ng tokenizer.

Talasalitaan ng Tokenizer

Ang talasalitaan (o bokabularyo) — ito ang kumpletong hanay ng lahat ng posibleng token na kinikilala ng modelo. Ang laki ng talasalitaan ay isang mahalagang hyperparameter:

  • Ang malaking talasalitaan ay nagbibigay-daan sa mas maraming buong salita na maipakita, na nagpapabuti ng pag-unawa at nagpapaikli ng mga pagkakasunod-sunod, ngunit nagpapalaki ng modelo at nagpapalubha ng pagsasanay.
  • Ang maliit na talasalitaan ay mas kompakto, ngunit nangangailangan ng paghahati ng mga bihira o kumplikadong salita sa mas maraming subword, na maaaring magpahaba ng mga pagkakasunod-sunod at magpahirap sa pagkuha ng semantika.

Ang laki ng talasalitaan ay malaki ang pagkakaiba sa pagitan ng mga modelo: mula sa ~50,000 token sa GPT-2 hanggang sa mahigit 100,000 sa mga modernong modelo tulad ng GPT-4 (100,277) at LLaMA-3 (128,000).

Mga Pangunahing Paraan ng Tokenization

Mayroong tatlong pangunahing antas ng granularidad ng tokenization.

1. Tokenization sa Antas ng Salita (Word-level)

  • Prinsipyo: Ang teksto ay hinahati sa mga indibidwal na salita batay sa mga separator (mga puwang, mga bantas).
  • Mga kalamangan: Madaling maunawaan; ang mga pagkakasunod-sunod ng token ay mas maikli, na nagpapababa ng computational load.
  • Mga kahinaan:
    • Problema ng mga hindi kilalang salita (Out-of-Vocabulary, OOV): Hindi mapoproseso ng modelo ang mga salitang wala sa talasalitaan ng pagsasanay, pati na rin ang mga typo at bagong salita.
    • Malaking laki ng talasalitaan: Kailangang itago ang lahat ng natatanging salita, na lalo itong problematiko para sa mga wikang may mayamang morpolohiya.

2. Tokenization sa Antas ng Karakter (Character-level)

  • Prinsipyo: Ang teksto ay nahahati sa mga indibidwal na karakter.
  • Mga kalamangan:
    • Walang problema sa OOV: Ang anumang salita ay maaaring ilarawan bilang isang pagkakasunod-sunod ng mga karakter.
    • Maliit na talasalitaan: Limitado sa laki ng alpabeto at mga espesyal na karakter.
  • Mga kahinaan:
    • Mahabang mga pagkakasunod-sunod: Ang teksto ay nagiging napakahaba na mga pagkakasunod-sunod ng token, na malaki ang nagpapataas ng computational costs.
    • Pagkawala ng semantika: Mas mahirap para sa modelo na makuha ang kahulugan dahil nag-ooperate ito sa mga indibidwal na karakter, hindi sa mga buong salita.

3. Subword Tokenization

Ito ay isang panggitna at pinaka-popular na diskarte ngayon, na pinagsasama ang mga benepisyo ng mga nakaraang pamamaraan.

  • Prinsipyo: Ang mga madalas na ginagamit na salita ay nananatiling buong token, habang ang mga bihira o hindi kilalang salita ay nahahati sa mas maliliit at makabuluhang bahagi (mga subword).
  • Mga kalamangan:
    • Epektibong hinahawakan ang mga OOV na salita at mga pagbabago sa morpolohiya.
    • Kontroladong laki ng talasalitaan.
    • Kumukuha ng istrukturang morpolohikal ng mga salita.
  • Mga pangunahing algorithm:
    • Byte Pair Encoding (BPE): Isang iteratibong algorithm na nagsisimula sa isang hanay ng mga karakter at sunud-sunod na pinagsasama ang mga pinaka-madalas na lumabas na pares sa mga bagong token. Ginagamit sa mga modelo ng GPT. Ang Byte-level BPE, na ginagamit sa GPT-2 at RoBERTa, ay tinitingnan ang mga salita bilang mga pagkakasunod-sunod ng mga byte, na ganap na nalulutas ng problema sa OOV.
    • WordPiece: Isang algorithm na katulad ng BPE, ngunit para sa pagsasama ng mga pares pinipili nito ang mga nagpapakinabang ng pinaka-mataas na likelihood ng mga datos ng pagsasanay. Ginagamit sa mga modelo ng BERT.
    • Unigram LM: Kumpara sa BPE/WordPiece, ang paraang ito ay nagsisimula sa malaking hanay ng mga subword at unti-unting binabawasan ito sa pamamagitan ng pag-aalis ng mga token na pinaka-kaunting nakakaapekto sa kabuuang posibilidad ng corpus. Nagbibigay-daan ito na lumikha ng ilang malamang na tokenization para sa isang salita (subword regularization).
  • SentencePiece toolkit: Isang library mula sa Google na nagpapatupad ng BPE at Unigram LM at nagpoproseso ng teksto bilang isang tuluy-tuloy na daloy ng mga karakter, na ginagawa itong universal para sa mga wikang walang malinaw na mga separator ng salita (halimbawa, Intsik). Ginagamit sa mga modelo ng LLaMA at T5.

Tokenization sa Multimodal na LLM

Sa mga multimodal na modelo na hindi lamang nagtatrabaho sa teksto, ang tokenization ay umaabot din sa ibang uri ng datos:

  • Visual na tokenization: Ang mga larawan ay nahahati sa maliliit na patch (halimbawa, 16x16 na pixel), na pagkatapos ay ginagawang mga vector-token, katulad ng teksto.
  • Audio na tokenization: Ang mga tuluy-tuloy na audio signal ay ginagawang isang pagkakasunod-sunod ng mga diskreto na token, na kumakatawan sa mga maikling fragment ng tunog.
  • Pinag-isang diskarte (TEAL): Isang konsepto kung saan ang datos ng anumang modalidad ay unang tino-tokenize gamit ang kaukulang tokenizer, at pagkatapos ang kanilang mga embedding ay pinoproseso sa iisang pinagsanib na espasyo.

Mga Problema at Limitasyon

Ang Tokenization, sa kabila ng kahalagahan nito, ay pinagmumulan ng maraming problema sa pagtatrabaho ng LLM:

  • Kawalan ng pagkakatulad at sensitivity: Ang maliliit na pagbabago sa input na datos (typo, case, puwang sa dulo) ay maaaring drastikong magbago ng tokenization, na nagdudulot ng hindi mahuhulaan na gawi ng modelo.
  • Mga multilingual na problema: Ang iisang talasalitaan para sa maraming wika ay madalas na hindi epektibo para sa mga low-resource o morpolohikal na mayamang wika, na nagdudulot ng napakahabang mga pagkakasunod-sunod ng token.
  • Epekto sa pag-iisip: Ang hindi lohikal na paghahati ng mga numero (halimbawa, «25,000» sa «25», «,», «000») o mga simbolo ay nagpapahirap sa pagsasagawa ng mga aritmetika at simbolikong gawain.
  • Mga Glitch Token: Mga abnormal o bihirang token mula sa mga datos ng pagsasanay (halimbawa, mga username mula sa Reddit), na maaaring magdulot ng hindi mahuhulaan o mapanganib na gawi ng modelo.

Umuusbong na Landscape at Mga Hinaharap na Direksyon

Ang pananaliksik sa larangan ng tokenization ay aktibong isinasagawa sa mga sumusunod na direksyon:

  • Mga modelo nang walang tokenizer: Pagbuo ng mga modelo (CANINE, ByT5) na direktang nagtatrabaho sa antas ng mga byte o karakter, upang ganap na maalis ang yugto ng malinaw na tokenization at mga kaugnay na problema.
  • Adaptive at naaral na tokenization: Paglikha ng mga tokenizer na maaaring dynamic na mag-adapt sa wika, domain o kahit sa isang tiyak na input na teksto, o sinanay nang magkasama sa pangunahing modelo.
  • Mga cognitively-oriented na diskarte: Pagbuo ng mga pamamaraan na inspirado ng cognitive science tungkol sa pagpoproseso ng tao ng wika (halimbawa, «Prinsipyo ng Pinakamaliit na Pagsisikap»), para sa paglikha ng mas semantikong makabuluhang mga tokenization.

Mga Sanggunian

  • Pangkalahatang-ideya ng tokenization sa kurso ng LLM mula sa Hugging Face
  • Dokumentasyon ng tokenization mula sa Mistral AI

Mga Akda

  • 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.