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: 13 days ago

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:

  1. A szöveg tokenekre bomlik.

  2. A modell feldolgozza ezeket a tokeneket.

  3. 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:

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

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).

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 „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.

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” 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”)

Hasznos volt ez a cikk?