Tokenization (NLP) (HU)

From Systems analysis Wiki
Jump to navigation Jump to search

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.