OpenAI
Ez az oldal gépi fordítással készült. Tekintsd meg az eredeti angol nyelvű cikket.

Mik azok a tokenek, és hogyan számolhatók?

Frissítve: 8 days ago

Mik azok a tokenek?

A tokenek azok a szöveges építőelemek, amelyeket az OpenAI modelljei feldolgoznak. Lehetnek akár egyetlen karakter rövidek, vagy akár egy teljes szó hosszúságúak is, a nyelvtől és a kontextustól függően. A szóközök, az írásjelek és a szórészletek mind 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 ≈ egy szó ¾-e

  • 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 értékének lekéréséhez 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: „You miss 100% of the shots you don’t take” = 11 token

  • Az OpenAI Alapokmány = 476 token

  • Az Egyesült Államok Függetlenségi Nyilatkozata = 1695 token

Hogyan számítják ki a tokenszámokat

Amikor szöveget küld az API-nak:

  1. A szöveg tokenekre lesz bontva.

  2. A modell feldolgozza ezeket a tokeneket.

  3. A válasz tokensorozatként generálódik, majd visszaalakul szöveggé.

A tokenhasználat több kategóriában követhető:

  • Bemeneti tokenek – a kérésben lévő 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 modelleknél a végső kimenet előállítása előtt belsőleg extra „gondolkodási lépések” is szerepelnek.

Ezek a számok az API-válasz metaadataiban jelennek meg, és a számlázás, valamint a használat követésének alapjául szolgálnak.

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.

Másik lehetőségként, ha programozott módon szeretne szöveget tokenizálni, használja a Tiktoken eszközt, amely egy gyors BPE-tokenizáló, kifejezetten OpenAI modellekhez.

Tokenkorlátok

Minden modellnek van egy maximális kombinált tokenkorlátja (bemenet + kimenet). A jelenlegi nagy kapacitású modellek akár több százezer tokent is támogatnak a kontextusban, bár a gyakorlati korlátok a modellverziótól és a használati szinttől függően változhatnak.

Ha túllépi a korlátot, a következőket teheti:

  • Rövidítse vagy fogalmazza át az utasításokat.

  • Bontsa a nagy szöveget kisebb részekre.

  • Foglalja össze vagy dolgozza elő a bemeneteket, mielőtt elküldené őket.

Tokenalapú árazás

Az API-használat ára tokenenként kerül meghatározásra, és modellenként, valamint attól függően változik, hogy a tokenek bemeneti, kimeneti vagy gyorsítótárazott tokenek-e. Az aktuális díjakért tekintse meg az OpenAI árazási oldalát. Egyes érvelési modellek belsőleg több tokent használhatnak, de céljuk a hatékonyság javítása azáltal, hogy csökkentik a befejezett feladatonként szükséges tokenek számát.

A tokenek felfedezése

Az API a szavakat a korpuszadatokban szereplő kontextusuk szerint kezeli. A modellek megkapják az utasítást, a bemenetet tokenek listájává alakítják, feldolgozzák az utasítást, majd a megjósolt tokeneket visszaalakítják azokká a szavakká, amelyeket a válaszban látunk.

Ami számunkra két azonos szónak tűnhet, az a szövegen belüli szerkezetétől függően különböző tokenekké generálódhat. Nézzük meg, hogyan generál az API tokenértékeket a „red” szóhoz a szövegen belüli kontextusa alapján:

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

A fenti első példában a „2266” token a ‘ red’ esetében egy záró szóközt tartalmaz (megjegyzés: ezek demonstrációs célú tokenazonosító-példák).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

A ‘ Red’ „2296” tokenje (kezdő szóközzel és nagy kezdőbetűvel) eltér a kisbetűs ‘ red’ „2266” tokenjétől.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

Amikor a ‘Red’ a mondat elején szerepel, a generált 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/gyakoribb egy token, annál alacsonyabb tokenszámot rendelnek hozzá:

  • A pont számára generált token mindhárom mondatban ugyanaz („13”). Ennek az az oka, hogy kontextuálisan a pontot a korpuszadatokban nagyjából hasonló módon használják.

  • A ‘red’ számára generált 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”)

Hasznos volt ez a cikk?