Mielőtt egy nyelvi modell bármit is beolvasna, a szöveget darabokra kell vágni, amelyeket meg tud számolni. Ezek a darabok a tokenek, és a tokenizálás maga a darabolás. Egy token lehet egy egész szó, egy töredék, mint például az "ing" vagy a "pre", egy írásjel, vagy akár egyetlen karakter is. A modell soha nem lát nyers szöveget; egész számok azonosítók sorozatát látja, amelyek ezekhez a tokenekhez vannak rendelve.
A különböző sémák eltérő kompromisszumokat kötnek. A szó szintű tokenizáció megőrzi a jelentést, de ritka szavak millióira robban fel, és nehezen kezelhetők az elgépelésekkel. A karakter szintű tokenizációnak apró szókincse van, de nagyon hosszú sorozatokat hoz létre. Az olyan alszómódszerek, mint a bájtpáros kódolás, a kettő között helyezkednek el: karakterekkel kezdik, és ismételten egyesítik a leggyakoribb párokat, amíg el nem érik a célzott szókincsméretet.
Miért fontos
- A szókincs mérete határozza meg a modell beágyazási táblázatát és memóriaigényét.
- A tokenszámláló beállítja a kontextus ablakot és az egyes API-hívások költségét.
- A rossz tokenizáció olyan módon bontja a szavakat, ami rontja a többnyelvű teljesítményt
- A nem latin írásmódot használó nyelvekben gyakran sokkal több tokenre van szükség mondatonként
Egy angol mondat akár 20 tokent is használhat; ugyanaz a mondat thai vagy hindi nyelven akár 60-at vagy többet is igénybe vehet egy nyugati központú tokenizer alatt. Ez az egyensúlyhiány több milliárd beszélő számára befolyásolja a sebességet, az árat és a pontosságot.
Comments
No comments yet. Be the first to share a thought.
Leave a comment