Hogyan épül fel egy nyelvi modell · Lecke 02

Tokenizáció, a szövegből token

A modell nem betűket és nem is egész szavakat lát, hanem tokeneket, a kettő közötti szódarabokat. Ebben a leckében megnézzük, miért éppen így darabolja fel a szöveget, és hogyan tanulja meg a byte pair encoding algoritmus, mely darabok legyenek külön tokenek.

Vissza a tananyaghoz


Miért kell egyáltalán feldarabolni

A modell számokkal dolgozik, nem betűkkel. Az első lépés ezért mindig az, hogy a nyers szöveget apró, jól kezelhető egységekre bontja, és ezekhez az egységekhez rendel egy-egy azonosítót. Ezt az egységet nevezzük tokennek, a feldarabolás folyamatát pedig tokenizációnak (tokenization). A tokenizáló egy rögzített szótár alapján dolgozik, amelyben minden ismert token egy egyedi számot kap. A szövegből így számok sorozata lesz, és a modell innentől ezekkel a számokkal számol.


EGY MONDAT TOKENEKRE BONTVA token izál juk a szöveg et . 4021 877 318 12 6540 40 9 Egy hosszabb szó több tokenre esik szét, egy gyakori rövid szó egyben marad
A tokenizáló feldarabolja a szöveget, és minden darabhoz a szótárból egy azonosító számot rendel. A modell ezekkel a számokkal dolgozik.

Sem betű, sem szó

Kézenfekvőnek tűnne betűnként vagy szavanként dolgozni, de mindkét szélső megoldásnak komoly hátránya van. Ha minden token egy betű, akkor a szótár apró, viszont a leghétköznapibb mondat is nagyon sok tokenből áll, és a modellnek mindent az egyes betűkből kell felépítenie. Ha viszont minden token egy egész szó, akkor a szótár beláthatatlanul nagyra hízik, és minden ritka vagy még sosem látott szó megoldhatatlan problémát okoz. A modern tokenizálók ezért a kettő közötti szódarab szintet választják, amit az angol szakszó subword néven ismer.


Két szélső megoldás gyengéi

  • Betűnként túl sok token egy mondathoz
  • Szavanként hatalmasra nő a szótár
  • Ismeretlen szó nem fér a szótárba
  • Ragozott alakok mind külön férőhelyet kérnek

Miért jó a szódarab

  • Gyakori szavak egyben maradnak
  • Ritka szavak ismert darabokból állnak össze
  • A szótár mérete kézben tartható
  • Ismeretlen szó is mindig ábrázolható

A byte pair encoding alapötlete

A legelterjedtebb módszer, amellyel a szótár összeáll, a byte pair encoding, rövidítve BPE. Az alapötlet egyszerű. Kezdjük a lehető legkisebb egységekkel, a különálló karakterekkel, majd nézzük meg, melyik két szomszédos egység fordul elő a legtöbbször egymás mellett a tanítószövegben. Ezt a leggyakoribb párt összevonjuk egyetlen új tokenné, és felírjuk az összevonás szabályát. Utána megismételjük az egészet, keressük a most leggyakoribb párt, összevonjuk, és így tovább. Minden összevonás egy hosszabb, gyakori darabot ad a szótárhoz.

A folyamat addig ismétlődik, amíg el nem érjük a kívánt szótárméretet. A végeredmény egy szótár, amely tartalmazza a karaktereket és a fokozatosan összevont, egyre hosszabb gyakori darabokat, valamint az összevonási szabályok listája, amely alapján bármely új szöveg ugyanígy tokenizálható.


  1. Karakterekre bontásMinden szöveg először a legkisebb egységeire, a különálló karakterekre esik szét.
  2. A leggyakoribb pár kereséseMegszámoljuk, melyik két szomszédos egység fordul elő a legtöbbször egymás mellett.
  3. ÖsszevonásA leggyakoribb párt egyetlen új tokenné vonjuk össze, és felírjuk az összevonás szabályát.
  4. Ismétlés a célméretigA keresést és összevonást addig ismételjük, amíg a szótár el nem éri a kívánt méretet.

START l · e · g · e · b · b csupa karakter e+b gyakori l · e · g · e · eb · b eb összevonva eb+b gyakori l · e · g · e · ebb ebb összevonva MI KERÜLT A SZÓTÁRBA karakterek eb ebb és így tovább
A BPE lépésről lépésre vonja össze a leggyakoribb szomszédos párokat. Minden összevonás egy új, hosszabb darabbal bővíti a szótárt.

Miért fontos ez a gyakorlatban

A tokenizáció nem semleges technikai lépés, hanem érdemben befolyásolja, mennyibe kerül egy szöveg feldolgozása. A modell a tokenek számában méri a munkát, így ugyanaz a gondolat annál drágább és lassabb, minél több tokenre esik szét. A gyakori angol szavak jellemzően egyetlen tokenből állnak, míg a ritkább nyelvek és a hosszú, ragozott alakok több darabra bomlanak. A magyar szöveg emiatt gyakran több tokent igényel, mint egy hasonló hosszúságú angol mondat, mert a ragozás sok szódarabot hoz létre.

A tokenizáció szabja meg azt is, mit lát egyáltalán a modell. Ha egy tokenizáló nem ismeri jól egy nyelv jellegzetes darabjait, akkor a szöveget kevésbé hatékonyan bontja fel, és a modellnek több munkából kell összeraknia ugyanazt a jelentést.


2

Két rögzített dolog. A tanítás végén két dolog áll készen. Egy szótár, amely minden ismert tokenhez egy számot rendel, és az összevonási szabályok listája, amely alapján bármilyen új szöveg ugyanígy, kiszámíthatóan tokenekre bontható.


← Előző lecke Következő lecke →

Workshop

AI Transformation Day

Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.

Érdekel a program →