OpenAI
Táto stránka bola strojovo preložená. Prečítaj si pôvodný článok v angličtine.

Ako fungujú tokeny a ako ich počítať

Zistite, ako vstupné, výstupné, cachované a uvažovacie tokeny ovplyvňujú používanie API, limity modelov a náklady.

Aktualizované: 12 days ago

Prehľad

Tokeny sú jednotky, pomocou ktorých modely OpenAI spracúvajú text. Token môže predstavovať znak, časť slova, celé slovo alebo interpunkčné znamienko. Na rozdelenie textu na tokeny vplývajú aj medzery.

Počet tokenov nie je rovnaký ako počet slov. Rovnaký text môže mať rôzny počet tokenov v závislosti od modelu, jeho kódovania a jazyka.

Ako sa text mení na tokeny

Keď modelu odošlete text:

  1. Text sa rozdelí na tokeny.

  2. Model tieto tokeny spracuje.

  3. Model vygeneruje výstupné tokeny. Môžu zahŕňať prijatý text a pri uvažovacích modeloch aj interné uvažovacie tokeny, ktoré sa v texte odpovede nezobrazujú.

Orientačné odhady pre anglický text

Veľkosť anglického textu môžete odhadnúť takto:

  • 1 token predstavuje približne 4 znaky.

  • 1 token predstavuje približne tri štvrtiny slova.

  • 100 tokenov predstavuje približne 75 slov.

Ide o odhady, nie presné počty. Dĺžka viet a odsekov sa líši a v iných jazykoch môžu medzi znakmi, slovami a tokenmi platiť odlišné pomery.

Zohľadnenie medzier a veľkosti písmen

Slovo sa môže rozdeliť na rôzne tokeny v závislosti od pravopisu, veľkosti písmen a okolitého textu.

Napríklad red, Red a red neobsahujú identický text: posledný príklad má na začiatku medzeru. Kódovanie ich môže reprezentovať odlišne.

Od kódovania závisia aj ID tokenov. Nepredpokladajte, že príklad ID tokenu platí pre každý model.

Rozlíšenie vstupných a výstupných tokenov

KategóriaČo opisuje
Vstupné tokenyTokeny poskytnuté modelu v požiadavke. Nazývajú sa aj tokeny príkazu.
Výstupné tokenyTokeny vygenerované modelom. Chat Completions ich označuje ako tokeny dokončenia.
Cachované vstupné tokenyVstupné tokeny opätovne použité prostredníctvom cachingu príkazov. Ich cena sa môže líšiť od necachovaných vstupných tokenov.
Uvažovacie tokenyTokeny, ktoré uvažovací model interne používa pred vytvorením viditeľnej odpovede.

Uvažovacie tokeny sa v texte odpovede nezobrazujú, ale započítavajú sa do využitia výstupu a účtujú sa ako výstupné tokeny.

Krátka viditeľná odpoveď preto môže využiť viac tokenov, než naznačuje zobrazený text.

Počítanie tokenov pred odoslaním požiadavky

Počítanie tokenov v obyčajnom texte

Pomocou tokenizátora si pozrite, ako sa text delí na tokeny.

Na programovú tokenizáciu obyčajného textu použite tiktoken. Vyberte kódovanie pre cieľový model, napríklad pomocou tiktoken.encoding_for_model(model).

Počet tokenov v obyčajnom texte nemusí zahŕňať všetky tokeny v požiadavke API. Celkový počet vstupných tokenov môže ovplyvniť štruktúra správ, nástroje, schémy, obrázky aj súbory.

Počítanie tokenov celého vstupu Responses

Na spočítanie tokenov celého vstupu Responses API použite API na počítanie vstupných tokenov.

Podporuje vstupné formáty Responses vrátane správ, obrázkov, súborov, nástrojov a konverzácií. Výsledný počet zahŕňa formátovacie tokeny použité v štruktúre požiadavky, napríklad roly a hranice správ.

Počet vstupných tokenov neurčuje, koľko výstupných tokenov model vygeneruje.

Kontrola skutočného využitia tokenov

Po odoslaní požiadavky skontrolujte údaje o jej využití. Názvy polí sa líšia podľa koncového bodu:

  • Chat Completions uvádza prompt_tokens, completion_tokens a total_tokens.

  • Responses uvádza input_tokens, output_tokens a total_tokens.

Aktivitu v priebehu času si môžete pozrieť aj na paneli využitia. Pokyny vrátane informácií o využití pri streamovaní nájdete v článku Kontrola využitia API a nákladov.

Dodržiavanie limitov modelu

V dokumentácii modelu si overte jeho kontextové okno a maximálny výstup. Tieto limity sa môžu medzi modelmi líšiť.

Kontextové okno obmedzuje počet tokenov, s ktorými môže model pracovať v jednej požiadavke. Modely majú aj limit výstupu. Pri uvažovacích modeloch ponechajte priestor na uvažovacie tokeny aj na viditeľnú odpoveď.

Ak je vstup príliš veľký, môžete:

  • Skrátiť alebo preformulovať príkaz.

  • Odstrániť nepotrebný alebo opakujúci sa kontext.

  • Rozdeliť veľké vstupy na menšie časti.

  • Pred odoslaním text zhrnúť alebo predbežne spracovať.

Použite nastavenie počtu výstupných tokenov, ktoré podporuje váš koncový bod a model. Chat Completions používa max_completion_tokens, Responses používa max_output_tokens.

Tieto limity veľkosti požiadaviek sú oddelené od limitov frekvencie API a mesačných limitov využitia či výdavkov. Pozrite si dokumentáciu modelu, ktorý používate.

Ako fungujú ceny tokenov

Pri cenách API založených na tokenoch závisí sadzba od modelu a kategórie tokenov. Vstupné, cachované vstupné a výstupné tokeny môžu mať rôzne ceny. Iné funkcie API môžu používať odlišné účtovné jednotky.

Aktuálne sadzby nájdete na stránke s cenami API.

Pri porovnávaní modelov zohľadnite celkový počet tokenov a náklady potrebné na dokončenie úlohy. Nižšia cena za milión tokenov nemusí znamenať nižšie celkové náklady: modely môžu ten istý text tokenizovať odlišne a generovať rôzne množstvo výstupu alebo uvažovania.

Testujte reprezentatívne úlohy a neporovnávajte iba dĺžku viditeľnej odpovede.

Zohľadnenie viacerých dokončení

Ak koncový bod a model podporujú generovanie viacerých dokončení, tokeny využívajú aj tieto ďalšie dokončenia.

V Chat Completions nastavenie n na hodnotu vyššiu ako 1 vygeneruje viacero možností. Účtujú sa vám tokeny vygenerované vo všetkých týchto možnostiach.

V staršom rozhraní Completions API môže best_of generovať kandidátov, ktorí sa nemusia všetci vrátiť. Napríklad best_of = 3 môže medzi kandidátmi vygenerovať až 3 × max_tokens tokenov dokončenia.

Tieto parametre sú špecifické pre jednotlivé koncové body. Nepredpokladajte, že iné API alebo model podporuje n či best_of.

Bol tento článok užitočný?