Ugrás a fő tartalomra

szójegyzékbejegyzés

Tokenizer

Kategória
LLMs & Generative AI
Nehézség
Középhaladó

Meghatározás

A tokenizáló egy számítási összetevő, amely a nyers szöveget kisebb egységekre, úgynevezett tokenekre bontja, amelyeket aztán numerikus azonosítókká képeznek le a gépi tanulási modellek általi feldolgozáshoz.

Működés és összefüggések

A modern AI-ban a modellek nem úgy 'olvassák' a szöveget, mint az emberek; számokat dolgoznak fel. A tokenizáló az alapvető előfeldolgozó rétegként működik, amely a bemeneti szöveget tokenekre szegmentálja – ezek lehetnek szavak, részszavak vagy egyes karakterek. A modern LLM-ek jellemzően részszó-tokenizációt (például Byte-Pair Encoding vagy WordPiece) használnak, amely egyensúlyt teremt a szókincs mérete és a ritka szavak vagy elírások kezelésének képessége között azáltal, hogy azokat értelmes töredékekre bontja. A szegmentálás után minden token egy egyedi egész számú azonosítót kap a modell szókincséből. Ezt a numerikus sorozatot ezután sűrű vektorokká (beágyazásokká) alakítják, amelyeket a modell az összefüggések kiszámítására és a következő tokenek előrejelzésére használ. A tokenizáló kiválasztása a modell betanítása során rögzített; a modelltől eltérő tokenizáló használata értelmetlen kimenetet eredményez.

Miért fontos

Mivel az LLM-ek véges, tokenekben mért kontextusablakokkal rendelkeznek, a tokenizáló hatékonysága közvetlenül befolyásolja, mennyi információt tud egy modell egyszerre feldolgozni.

Gyakorlati példa

Amikor beírja az 'unhappiness' szót egy LLM-be, a tokenizáló három tokenre bonthatja: ['un', 'happi', 'ness']. Ha a modell tokenizálója nem hatékony, sokkal több töredékre bonthatja ugyanazt a szót, ami több helyet foglal el a modell kontextusablakából, és növeli az API-hívás költségét. A fejlesztőknek tisztában kell lenniük ezekkel a felosztásokkal, hogy biztosítsák, az utasításaik a modell működési határain belül maradjanak.

Gyakori hibák

  • Azt feltételezni, hogy egy token mindig egy szónak felel meg; a valóságban egyetlen szó több token is lehet, és egyes tokenek szórészletek is lehetnek.
  • Olyan tokenizáló használata, amely nem egyezik a használt konkrét modellel, ami 'szemét' bemenethez és koherensnek nem nevezhető modellválaszokhoz vezet.
  • Figyelmen kívül hagyni a szóközök és az írásjelek hatását, amelyeket sok modell különálló tokenként kezel.
  • Alábecsülni a hosszú dokumentumok tokenizációjának költségét, ami váratlan API-számlázáshoz vagy csonkolt bemenetekhez vezet.

Gyakori kérdések

Miért használnak a modellek részszó-tokenizációt egész szavak helyett?

Az egész szavas tokenizáció lehetetlenül nagy szókincset hoz létre, és nem kezeli az új, ritka vagy elírt szavakat. A részszó-tokenizáció lehetővé teszi a modell számára, hogy bármely szót felépítsen a gyakori töredékek kisebb, rögzített készletéből, így robusztusabb és memóriahatékonyabb.

Megváltoztathatom egy előre betanított modell tokenizálóját?

Nem. A tokenizáló a modell architektúrájának szerves része. A tokenizáló által generált numerikus azonosítóknak pontosan meg kell felelniük azoknak a beágyazásoknak, amelyeket a modell a betanítás során megtanult. Ennek megváltoztatása a modell nulláról történő újratanítását igényelné.

Hogyan becsülhetem meg, hány tokent fog fogyasztani a szövegem?

A legtöbb modellszolgáltató kínál 'tokenizáló' vagy 'tiktoken' eszközt, amely lehetővé teszi a szöveg bevitelét, és pontosan láthatja, hogyan szegmentálódik, és hány tokennek számít. Ez a legpontosabb módja a költségek és a kontextusfelhasználás előrejelzésének.