Az LLM-ek technikai háttere

2. fejezet: Tokenizáció

Fodor Tamás írása

Ez a cikksorozat Andrej Karpathy LLM-ekről (Large Language Model – nagy nyelvi modellek) tartott előadásán alapul. Karpathy, aki korábban a Tesla mesterséges intelligencia részlegét vezette és az OpenAI egyik alapítója volt, részletesen bemutatja a ChatGPT-hez hasonló rendszerek működését. Az előadás végigvezet minket azon az úton, amely a nyers internetes szövegektől az intelligens AI-asszisztensekig vezet.

Előző: Adatgyűjtés és előfeldolgozás • Következő: Neurális hálózatok • Tanítási folyamat • Következtetés • Utótanítás • Fejlett képességek • Értékelés és telepítés

Szövegből számok

A hatalmas szöveges adathalmazok összegyűjtése és előfeldolgozása után alapvető kihívással szembesülünk: a neurális hálózatok kizárólag számokat tudnak feldolgozni, míg az emberi kommunikáció szavakból, mondatokból és bekezdésekből áll. A tokenizáció az a kritikus átalakítási folyamat, amely az ember által olvasható szöveget neurális hálózatok számára feldolgozható számsorozattá alakítja.

Bár egyszerű technikai követelménynek tűnhet, a tokenizációs döntések alapvetően meghatározzák az AI-rendszerek képességeit. A szövegdarabolás módja közvetlenül befolyásolja, hogy a modell mennyire jól dolgozik bizonyos szavakkal, milyen hatékonyan dolgoz fel különböző nyelveket, és mennyibe kerül a futtatása.

A szöveg számokká alakítása azonnali tervezési kihívásokat vet fel. Az egyes karakterek legyenek tokenek? Teljes szavak legyenek a tokenek? Hogyan kezeljük az írásjeleket, a szóközöket vagy a korábban nem látott szavakat? Minden megközelítés jelentős kompromisszumokkal jár. A karakterszintű tokenizáció rendkívül hosszú sorozatokat eredményez, növelve a tanítási időt és a számítási költségeket. A szószintű tokenizáció több százezer szimbólumból álló szótárat igényel, és kudarcot vall, amikor a tanítási szótáron kívüli új szavakkal találkozik.

Részszavas tokenizáció

A modern AI-rendszerek elegáns megoldást alkalmaznak ezekre a kihívásokra: a részszavas tokenizációt. Ahelyett, hogy karaktereket vagy teljes szavakat használnának, a rendszer megtanulja a szöveget statisztikailag optimális darabokra bontani, amelyek egyensúlyt teremtenek a hatékonyság és a rugalmasság között.

Mielőtt a szöveg elérné a válaszokat generáló neurális hálózatot, egy specializált előfeldolgozó rendszerrel találkozik: a tokenizálóval. Ez a rendszer arra lett betanítva, hogy a nyelvi adatokban megfigyelt statisztikai minták alapján optimális egységekre bontsa a szöveget. A GPT-4 tokenizáló konkrét példát szolgáltat. A “Hello world” kifejezés két tokenné válik: “Hello” (token ID 15339) és ” world” (token ID 1917, beleértve a vezető szóközt). A kisbetűs “hello world” azonban más tokeneket eredményez. Extra szóközök hozzáadása ismét megváltoztatja a tokenizációt. A rendszer nagy érzékenységet mutat ezekre a részletekre, miután szövegpéldák milliárdjaiból tanulta meg ezeket a mintákat.

A modern tokenizáció olyan algoritmusokat alkalmaz, mint a Byte Pair Encoding (BPE), amelyek hatékony szövegszegmentálási stratégiákat tanulnak. A rendszer egyedi karakterekkel kezd, és fokozatosan azonosítja a gyakran előforduló karakterkombinációkat, amelyek külön tokent érdemelnek. A tokenizáló felismerheti, hogy az “ing” végződés elég gyakran fordul elő ahhoz, hogy saját tokent kapjon. Az olyan gyakori előtagok, mint az “un” vagy “re” szintén saját tokeneket kapnak. Ez a megközelítés kezeli mind a gyakori szavakat (amelyek egyetlen tokent kapnak), mind a ritka szavakat (amelyek felismerhető részszavas komponensekre bomlanak).

Numerikus reprezentáció és szótár

A szöveg szegmentálása után minden token egyedi numerikus azonosítót kap egy rögzített szótárból. A kortárs nyelvi modellek jellemzően 50 000-100 000 különböző tokent tartalmazó szótárakat használnak. Ez matematikai reprezentációt hoz létre a nyelvről. A “The cat sat on the mat” mondat átalakulhat például [464, 2355, 7563, 319, 262, 2603] formába. Bár ezek a számok önkényesnek tűnnek, a jelentés alapvető egységeit képviselik, amelyeket a neurális hálózat megtanul manipulálni.

A szótár mérete kritikus mérnöki döntés. A nagyobb szótárak lehetővé teszik, hogy több token teljes szavakat vagy kifejezéseket képviseljen, csökkentve a sorozat hosszát és javítva a feldolgozási hatékonyságot. A nagyobb szótárak azonban több neurális hálózati paramétert igényelnek és növelik a tanítás komplexitását. A kisebb szótárak több részszavas felosztást tesznek szükségessé, hosszabb sorozatokat hozva létre, de kevesebb paramétert igényelve. A modern rendszerek az 50 000-100 000 token közötti tartományban találták meg az optimális egyensúlyi pontot.

