Tokenization (NLP) (RO)
Tokenizarea în contextul modelelor lingvistice mari (LLM) este un proces fundamental de preprocesare care constă în împărțirea unei secvențe de text în unități mai mici și mai ușor de gestionat, numite token-uri. Aceste token-uri sunt apoi convertite în identificatori numerici pe care modelul îi poate procesa. Tokenizarea reprezintă primul pas critic, deoarece influențează direct performanța, eficiența, corectitudinea și calitatea înțelegerii limbajului de către model.
Concepte de bază
Token
Token-ul este unitatea discretă de text pe care o procesează un model lingvistic. În funcție de metoda de tokenizare aleasă, un token poate reprezenta:
- Un cuvânt întreg (de exemplu, „pisică").
- O parte a unui cuvânt sau un subcuvânt (de exemplu, „ne-\", \"-privi-\", \"-t\").
- Un caracter individual (de exemplu, „a", „b", „c").
- Un byte (în cazul tokenizării la nivel de byte).
Fiecărui token unic îi este atribuit un număr de index specific din vocabularul tokenizatorului.
Vocabularul tokenizatorului
Vocabularul (sau vocabularul de tokenizare) este setul complet al tuturor token-urilor posibile pe care modelul le poate recunoaște. Dimensiunea vocabularului este un hiperparametru important:
- Un vocabular mare permite reprezentarea mai multor cuvinte în întregime, ceea ce îmbunătățește înțelegerea și reduce lungimea secvențelor, dar crește dimensiunea modelului și complexitatea antrenării.
- Un vocabular mic este mai compact, dar necesită împărțirea cuvintelor rare sau complexe în mai multe subcuvinte, ceea ce poate lungi secvențele și îngreuna captarea semanticii.
Dimensiunea vocabularului variază semnificativ între modele: de la ~50 000 de token-uri în GPT-2 până la peste 100 000 în modelele moderne, precum GPT-4 (100 277) și LLaMA-3 (128 000).
Principalele metode de tokenizare
Există trei niveluri principale de granularitate a tokenizării.
1. Tokenizarea la nivel de cuvânt (Word-level)
- Principiu: Textul este împărțit în cuvinte individuale pe baza separatorilor (spații, semne de punctuație).
- Avantaje: Intuitiv; secvențele de token-uri sunt mai scurte, ceea ce reduce sarcina computațională.
- Dezavantaje:
- Problema cuvintelor necunoscute (Out-of-Vocabulary, OOV): Modelul nu poate procesa cuvinte care nu au existat în vocabularul de antrenare, precum și greșeli de scriere și cuvinte noi.
- Dimensiune mare a vocabularului: Este necesară stocarea tuturor cuvintelor unice, ceea ce este deosebit de problematic pentru limbile cu morfologie bogată.
2. Tokenizarea la nivel de caracter (Character-level)
- Principiu: Textul este împărțit în caractere individuale.
- Avantaje:
- Nu există problema OOV: Orice cuvânt poate fi reprezentat ca o secvență de caractere.
- Vocabular mic: Limitat la dimensiunea alfabetului și a caracterelor speciale.
- Dezavantaje:
- Secvențe lungi: Textul este transformat în secvențe de token-uri foarte lungi, ceea ce crește semnificativ costurile computaționale.
- Pierderea semanticii: Modelul întâmpină dificultăți în a capta sensul, deoarece operează cu caractere individuale, nu cu cuvinte întregi.
3. Tokenizarea la nivel de subcuvânt (Subword Tokenization)
Acesta este un demers intermediar și cel mai popular astăzi, care combină avantajele metodelor anterioare.
- Principiu: Cuvintele frecvent utilizate rămân token-uri întregi, iar cuvintele rare sau necunoscute sunt împărțite în părți mai mici și semnificative (subcuvinte).
- Avantaje:
- Gestionează eficient cuvintele OOV și variațiile morfologice.
- Dimensiune controlată a vocabularului.
- Captează structura morfologică a cuvintelor.
- Principalii algoritmi:
- Byte Pair Encoding (BPE): Un algoritm iterativ care pornește de la un set de caractere și combină succesiv perechile cele mai frecvente în token-uri noi. Este utilizat în modelele GPT. Byte-level BPE, utilizat în GPT-2 și RoBERTa, tratează cuvintele ca secvențe de bytes, rezolvând complet problema OOV.
- WordPiece: Un algoritm similar cu BPE, dar pentru fuzionarea perechilor selectează pe cele care maximizează probabilitatea datelor de antrenare. Este utilizat în modelele BERT.
- Unigram LM: Spre deosebire de BPE/WordPiece, această metodă pornește de la un set mare de subcuvinte și îl reduce treptat, eliminând token-urile care influențează cel mai puțin probabilitatea totală a corpusului. Aceasta permite crearea mai multor tokenizări probabile pentru un singur cuvânt (regularizare la nivel de subcuvânt).
- Instrumentarul SentencePiece: O bibliotecă de la Google care implementează BPE și Unigram LM și procesează textul ca un flux continuu de caractere, ceea ce o face universală pentru limbile fără separatori expliciti de cuvinte (de exemplu, chineza). Este utilizată în modelele LLaMA și T5.
Tokenizarea în LLM-urile multimodale
În modelele multimodale, care lucrează nu doar cu text, tokenizarea se extinde și la alte tipuri de date:
- Tokenizarea vizuală: Imaginile sunt împărțite în patch-uri mici (de exemplu, 16x16 pixeli), care sunt apoi transformate în vectori-token, similar cu textul.
- Tokenizarea audio: Semnalele audio continue sunt convertite într-o secvență de token-uri discrete, reprezentând fragmente scurte de sunet.
- Abordarea unificată (TEAL): Un concept în care datele de orice modalitate sunt mai întâi tokenizate cu ajutorul tokenizatorului corespunzător, iar embedding-urile lor sunt procesate ulterior într-un spațiu comun unificat.
Probleme și limitări
Tokenizarea, în ciuda importanței sale, reprezintă sursa multor probleme în funcționarea LLM-urilor:
- Inconsistență și sensibilitate: Modificările mici ale datelor de intrare (greșeală de scriere, majuscule, spațiu la sfârșit) pot schimba radical tokenizarea, ducând la un comportament imprevizibil al modelului.
- Probleme multilingve: Un vocabular unic pentru mai multe limbi se dovedește adesea ineficient pentru limbile cu resurse reduse sau morfologic bogate, conducând la secvențe de token-uri excesiv de lungi.
- Influența asupra raționamentului: Împărțirea ilogică a numerelor (de exemplu, „25.000" în „25", „.", „000") sau a simbolurilor îngreunează îndeplinirea sarcinilor aritmetice și simbolice.
- Token-uri defecte (Glitch Tokens): Token-uri anormale sau rare din datele de antrenare (de exemplu, nume de utilizatori de pe Reddit) care pot provoca un comportament imprevizibil sau dăunător al modelului.
Peisajul în evoluție și direcțiile viitoare
Cercetările în domeniul tokenizării sunt active în următoarele direcții:
- Modele fără tokenizator: Dezvoltarea modelelor (CANINE, ByT5) care funcționează direct la nivel de bytes sau caractere, pentru a elimina complet etapa de tokenizare explicită și problemele asociate.
- Tokenizare adaptivă și antrenabilă: Crearea de tokenizatoare care se pot adapta dinamic la limbă, domeniu sau chiar la textul de intrare specific, ori care sunt antrenate împreună cu modelul principal.
- Abordări orientate cognitiv: Dezvoltarea metodelor inspirate de știința cognitivă privind procesarea umană a limbajului (de exemplu, „Principiul minimului efort"), pentru a crea tokenizări mai semantic semnificative.
Referințe
- Prezentare generală a tokenizării în cursul despre LLM de la Hugging Face
- Documentația privind tokenizarea de la Mistral AI
Bibliografie
- 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.