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: 5 minutes ago

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:

  1. A rendszer tokenekre bontja a szöveget.

  2. A modell feldolgozza ezeket a tokeneket.

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

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” kifejezéshez tartozik, és egy záró szóközt is tartalmaz. (Megjegyzés: ezek csak szemléltetési célú tokenazonosító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” 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.

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

Hasznos volt ez a cikk?