Mik azok a tokenek?
A tokenek a szöveg építőelemei, amelyeket az OpenAI modellek feldolgoznak. A nyelvtől és a kontextustól függően lehetnek akár egyetlen karakter hosszúságúak vagy egy teljes szónyiak. A szóközök, az írásjelek és a szórészek is beleszámítanak a tokenszámba. Az API így szegmentálja belsőleg a szöveget, mielőtt választ generálna.
Hasznos ökölszabályok angol nyelvhez:
1 token ≈ 4 karakter
1 token ≈ ¾ szó
100 token ≈ 75 szó
1–2 mondat ≈ 30 token
1 bekezdés ≈ 100 token
~1 500 szó ≈ 2 048 token
A tokenizálás nyelvenként eltérhet. Például a „Cómo estás” (spanyolul: „Hogy vagy?”) 10 karakterre 5 tokent tartalmaz. A nem angol szöveg gyakran magasabb token/karakter arányt eredményez, ami befolyásolhatja a költségeket és a korlátokat.
Példák
Íme néhány valós szövegminta a hozzávetőleges tokenszámukkal:
Wayne Gretzky-idézet: „Azt a lövést, amit nem eresztesz meg, 100%-ban elhibázod” = 11 token
Az OpenAI Charta = 476 token
Az Egyesült Államok Függetlenségi Nyilatkozata = 1 695 token
Hogyan számítják ki a tokenszámot
Amikor szöveget küldesz az API-nak:
A szöveg tokenekre bomlik.
A modell feldolgozza ezeket a tokeneket.
A válasz tokenek sorozataként jön létre, majd visszaalakítódik szöveggé.
A tokenhasználatot több kategóriában követjük:
Bemeneti tokenek – a kérésedben szereplő tokenek.
Kimeneti tokenek – a válaszban generált tokenek.
Gyorsítótárazott tokenek – a beszélgetési előzményekből újrahasznált tokenek (gyakran kedvezményes díjszabással).
Érvelési tokenek – egyes fejlett modellekben belsőleg extra „gondolkodási lépések” szerepelnek a végső kimenet létrehozása előtt.
Ezek a számok megjelennek az API-válasz metaadataiban, és a számlázáshoz, illetve a használat követéséhez használjuk őket.
A tokenizálás további megismeréséhez használhatod interaktív Tokenizer eszközünket, amellyel kiszámíthatod a tokenek számát, és megnézheted, hogyan bomlik a szöveg tokenekre.
Másik lehetőségként, ha programozottan szeretnél szöveget tokenizálni, használd a Tiktoken eszközt, amely egy gyors BPE-tokenizáló, és kifejezetten az OpenAI modellekhez használják.
Tokenkorlátok
Minden modell esetében van egy maximális kombinált tokenkorlát (bemenet + kimenet). A jelenlegi nagy kapacitású modellek akár több százezer tokent is támogatnak kontextusban, bár a gyakorlati korlátok a modellverziótól és a használati csomagodtól függően eltérhetnek.
Ha túlléped a korlátot, a következőket teheted:
Rövidítsd vagy fogalmazd át az utasításokat.
Bontsd a nagy szöveget kisebb részekre.
Foglald össze vagy dolgozd fel előzetesen a bemeneteket elküldés előtt.
Tokenárak
Az API használata tokenenként kerül elszámolásra, ami modelltől, valamint attól függően változik, hogy a token bemeneti, kimeneti vagy gyorsítótárazott. Az aktuális díjakat lásd az OpenAI díjszabási oldalán. Egyes érvelési modellek belsőleg több tokent használhatnak, de céljuk a hatékonyság javítása azzal, hogy csökkentik az egy befejezett feladathoz szükséges tokenek számát.
A tokenek működésének feltárása
Az API a korpusz adataiban lévő kontextusuk alapján kezeli a szavakat. A modellek veszik az utasítást, a bemenetet tokenek listájává alakítják, feldolgozzák az utasítást, majd az előre jelzett tokeneket visszaalakítják azokká a szavakká, amelyeket a válaszban látunk.
Ami számunkra két azonos szónak tűnhet, különböző tokenekké generálódhat attól függően, hogyan épülnek be a szövegbe. Nézd meg, hogyan generál az API tokenértékeket a „red” szóhoz a szövegbeli kontextusa alapján:
Az első fenti példában a „2266” token a „ red” alakhoz egy záró szóközt tartalmaz (megjegyzés: ezek bemutatási célú tokenazonosító-példák).
A „2296” token a „ Red” alakhoz (vezető szóközzel és nagy kezdőbetűvel) eltér a „2266” tokentől, amely a „ red” alakhoz tartozik kis kezdőbetűvel.
Amikor a „Red” egy mondat elején szerepel, a generált token nem tartalmaz vezető 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/gyakoribb egy token, annál alacsonyabb tokenazonosítót rendelnek hozzá:
A pont karakterhez generált token mindhárom mondatban ugyanaz („13”). Ennek oka, hogy kontextus alapján a pontot meglehetősen hasonlóan használják a korpusz adataiban.
A „red” szóhoz generált token a mondaton belüli elhelyezkedésé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”)
