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

A tokenek megértése és számlálása

Ismerje meg, hogyan befolyásolják a bemeneti, kimeneti, gyorsítótárazott és érvelési tokenek az API-használatot, a modellkorlátokat és a költségeket.

Frissítve: 3 days ago

Áttekintés

A tokenek azok az egységek, amelyekkel az OpenAI modelljei feldolgozzák a szöveget. Egy token jelölhet karaktert, szórészletet, teljes szót vagy írásjelet. A szóközök is befolyásolják, hogyan oszlik a szöveg tokenekre.

A tokenek száma nem egyezik meg a szavak számával. Ugyanaz a szöveg a modelltől, annak kódolásától és a nyelvtől függően eltérő számú tokent eredményezhet.

Hogyan lesz a szövegből token?

Amikor szöveget küld egy modellnek:

  1. A szöveg tokenekre oszlik.

  2. A modell feldolgozza ezeket a tokeneket.

  3. A modell kimeneti tokeneket generál. Ezek közé tartozhat a kapott szöveg, érvelési modelleknél pedig a válasz szövegében nem látható belső érvelési tokenek is.

Becsült értékek használata angol szövegnél

Az alábbi becslésekkel felmérheti az angol szöveg méretét:

  • 1 token körülbelül 4 karakter.

  • 1 token körülbelül egy szó háromnegyede.

  • 100 token körülbelül 75 szó.

Ezek becslések, nem pontos értékek. A mondatok és bekezdések hossza változó, más nyelvekben pedig eltérő lehet a karakterek, szavak és tokenek közötti arány.

A szóközök és a kis- és nagybetűk figyelembevétele

Egy szó az írásmódjától, a kis- és nagybetűktől, valamint a környező szövegtől függően különböző tokenekre osztható.

A red, a Red és a red például nem azonos szöveg: az utolsó példa elején szóköz áll. Egy kódolás eltérően ábrázolhatja őket.

A tokenazonosítók is a kódolástól függenek. Ne feltételezze, hogy egy példaként megadott tokenazonosító minden modellre érvényes.

A bemeneti és kimeneti tokenek megkülönböztetése

KategóriaMit jelent?
Bemeneti tokenekA kérésben a modellnek átadott tokenek. Ezeket utasítástokeneknek is nevezik.
Kimeneti tokenekA modell által generált tokenek. A Chat Completions ezeket befejezési tokeneknek nevezi.
Gyorsítótárazott bemeneti tokenekPrompt-gyorsítótárazással újrahasznált bemeneti tokenek. Díjszabásuk eltérhet a nem gyorsítótárazott bemeneti tokenekétől.
Érvelési tokenekAz érvelési modell által a látható válasz létrehozása előtt belsőleg használt tokenek.

Az érvelési tokenek nem láthatók a válasz szövegében, de beleszámítanak a kimeneti használatba, és kimeneti tokenként számlázzuk őket.

Ezért egy rövid látható válasz is több tokent használhat, mint amennyit a megjelenített szöveg alapján gondolnánk.

Tokenek számlálása a kérés elküldése előtt

Egyszerű szöveg tokenjeinek számlálása

A Tokenizer segítségével megtekintheti, hogyan oszlik a szöveg tokenekre.

Egyszerű szöveg programozott tokenizálásához használja a tiktoken könyvtárat. Válassza ki a célmodell kódolását, például a tiktoken.encoding_for_model(model) használatával.

Az egyszerű szöveg tokenszáma nem feltétlenül tartalmazza az API-kérés összes tokenjét. Az üzenetstruktúra, az eszközök, a sémák, a képek és a fájlok befolyásolhatják a teljes bemeneti tokenszámot.

A teljes Responses-bemenet tokenszámának meghatározása

Egy teljes Responses API-bemenethez használja a bemeneti tokeneket számláló API-t.

Fogadja a Responses bemeneti formátumait, köztük üzeneteket, képeket, fájlokat, eszközöket és beszélgetéseket. A számítás a kérésstruktúrához használt formázási tokeneket, például az üzenetszerepeket és -határokat is tartalmazza.

A bemeneti tokenszámból nem jósolható meg, hány kimeneti tokent generál majd a modell.

A tényleges tokenhasználat ellenőrzése

A kérés után tekintse meg a használati adatokat. A mezőnevek végpontonként eltérnek:

  • A Chat Completions a prompt_tokens, completion_tokens és total_tokens értékét jelenti.

  • A Responses az input_tokens, output_tokens és total_tokens értékét jelenti.

A Usage Dashboardon időbeli bontásban is áttekintheti a tevékenységet. Az útmutatást, köztük a streamelés használati adatainak ismertetését itt találja: Az API-használat és a költségek áttekintése.

A modell korlátainak betartása

A modell kontextusablakáról és maximális kimenetéről a dokumentációjában tájékozódhat. Ezek a korlátok modellenként eltérhetnek.

A kontextusablak korlátozza, hogy a modell hány tokent dolgozhat fel egy kérésben. A modellek kimeneti korláttal is rendelkeznek. Érvelési modelleknél a látható válasz mellett az érvelési tokeneknek is hagyjon helyet.

Ha a bemenet túl nagy, a következőket teheti:

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

  • Távolítsa el a szükségtelen vagy ismétlődő kontextust.

  • Ossza a nagy bemeneteket kisebb részekre.

  • Elküldés előtt foglalja össze vagy dolgozza fel előzetesen a szöveget.

Használja a végpont és a modell által támogatott kimenetitoken-beállítást. A Chat Completions a max_completion_tokens, a Responses pedig a max_output_tokens beállítást használja.

Ezek a kérésméret-korlátok elkülönülnek az API sebességkorlátaitól, valamint a havi használati és költési korlátoktól. Tekintse át a használt modell dokumentációját.

A tokenalapú díjszabás megértése

A tokenalapú API-díjszabásnál az ár a modelltől és a token kategóriájától függ. A bemeneti, a gyorsítótárazott bemeneti és a kimeneti tokenek ára eltérhet. Más API-funkciók eltérő számlázási egységeket használhatnak.

Az aktuális díjakat az API díjszabási oldalán találja.

A modellek összehasonlításakor vegye figyelembe a feladat elvégzéséhez szükséges összes tokent és teljes költséget. Az egymillió tokenre jutó alacsonyabb ár nem feltétlenül jelent alacsonyabb összköltséget: a modellek eltérően tokenizálhatják ugyanazt a szöveget, és különböző mennyiségű kimenetet vagy érvelést generálhatnak.

Ne csak a látható válasz hosszát hasonlítsa össze, hanem teszteljen jellemző feladatokat is.

Több befejezés figyelembevétele

Ha egy végpont és modell támogatja több befejezés generálását, a további befejezések is tokeneket használnak.

A Chat Completions esetében az n 1-nél nagyobb értéke több lehetőséget generál. Az összes lehetőséghez generált tokenekért díjat számítunk fel.

A régi Completions API esetében a best_of olyan jelölteket is generálhat, amelyek nem mind kerülnek visszaadásra. A best_of = 3 például legfeljebb 3 × max_tokens befejezési tokent generálhat a jelöltek között.

Ezek a paraméterek végpontspecifikusak. Ne feltételezze, hogy egy másik API vagy modell is támogatja az n vagy a best_of paramétert.

Hasznos volt ez a cikk?