Mik azok a tokenek?
A tokenek az OpenAI modelljei által feldolgozott szöveg építőelemei. A nyelvtől és a szövegkörnyezettől függően egyetlen karakterből vagy akár egy teljes szóból is állhatnak. A szóközök, az írásjelek és a szórészletek mind beleszámítanak a tokenek számába. Az API így bontja fel belsőleg a szöveget a válasz létrehozása előtt.
Hasznos ökölszabályok angol szövegekhez:
1 token ≈ 4 karakter
1 token ≈ ¾ szó
100 token ≈ 75 szó
1–2 mondat ≈ 30 token
1 bekezdés ≈ 100 token
~1500 szó ≈ 2048 token
A tokenizálás modellenként és kódolásonként eltér. A célmodell pontos tokenszámát a Tokenizáló eszközzel vagy a tiktoken.encoding_for_model(model) használatával határozhatod meg.
Példák
Íme néhány valós szövegminta a hozzávetőleges tokenszámukkal:
Wayne Gretzky idézete: „A kihagyott lövések 100%-a az, amelyet meg sem próbálsz” = 11 token
Az OpenAI Alapokmánya = 476 token
Az Amerikai Egyesült Államok Függetlenségi Nyilatkozata = 1695 token
A tokenszám kiszámítása
Amikor szöveget küldesz az API-nak:
A rendszer tokenekre bontja a szöveget.
A modell feldolgozza ezeket a tokeneket.
A válasz tokensorozatként jön létre, amelyet a rendszer ezután visszaalakít szöveggé.
A rendszer több kategóriában követi nyomon a tokenhasználatot:
Bemeneti tokenek – a kérésedben szereplő tokenek.
Kimeneti tokenek – a válaszban létrehozott tokenek.
Gyorsítótárazott tokenek – a beszélgetési előzményekből újra felhasznált tokenek (gyakran kedvezményes díjszabással).
Érvelési tokenek – egyes fejlett modellek a végső kimenet létrehozása előtt további belső „gondolkodási lépéseket” végeznek.
Ezek az értékek az API-válasz metaadataiban jelennek meg, és a számlázás, valamint a használat nyomon követésének alapjául szolgálnak.
A tokenizálás részletesebb megismeréséhez használd interaktív Tokenizáló eszközünket, amellyel kiszámíthatod a tokenek számát, és megnézheted, hogyan bomlik a szöveg tokenekre.
Ha inkább programozottan szeretnél szöveget tokenizálni, használd a Tiktoken gyors BPE-tokenizálót, amelyet kifejezetten az OpenAI modelljeihez használnak.
Tokenkorlátok
Minden modell esetében korlátozott a bemeneti és kimeneti tokenek együttes maximális száma. A jelenlegi nagy kapacitású modellek akár több százezer tokent is képesek kezelni a kontextusban, de a gyakorlati korlátok a modell verziójától és a használati csomagtól függően eltérhetnek.
Ha túlléped a korlátot, a következőket teheted:
Rövidítsd le vagy fogalmazd át az utasításokat.
Bontsd kisebb részekre a hosszú szöveget.
Küldés előtt foglald össze vagy dolgozd fel előzetesen a bemeneteket.
Tokenek díjszabása
Az API használatának díja tokenalapú, és a modelltől, valamint attól függ, hogy bemeneti, kimeneti vagy gyorsítótárazott tokenekről van-e szó. Az aktuális díjakat az OpenAI díjszabási oldalán találod. Egyes érvelési modellek belsőleg több tokent használhatnak, de az elvégzett feladatonként szükséges tokenek számának csökkentésével igyekeznek javítani a hatékonyságot.
A tokenek működésének felfedezése
Az API a korpuszadatokban szereplő szövegkörnyezetük alapján kezeli a szavakat. A modellek tokenek listájává alakítják az utasítás bemenetét, feldolgozzák az utasítást, majd a megjósolt tokeneket visszaalakítják a válaszban látható szavakká.
Két, számunkra azonosnak tűnő szó a szövegen belüli felépítésétől függően eltérő tokenekké alakulhat. Nézzük meg, hogyan hoz létre az API tokenértékeket a „red” szóhoz annak szövegkörnyezete alapján:
A fenti első példában a „2266” token a „ red” kifejezéshez tartozik, és egy záró szóközt is tartalmaz. (Megjegyzés: ezek csak szemléltetési célú tokenazonosítók.)
A „ Red” kifejezéshez tartozó „2296” token (kezdő szóközzel és nagy kezdőbetűvel) eltér a kisbetűs „ red” kifejezés „2266” tokenjétől.
Amikor a „Red” egy mondat elején szerepel, a létrehozott token nem tartalmaz kezdő szóközt. A „7738” token eltér a szó előző két példájától.
Megfigyelések:
Minél valószínűbb vagy gyakoribb egy token, annál alacsonyabb szám tartozik hozzá:
A ponthoz létrehozott token mindhárom mondatban ugyanaz („13”). Ennek az az oka, hogy a korpuszadatokban a pont szövegkörnyezeti használata általában nagyon hasonló.
A „red” szóhoz létrehozott token a mondaton belüli helyétől függően változik:
Kisbetűvel a mondat közepén: „ red” – (token: „2266”)
Nagybetűvel a mondat közepén: „ Red” – (token: „2297”)
Nagybetűvel a mondat elején: „Red” – (token: „7738”)
