Blog · Útmutató
Mi az a token? Tokenizálás, és miért drágább magyarul
Az AI-modellek tokenekben olvasnak, nem szavakban. Hogyan működik a tokenizálás, és miért kétszer annyi token ugyanaz a szöveg magyarul, mint angolul.
A nyelvi modelleket tokenre árazzák, tokenben korlátozzák, és a sebességüket is tokenben mérik. A token azonban nem szó és nem betű, hanem szövegdarab, amelyet a modell tokenizálója egy egységként kezel. Hogy a szöveg milyen darabokra esik szét, az dönti el, mennyibe kerül egy AI-modell, mennyi fér bele egy dokumentumból egyszerre, és mennyire érti a nyelvünket. Megmértük magyarul: ugyanaz a mondat nagyjából kétszer annyi token, mint angolul.
Mi az a token?
A modell nem betűket olvas. Mielőtt a szöveg a hálózathoz ér, a tokenizáló tokenekre bontja, és mindegyiket egy számmal, egy rögzített szókészletbeli azonosítóval helyettesíti. A modell ilyen azonosítók sorozatait olvassa és írja, a tokenizáló pedig a kimenetét visszaalakítja szöveggé.
A gyakori angol szavak általában egyetlen tokent tesznek ki, sokszor az előttük álló szóközzel együtt. A ritkább szavak több darabra esnek. Az OpenAI o200k_base tokenizálójával, amelyet a GPT-4o használ:
| Szöveg | Token | Darabok |
|---|---|---|
| „ conscience” (lelkiismeret) | 1 | conscience |
| „ law” (törvény) | 1 | law |
| „ in our houses” | 3 | in · our · houses |
| „ törvény” | 2 | tör · vény |
| „ házainkban” | 5 | há · z · ain · k · ban |
| „ lelkiismerettel” | 5 | lel · ki · is · mer · ettel |
A számok, a programkód, az emojik és a ritka nevek ugyanígy darabolódnak. Minden modellcsaládnak saját tokenizálója van, ezért ugyanaz a szöveg modellenként más tokenszámot ad.
Honnan tudja a tokenizáló, hol vágjon?
A mai tokenizálók többsége a bájtpár-kódolás (byte-pair encoding, BPE) valamelyik változata, amelyet Sennrich, Haddow és Birch (2016) igazított a nyelvi modellekhez. Egyes karakterekből vagy bájtokból indul, és egy nagy szövegmintában újra és újra a leggyakoribb szomszédos párt vonja össze új tokenné, amíg a szókészlet el nem éri a kívánt méretet, jellemzően a 100–250 ezer elemet.
Az eredmény a mintát tükrözi. Ami gyakori benne, egyetlen token lesz; ami ritka, darabokban marad. Mivel a minta a legtöbb modellnél túlnyomórészt angol, az angol szavak egészben kapnak tokent, más nyelvek pedig töredékeket. A BPE a nyelvtant sem ismeri: a házainkban fenti darabjai nem a valódi részei, a ház-aink-ban mentén válnak el.
Hogyan becsüljük meg a tokenszámot?
Angol szövegre az OpenAI ökölszabálya szerint egy token nagyjából négy karakter, vagyis háromnegyed szó: 1000 token körülbelül 750 angol szó. Ez a szabály nem vihető át más nyelvekre, kódra vagy számtáblázatokra. Biztosra így lehet menni:
- A szolgáltató saját tokenizálójával, vagy egy rá épülő tokenszámlálóval, a saját szövegünk egy mintáján.
- A használati adatokból, amelyeket az API-k minden válasz mellé visszaadnak: bemeneti és kimeneti tokenek. A LE PEAK minden válasz alatt mutatja őket.
Miért kell egyes nyelveknek több token?
Ugyanaz a tartalom nyelvenként eltérő számú tokenbe kerül. Petrov és társai (2023) ugyanazon szövegek fordításait hasonlították össze, és nyelvek között akár tizenötszörös különbséget találtak a tokenizált hosszban; Ahia és társai (2023) azt mutatták meg, mit jelent ez az API-számlákon. Két dolog számít: mennyit látott a tokenizáló az adott nyelvből, és hogyan épülnek a nyelv szavai.
A magyar ragozó nyelv: a szótőhöz toldalékokat fűz, így egyetlen szó azt is kifejezi, amit az angol több szóra bont. A házainkban angolul „in our houses”. A magyar szavak ezért hosszúak és sokfélék, és egy főleg angolon tanított tokenizáló kevés magyar szót látott egészben, így rövid darabokra bontja őket.
Megmértük: magyar és angol
Az Emberi Jogok Egyetemes Nyilatkozata 1. cikkét vettük angolul és hivatalos magyar fordításában, és két OpenAI-tokenizálóval számoltuk meg a tokeneket (a nyílt forráskódú gpt-tokenizer könyvtár 2.9.0-s verziójával).
| Angol | Magyar | Arány | |
|---|---|---|---|
| Szó | 30 | 24 | 0,8× |
| Karakter | 170 | 179 | 1,05× |
Token, cl100k_base (GPT-4) | 33 | 69 | 2,09× |
Token, o200k_base (GPT-4o) | 33 | 62 | 1,88× |
A magyar szövegben kevesebb a szó és nagyjából ugyanannyi a karakter, mégis körülbelül kétszer annyi token: szavanként mintegy 2,6, szemben az angol 1,1-del. Az újabb, kétszer akkora szókészletű tokenizáló szűkíti a különbséget, de nem tünteti el. Egyetlen mondat kis minta, ezért az arány inkább szemléltetés, és érdemes a saját szövegeinken is megmérni; a nagyobb vizsgálatok azonban hasonlót mutatnak a magyarhoz hasonló nyelvekre.
Mit jelent ez a gyakorlatban?
Magyar szövegnél, ilyen tokenizálóval, minden tokenalapú szám nagyjából ugyanilyen arányban romlik:
- Költség. Tokenalapú árnál ugyanaz a tartalom magyarul nagyjából kétszer annyiba kerül, mint angolul. Lásd: LLM API pricing explained (angolul).
- Kontextus. A kontextusablakba feleannyi magyar szöveg fér; lásd: What is a context window? (angolul).
- Sebesség. A modellek másodpercenként adott számú tokent állítanak elő, így egy ugyanolyan hosszú magyar válasz tovább tart.
- Minőség. A széttördelt szavak nehezebb feladat elé állítják a modellt. Ez is oka annak, hogy az általános modellek gyakrabban hibáznak magyarul, különösen a jogi nyelvben, és ez is a magyar nyelvre épülő modellek mellett szól; lásd: Mesterséges intelligencia a magyar jogban.
A KTwo nem hozta nyilvánosságra a KTwo Crust 1 Beta és a KTwo Mantle 0.5 tokenizálóját, ezért ezekre itt nem tudunk számokat adni.
Gyakori kérdések
Mi az a token a mesterséges intelligenciában?
Szövegdarab, gyakran egy szó vagy szórész, amelyet a nyelvi modell tokenizálója egy egységként kezel. A modellek tokenben olvasnak, írnak, és tokenben korlátozzák és árazzák őket.
Hány szó 1000 token?
Angolul körülbelül 750 szó, az OpenAI ökölszabálya szerint. Más nyelveken, kódban és számoknál szavanként általában több token kell; a mi mérésünkben magyarul szavanként mintegy 2,6.
Miért tokenre árazzák az AI-modelleket?
Mert a modell munkája és memóriaigénye az elolvasott és megírt tokenek számával nő, nem a szavakéval vagy a karakterekével.
Miért több token a magyar szöveg, mint az angol?
Mert a tokenizálókat főleg angol szövegen tanítják, a magyar pedig szótőből és sok toldalékból épít hosszú szavakat, amelyek ritkán szerepelnek egészben a szókészletben, így darabokra esnek.
Minden modell ugyanúgy számolja a tokeneket?
Nem. Minden modellcsaládnak saját tokenizálója és szókészlete van, ezért ugyanaz a szöveg modellenként más tokenszámot és más árat ad.
További cikkek, angolul
-
Guide
What is a context window? AI memory limits, explained
A model’s context window is how much text it can read at once. What it counts, why long contexts cost memory and money, and why bigger isn’t always better. -
Pricing
LLM API pricing explained: cost per million tokens
How per-million-token pricing works, why output costs more than input, worked monthly cost examples, and the hidden multipliers that inflate an LLM bill. -
Hungarian law
AI for Hungarian law: introducing KTwo Mantle 0.5
Why Hungarian law needs its own AI model, what makes legal Hungarian hard for general models, how to judge a legal model, and where KTwo Mantle 0.5 stands.