Ez az intelligens szegmentálás lehetővé teszi a rendszer számára, hogy korábban nem látott szavakat is feldolgozzon azáltal, hogy ismert komponensekre bontja őket. Egy olyan technikai neologizmus, mint a “bioengineering”, felosztható “bio”, “engineer” és “ing” részekre – mindegyik komponenst más kontextusból ismeri a rendszer. Minden lehetséges szöveg – a klasszikus irodalomtól a műszaki dokumentációig – reprezentálható ebből a rögzített szótárból származó sorozatokként.

Kontextusablakok és számítási korlátok

A tokenizáció közvetlenül befolyásolja a jelenlegi AI-rendszerek egyik legjelentősebb korlátját: a kontextusablakokat. Minden nyelvi modellnek van egy maximális tokenkapacitása, amelyet egyszerre tud feldolgozni – ez a kontextusablaka. A GPT-4 körülbelül 8000 tokent kezel, míg az újabb modellek 100 000 vagy akár egymillió tokent is támogatnak.

Ez a korlátozás azt jelenti, hogy a tokenizáció hatékonysága közvetlenül meghatározza a modell képességeit. Ha a tokenizáció pazarló, és túl sok tokent használ egyszerű fogalmakhoz, a modell hamarabb eléri a kontextusablak határát, és kénytelen elfelejteni a beszélgetés vagy dokumentum korábbi részeit. Ez magyarázza a hatékonyabb tokenizációs módszerek folyamatos kutatását. A jobb tokenizáció hosszabb dokumentumok feldolgozását, hosszabb beszélgetések követését és a számítási erőforrások hatékonyabb kihasználását teszi lehetővé.

A tokenizáció minősége nem várt módokon hat a modell teljesítményére. A rossz tokenizáció megnehezítheti bizonyos fogalmak megtanulását, következetlenségeket okozhat a reprezentációban, vagy lassíthatja a szövegfeldolgozást. Ha a műszaki szakkifejezések rendszeresen sok apró darabra töredeznek, a modell nehezen alakít ki erős reprezentációt ezekről a fogalmakról. Ezzel szemben a specializált tokenizáció kivételes teljesítményt hozhat adott szakterületeken.

Nyelvspecifikus kihívások

A tokenizáció inherens nyelvi elfogultságokat mutat. A legtöbb jelenlegi rendszert az angol nyelvre optimalizálták, ami mérhető teljesítménykülönbségekben nyilvánul meg. Az angol szavak gyakran egyetlen tokenre képződnek le, míg más nyelvekben az egyenértékű fogalmak több részszavas darabot igényelhetnek.

Ez feldolgozási egyenlőtlenségeket hoz létre: a modellek kevesebb tokennel dolgozzák fel az angol szöveget, javítva a sebességet és megőrizve a kontextusablak kapacitását. A nem angol szöveg több tokent igényel ugyanannyi szemantikai tartalomhoz, ami potenciálisan rontja a teljesítményt. Ez a technikai korlátozás a globálisan méltányos AI-rendszerek fejlesztésének szélesebb körű kihívásait tükrözi.

A komplex morfológiájú nyelvek más tokenizációs stratégiákat igényelnek, mint az angol. A programozási nyelvek, matematikai jelölések és specializált terminológiák mind egyedi tokenizációs kihívásokat jelentenek. A specializált AI-rendszereket fejlesztő szervezetek gyakran jelentős összegeket fektetnek be egyedi tokenizálók fejlesztésébe, amelyek az adott felhasználási esetükre vannak optimalizálva, ahelyett hogy az általános internetes szövegekre tervezett általános célú tokenizációt alkalmaznák.

A neurális feldolgozás alapja

A tokenizáció azért kulcsfontosságú, mert minden további feldolgozási lépést meghatároz. A neurális hálózat soha nem találkozik nyers szöveggel – csak számokká alakított tokenekkel dolgozik. A tanítás során a tokenek közötti mintákat tanulja meg. A szöveggenerálás során tokensorozatokat állít elő, amelyeket aztán vissza kell alakítani olvasható szöveggé.

Ez azt jelenti, hogy a tokenizáció korlátai és torzításai végiggyűrűznek az egész rendszeren. Ha a tokenizáló rosszul kezel bizonyos szövegtípusokat, a végső AI-rendszer is ugyanezekkel a problémákkal fog küzdeni. Ha viszont bizonyos fogalmakat hatékonyan tokenizál, azokon a területeken a modell is jól fog teljesíteni.

Világszerte folynak kutatások nyelvfüggetlen tokenizációs módszerek kifejlesztésére, de ez még mindig aktív fejlesztési terület, jelentős hatással a globális AI-elérhetőségre. A tokenizáció kritikus feladat: ez az a pont, ahol az emberi nyelv géppel feldolgozható formává alakul, és ez alapvetően meghatározza a modern AI-rendszerek lehetőségeit és korlátait.

Következő lépések

A szöveg sikeres átalakítása után – immár neurális hálózatok által feldolgozható számsorozatok formájában – áttérhetünk magukra a neurális hálózatokra. A következő fejezet a transzformer architektúrát mutatja be: azt a bonyolult matematikai rendszert, amely megtanulja előrejelezni a sorozatok következő tokenjeit. Megvizsgáljuk, hogyan működnek együtt paraméterek milliárdjai a tokensorozatok rejtett mintáinak felismerésében, és hogyan finomítja a tanítási folyamat ezeket a paramétereket, hogy a hálózat előrejelzései egyre pontosabban tükrözzék az emberi szövegek sajátosságait.

Előző: Adatgyűjtés és előfeldolgozás • Következő: Neurális hálózatok • Tanítási folyamat • Következtetés • Utótanítás • Fejlett képességek • Értékelés és telepítés

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük