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?

Ismerje meg, hogyan számolják az OpenAI modelljei a tokeneket, és hogyan befolyásolja a tokenhasználat a korlátokat és az API díjszabását.

Frissítve: 24 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 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:

  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, 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:

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

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

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

Hasznos volt ez a cikk?