Á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:
A szöveg tokenekre oszlik.
A modell feldolgozza ezeket a tokeneket.
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ória | Mit jelent? |
| Bemeneti tokenek | A kérésben a modellnek átadott tokenek. Ezeket utasítástokeneknek is nevezik. |
| Kimeneti tokenek | A modell által generált tokenek. A Chat Completions ezeket befejezési tokeneknek nevezi. |
| Gyorsítótárazott bemeneti tokenek | Prompt-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 tokenek | Az é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.
