OpenAI
Tato stránka byla přeložena strojově. Zobrazit původní článek v angličtině.

Principy a počítání tokenů

Zjistěte, jak vstupní, výstupní, uložené a uvažovací tokeny ovlivňují využití API, limity modelů a náklady.

Aktualizováno: 13 days ago

Přehled

Tokeny jsou jednotky, které modely OpenAI používají ke zpracování textu. Token může představovat znak, část slova, celé slovo nebo interpunkční znaménko. Rozdělení textu na tokeny ovlivňují také mezery.

Počet tokenů není totéž co počet slov. Stejný text může mít různý počet tokenů podle modelu, jeho kódování a jazyka.

Jak se text převádí na tokeny

Když odešlete text modelu:

  1. Text se rozdělí na tokeny.

  2. Model tyto tokeny zpracuje.

  3. Model vygeneruje výstupní tokeny. Mohou zahrnovat text, který obdržíte, a u modelů s uvažováním také interní tokeny uvažování, které se v textu odpovědi nezobrazují.

Orientační odhady pro anglický text

Velikost anglického textu můžete odhadnout pomocí těchto hodnot:

  • 1 token odpovídá přibližně 4 znakům.

  • 1 token odpovídá přibližně třem čtvrtinám slova.

  • 100 tokenů odpovídá přibližně 75 slovům.

Jde o odhady, nikoli přesné hodnoty. Délka vět a odstavců se liší a jiné jazyky mohou mít mezi znaky, slovy a tokeny odlišné vztahy.

Zohlednění mezer a velikosti písmen

Slovo lze rozdělit na různé tokeny podle jeho pravopisu, velikosti písmen a okolního textu.

Například red, Red a red nejsou totožné texty: poslední příklad obsahuje mezeru na začátku. Kódování je může reprezentovat odlišně.

Na kódování závisejí také ID tokenů. Nepředpokládejte, že ukázkové ID tokenu platí pro každý model.

Rozlišení vstupních a výstupních tokenů

KategorieCo popisuje
Vstupní tokenyTokeny předané modelu v požadavku. Označují se také jako tokeny promptu.
Výstupní tokenyTokeny vygenerované modelem. Chat Completions je označuje jako tokeny dokončení.
Vstupní tokeny uložené v mezipamětiVstupní tokeny opakovaně použité díky ukládání promptů do mezipaměti. Jejich cena se může lišit od vstupních tokenů, které nejsou uložené v mezipaměti.
Tokeny uvažováníTokeny, které model s uvažováním interně používá před vytvořením viditelné odpovědi.

Tokeny uvažování nejsou v textu odpovědi viditelné, ale započítávají se do využití výstupu a účtují se jako výstupní tokeny.

Krátká viditelná odpověď proto může spotřebovat více tokenů, než naznačuje zobrazený text.

Počítání tokenů před odesláním požadavku

Počítání tokenů v prostém textu

Pomocí nástroje Tokenizer zjistíte, jak se text dělí na tokeny.

K programové tokenizaci prostého textu použijte tiktoken. Vyberte kódování pro cílový model, například pomocí tiktoken.encoding_for_model(model).

Počet tokenů v prostém textu nemusí zahrnovat všechny tokeny v požadavku API. Celkový počet vstupních tokenů může ovlivnit struktura zpráv, nástroje, schémata, obrázky a soubory.

Počítání tokenů celého vstupu Responses

Pro celý vstup rozhraní Responses API použijte API pro počítání vstupních tokenů.

Přijímá vstupní formáty Responses včetně zpráv, obrázků, souborů, nástrojů a konverzací. Výsledný počet zahrnuje formátovací tokeny používané ve struktuře požadavku, například role a hranice zpráv.

Počet vstupních tokenů neurčuje, kolik výstupních tokenů model vygeneruje.

Kontrola skutečného využití tokenů

Po odeslání požadavku zkontrolujte informace o jeho využití. Názvy polí se liší podle koncového bodu:

  • Chat Completions uvádí prompt_tokens, completion_tokens a total_tokens.

  • Responses uvádí input_tokens, output_tokens a total_tokens.

Vývoj aktivity v čase můžete sledovat také na řídicím panelu využití. Pokyny včetně informací o využití při streamování najdete v článku Kontrola využití API a nákladů.

Dodržování limitů modelu

V dokumentaci modelu si ověřte velikost jeho kontextového okna a maximálního výstupu. Tyto limity se mohou mezi modely lišit.

Kontextové okno omezuje počet tokenů, s nimiž může model v rámci požadavku pracovat. Modely mají také limit výstupu. U modelů s uvažováním ponechte prostor pro tokeny uvažování i pro viditelnou odpověď.

Pokud je vstup příliš velký, můžete:

  • Zkrátit nebo přeformulovat prompt.

  • Odstranit nepotřebný nebo opakující se kontext.

  • Rozdělit velké vstupy na menší části.

  • Před odesláním text shrnout nebo předzpracovat.

Použijte nastavení počtu výstupních tokenů podporované daným koncovým bodem a modelem. Chat Completions používá max_completion_tokens, zatímco Responses používá max_output_tokens.

Tyto limity velikosti požadavků jsou oddělené od limitů rychlosti API a měsíčních limitů využití či útraty. Projděte si dokumentaci modelu, který používáte.

Principy cen za tokeny

U cen API založených na tokenech závisí sazba na modelu a kategorii tokenu. Vstupní tokeny, vstupní tokeny uložené v mezipaměti a výstupní tokeny mohou mít různé ceny. Jiné funkce API mohou používat odlišné fakturační jednotky.

Aktuální sazby najdete na stránce s cenami API.

Při porovnávání modelů zohledněte celkový počet tokenů a náklady potřebné ke splnění úlohy. Nižší cena za milion tokenů nemusí znamenat nižší celkové náklady: modely mohou stejný text tokenizovat odlišně a generovat různě dlouhý výstup nebo různý objem uvažování.

Testujte reprezentativní úlohy a neporovnávejte pouze délku viditelné odpovědi.

Zohlednění více dokončení

Pokud koncový bod a model podporují generování více dokončení, spotřebovávají tokeny i tato další dokončení.

Nastavení n na hodnotu vyšší než 1 v Chat Completions vygeneruje více možností. Účtují se vám tokeny vygenerované ve všech těchto možnostech.

U staršího rozhraní Completions API může best_of vygenerovat kandidáty, kteří se všichni nevrátí. Například best_of = 3 může mezi kandidáty vygenerovat až 3 × max_tokens tokenů dokončení.

Tyto parametry jsou specifické pro jednotlivé koncové body. Nepředpokládejte, že jiné API nebo model podporuje n či best_of.

Byl tento článek užitečný?