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 lehetnek akár egyetlen karakter hosszúságúak, de egy teljes szót is alkothatnak. A szóközök, írásjelek és szórészletek egyaránt beleszámítanak a tokenek számába. Az API így szegmentálja belsőleg a szöveget, mielőtt létrehozná a választ.
Hasznos ökölszabályok angol nyelvű 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ának megállapításához használja a Tokenizer eszközt vagy a tiktoken.encoding_for_model(model) függvényt.
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 olyan, amelyet meg sem próbáltál” = 11 token
Az OpenAI alapokmánya = 476 token
Az Egyesült Államok függetlenségi nyilatkozata = 1695 token
A tokenszám kiszámítása
Amikor szöveget küld 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, majd a rendszer visszaalakítja szöveggé.
A tokenhasználatot több kategóriában követjük nyomon:
Bemeneti tokenek – a kérésben 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 (amelyeket gyakran kedvezményes díjon számlázunk).
Érvelési tokenek – egyes fejlett modellekben további belső „gondolkodási lépések” előzik meg a végső kimenet létrehozását.
Ezek a számok az API-válasz metaadataiban jelennek meg, és a számlázáshoz, valamint a használat nyomon követéséhez használjuk őket.
A tokenizálás további felfedezéséhez használhatja interaktív Tokenizer eszközünket, amellyel kiszámíthatja a tokenek számát, és megnézheti, hogyan bomlik a szöveg tokenekre.
Ha inkább programozottan szeretné tokenizálni a szöveget, használja a Tiktoken gyors BPE-tokenizálót, amely kifejezetten az OpenAI modelljeihez készült.
Tokenkorlátok
Minden modellhez tartozik egy maximális összesített tokenkorlát (bemenet + kimenet). A jelenlegi nagy kapacitású modellek akár több százezer tokent is támogatnak a kontextusban, a gyakorlati korlátok azonban a modell verziójától és az Ön használati szintjétől függően változhatnak.
Ha túllépi a korlátot, a következőket teheti:
Rövidítse le vagy fogalmazza át az utasításokat.
Ossza a hosszú szöveget kisebb részekre.
Elküldés előtt foglalja össze vagy dolgozza fel előzetesen a bemeneteket.
Tokenek díjszabása
Az API használatának díja tokenenként értendő, és függ a modelltől, valamint attól, 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álja. 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 nincsenek szabványosítva a különböző MI-modellek és szolgáltatók között. A különböző modellek ugyanazt a szöveget eltérő számú tokennel dolgozhatják fel vagy állíthatják elő, így az egymillió tokenre meghirdetett alacsonyabb ár nem feltétlenül jelent alacsonyabb összköltséget.
A válasz látható hossza sem mutatja meg a teljes képet. Egyes modellek a válasz létrehozása előtt belső érvelési tokeneket használnak, ezért egy hosszabb látható válasz nem feltétlenül jelenti azt, hogy a modell összességében több tokent használt.
A modellek összehasonlításakor vegye figyelembe a szükséges tokenek teljes számát és a sikeres eredményenkénti költséget. A teljesítménytesztek hasznos kiindulópontot jelenthetnek, de a modellek tényleges költségét és teljesítményét úgy ismerheti meg a legjobban, ha saját felhasználási eseteivel teszteli őket.
A tokenek felfedezése
Az API a korpuszban szereplő szövegkörnyezetük alapján kezeli a szavakat. A modellek fogadják 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 a válaszban látható szavakká.
Két számunkra azonosnak tűnő szó a szövegbeli szerkezeté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 a szövegbeli környezete alapján:
A fenti első példában a „ red” szöveghez tartozó „2266” token egy követő szóközt is tartalmaz. (Megjegyzés: ezek csak szemléltetésre szolgáló tokenazonosítók.)
A „ Red” szöveghez tartozó „2296” token (kezdő szóközzel és nagy kezdőbetűvel) eltér a kisbetűs „ red” szöveghez tartozó „2266” tokentő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 kisebb a hozzá rendelt tokenszám:
A ponthoz létrehozott token mindhárom mondatban ugyanaz („13”). Ennek az az oka, hogy a pontot a szövegkörnyezet szempontjából meglehetősen hasonló módon használják a korpusz egészében.
A „red” szóhoz létrehozott token a mondatban elfoglalt 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”)
