Tokenization (NLP) (HU)
Tokenizáció a nagy nyelvi modellek (LLM) kontextusában egy alapvető előfeldolgozási folyamat, amely a szöveg egy sorozatát kisebb, kezelhető egységekre — úgynevezett tokenekre — bontja fel. Ezeket a tokeneket ezután numerikus azonosítókká alakítják, amelyeket a modell feldolgozni képes. A tokenizáció kritikusan fontos első lépés, mivel közvetlenül befolyásolja a modell teljesítményét, hatékonyságát, megbízhatóságát és nyelvmegértési minőségét.
Alapvető fogalmak
Token
A token egy diszkrét szövegegység, amelyet a nyelvi modell feldolgoz. A választott tokenizációs módszertől függően egy token lehet:
- Egy teljes szó (például: „macska").
- Egy szórész vagy részszó (például: „meg-", „-néz-", „-te").
- Egy önálló karakter (például: „a", „b", „c").
- Egy bájt (byte-level tokenizáció esetén).
Minden egyedi tokenhez egy adott indexszám tartozik a tokenizátor szótárából.
A tokenizátor szótára
A szótár (vagy vokabulár) az összes lehetséges token teljes készlete, amelyet a modell felismerni képes. A szótár mérete fontos hiperparaméter:
- A nagy szótár több szót képes egészként ábrázolni, ami javítja a megértést és rövidíti a sorozatokat, de növeli a modell méretét és a tanítás összetettségét.
- A kis szótár kompaktabb, de a ritka vagy összetett szavakat több részszóra kell bontani, ami megnyújthatja a sorozatokat és megnehezítheti a szemantika megragadását.
A szótár mérete modellenként nagymértékben változik: a GPT-2 esetén ~50 000 tokentől a modern modellek több mint 100 000 tokenjéig, mint például a GPT-4 (100 277) és a LLaMA-3 (128 000).
A tokenizáció főbb módszerei
A tokenizáció granularitásának három alapvető szintje létezik.
1. Szó szintű tokenizáció (Word-level)
- Elv: A szöveget elválasztók (szóközök, írásjelek) alapján önálló szavakra osztják fel.
- Előnyök: Intuitívan érthető; a tokensorozatok rövidebbek, ami csökkenti a számítási terhelést.
- Hátrányok:
- Ismeretlen szavak problémája (Out-of-Vocabulary, OOV): A modell nem tudja feldolgozni azokat a szavakat, amelyek nem szerepeltek a tanítási szótárban, valamint az elgépeléseket és az új szavakat.
- Nagy szótárméret: Az összes egyedi szót tárolni kell, ami különösen problémás a gazdag morfológiájú nyelvek esetén.
2. Karakter szintű tokenizáció (Character-level)
- Elv: A szöveget önálló karakterekre bontják.
- Előnyök:
- Nincs OOV-probléma: Bármely szó ábrázolható karakterek sorozataként.
- Kis szótár: Az ábécé és a speciális karakterek méretére korlátozódik.
- Hátrányok:
- Hosszú sorozatok: A szöveg nagyon hosszú tokensorozatokká alakul, ami jelentősen növeli a számítási költségeket.
- Szemantikai veszteség: A modellnek nehezebb megragadni a jelentést, mivel önálló karakterekkel operál, nem pedig teljes szavakkal.
3. Részszó alapú tokenizáció (Subword Tokenization)
Ez egy közbenső és napjainkban legelterjedtebb megközelítés, amely ötvözi az előző módszerek előnyeit.
- Elv: A gyakran használt szavak teljes tokenként maradnak, a ritka vagy ismeretlen szavakat kisebb, jelentéssel bíró részekre (részszavakra) bontják.
- Előnyök:
- Hatékonyan kezeli az OOV-szavakat és a morfológiai változatokat.
- Kontrollált szótárméret.
- Megragadja a szavak morfológiai szerkezetét.
- Főbb algoritmusok:
- Byte Pair Encoding (BPE): Iteratív algoritmus, amely karakterkészletből indul ki, és folyamatosan összeilleszti a leggyakrabban előforduló párokat új tokenekké. A GPT modellekben használják. A GPT-2-ben és a RoBERTa-ban alkalmazott Byte-level BPE a szavakat bájtsorozatként kezeli, ami teljes mértékben megoldja az OOV-problémát.
- WordPiece: A BPE-hez hasonló algoritmus, de a párok összeillesztésekor azokat választja ki, amelyek maximalizálják a tanítási adatok valószínűségét. A BERT modellekben használják.
- Unigram LM: A BPE/WordPiece-szel ellentétben ez a módszer nagy részszókészletből indul ki, amelyet fokozatosan szűkít, eltávolítva azokat a tokeneket, amelyek a legkevésbé befolyásolják a korpusz összesített valószínűségét. Ez lehetővé teszi, hogy egyetlen szóhoz több valószínű tokenizáció is létezzen (részszó-regularizáció).
- SentencePiece eszközkészlet: A Google könyvtára, amely megvalósítja a BPE és az Unigram LM módszereket, és a szöveget folyamatos karakterfolyamként kezeli, így univerzálisan alkalmazható az explicit szóelválasztók nélküli nyelvekhez (például a kínaihoz). A LLaMA és a T5 modellekben használják.
Tokenizáció multimodális LLM modellekben
A nem kizárólag szöveggel dolgozó multimodális modellekben a tokenizáció más adattípusokra is kiterjed:
- Vizuális tokenizáció: A képeket kis részekre (patch-ekre, például 16×16 képpontos egységekre) bontják, amelyeket ezután token-vektorokká alakítanak, hasonlóan a szöveges tokenekhez.
- Audió tokenizáció: A folyamatos hangjeleket rövid hangfragmentumokat reprezentáló diszkrét tokenek sorozatává alakítják.
- Egységes megközelítés (TEAL): Egy koncepció, amelyben bármely modalitású adatot először a megfelelő tokenizátorral tokenizálnak, majd azok embeddingeit egy közös együttes térben dolgozzák fel.
Problémák és korlátok
A tokenizáció fontossága ellenére számos probléma forrása az LLM-ek működésében:
- Következetlenség és érzékenység: A bemeneti adatok kis változásai (elgépelés, kis-/nagybetűs írásmód, záró szóköz) gyökeresen megváltoztathatják a tokenizációt, ami a modell kiszámíthatatlan viselkedéséhez vezet.
- Többnyelvű problémák: Számos nyelvhez egységes szótár alkalmazása gyakran hatástalan az alacsonyan erőforrásolt vagy morfológiailag gazdag nyelvek esetén, túlságosan hosszú tokensorozatokat eredményezve.
- Hatás a következtetésre: A számok (például „25 000" → „25", „,", „000") vagy szimbólumok logikátlan felosztása megnehezíti az aritmetikai és szimbolikus feladatok elvégzését.
- Glitch tokenek (Glitch Tokens): A tanítási adatokból származó rendellenes vagy ritka tokenek (például Redditről származó felhasználónevek), amelyek kiszámíthatatlan vagy káros modellviselkedést válthatnak ki.
Fejlődő irányvonalak és jövőbeli irányok
A tokenizáció területén aktív kutatás folyik a következő irányokban:
- Tokenizátor nélküli modellek: Olyan modellek fejlesztése (CANINE, ByT5), amelyek közvetlenül bájt- vagy karakterszinten működnek, hogy teljes mértékben kiküszöböljék az explicit tokenizáció lépését és az azzal járó problémákat.
- Adaptív és tanulható tokenizáció: Olyan tokenizátorok létrehozása, amelyek dinamikusan alkalmazkodnak a nyelvhez, a szakterülethez vagy akár az adott bemeneti szöveghez, illetve az alapmodellel együtt tanulnak.
- Kognitív szemléletű megközelítések: A kognitív tudományból ihletett módszerek fejlesztése az emberi nyelvfeldolgozás alapján (például a „legkisebb erőfeszítés elve") szemantikailag tartalmasabb tokenizációk létrehozásához.
Hivatkozások
- A tokenizáció áttekintése a Hugging Face LLM-kurzusából
- Tokenizációs dokumentáció a Mistral AI-tól
Irodalom
- 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.