Co jsou tokeny?
Tokeny jsou základní stavební prvky textu, který zpracovávají modely OpenAI. Podle jazyka a kontextu mohou být krátké jako jediný znak nebo dlouhé jako celé slovo. Do počtu tokenů se započítávají mezery, interpunkce i části slov. Takto rozhraní API interně rozděluje text před vygenerováním odpovědi.
Užitečná orientační pravidla pro angličtinu:
1 token ≈ 4 znaky
1 token ≈ ¾ slova
100 tokenů ≈ 75 slov
1–2 věty ≈ 30 tokenů
1 odstavec ≈ 100 tokenů
~1 500 slov ≈ 2 048 tokenů
Tokenizace se liší podle modelu a kódování. Přesný počet pro cílový model zjistíte pomocí nástroje Tokenizer nebo funkce tiktoken.encoding_for_model(model).
Příklady
Zde je několik ukázek skutečných textů s přibližnými počty tokenů:
Citát Wayna Gretzkého „Netrefíte 100 % střel, které nevystřelíte“ = 11 tokenů
Charta OpenAI = 476 tokenů
Deklarace nezávislosti USA = 1 695 tokenů
Jak se počítají tokeny
Když odešlete text do rozhraní API:
Text se rozdělí na tokeny.
Model tyto tokeny zpracuje.
Odpověď se vygeneruje jako posloupnost tokenů a poté se převede zpět na text.
Využití tokenů se sleduje v několika kategoriích:
Vstupní tokeny – tokeny ve vašem požadavku.
Výstupní tokeny – tokeny vygenerované v odpovědi.
Tokeny z mezipaměti – opakovaně použité tokeny z historie konverzace (často účtované za nižší sazbu).
Tokeny uvažování – některé pokročilé modely před vytvořením konečného výstupu interně provádějí další „kroky přemýšlení“.
Tyto počty najdete v metadatech odpovědi rozhraní API a používají se k účtování a sledování využití.
Chcete-li tokenizaci prozkoumat podrobněji, použijte náš interaktivní nástroj Tokenizer. Umožňuje vypočítat počet tokenů a zobrazit, jak se text na tokeny rozděluje.
Pokud chcete text tokenizovat programově, použijte Tiktoken, rychlý tokenizátor BPE určený speciálně pro modely OpenAI.
Limity tokenů
Každý model má maximální společný limit tokenů (vstup + výstup). Současné vysokokapacitní modely podporují v kontextu až stovky tisíc tokenů. Praktické limity se však mohou lišit podle verze modelu a vaší úrovně využití.
Pokud limit překročíte, můžete:
Zkrátit nebo přeformulovat prompty.
Rozdělit dlouhý text na menší části.
Vstupy před odesláním shrnout nebo předzpracovat.
Ceny tokenů
Používání rozhraní API se účtuje podle počtu tokenů. Cena se liší podle modelu a podle toho, zda jde o vstupní, výstupní nebo uložené tokeny. Aktuální sazby najdete na stránce s cenami společnosti OpenAI. Některé modely uvažování mohou interně používat více tokenů, ale snaží se zvýšit efektivitu tím, že snižují počet tokenů potřebných k dokončení úlohy.
Tokeny nejsou mezi modely AI ani jejich poskytovateli standardizované. Různé modely mohou stejný text zpracovat nebo vygenerovat s různým počtem tokenů. Nižší inzerovaná cena za milion tokenů proto nemusí znamenat nižší celkové náklady.
Ani viditelná délka odpovědi nevypovídá o všem. Některé modely před vytvořením odpovědi interně používají tokeny uvažování, takže delší viditelná odpověď nemusí znamenat, že model celkově využil více tokenů.
Při porovnávání modelů zohledněte celkový počet potřebných tokenů i cenu za úspěšný výsledek. Srovnávací testy mohou posloužit jako užitečný výchozí bod, ale skutečné náklady a výkon modelů nejlépe zjistíte testováním na vlastních případech použití.
Zkoumání tokenů
Rozhraní API zachází se slovy podle jejich kontextu v korpusových datech. Modely převezmou prompt, převedou vstup na seznam tokenů, prompt zpracují a předpovězené tokeny převedou zpět na slova, která vidíme v odpovědi.
Dvě slova, která nám připadají totožná, mohou být v závislosti na svém uspořádání v textu převedena na různé tokeny. Podívejte se, jak rozhraní API generuje hodnoty tokenů pro slovo „red“ podle jeho kontextu v textu:
V prvním příkladu výše token „2266“ pro „ red“ obsahuje koncovou mezeru (jde o ukázková ID tokenů sloužící pouze k demonstraci).
Token „2296“ pro „ Red“ (s úvodní mezerou a velkým počátečním písmenem) se liší od tokenu „2266“ pro „ red“ s malým písmenem.
Když je „Red“ použito na začátku věty, vygenerovaný token neobsahuje úvodní mezeru. Token „7738“ se liší od předchozích dvou podob tohoto slova.
Pozorování:
Čím je token pravděpodobnější nebo častější, tím nižší číslo je mu přiřazeno:
Token vygenerovaný pro tečku je ve všech třech větách stejný („13“). Je to proto, že z hlediska kontextu se tečka v celém korpusu používá velmi podobně.
Token vygenerovaný pro „red“ se liší podle umístění slova ve větě:
Malé písmeno uprostřed věty: „ red“ – (token: „2266“)
Velké písmeno uprostřed věty: „ Red“ – (token: „2297“)
Velké písmeno na začátku věty: „Red“ – (token: „7738“)
