Co jsou tokeny?
Tokeny jsou základní stavební prvky textu, které modely OpenAI zpracovávají. Mohou být krátké jako jeden znak nebo dlouhé jako celé slovo, podle jazyka a kontextu. K počtu tokenů přispívají mezery, interpunkce i části slov. Takto API interně segmentuje váš 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 může lišit podle jazyka. Například „Cómo estás“ (španělsky „Jak se máš“) obsahuje 5 tokenů na 10 znaků. Text v jiných jazycích než angličtině často vytváří vyšší poměr tokenů ke znakům, což může ovlivnit náklady a limity.
Příklady
Zde je několik příkladů textů z praxe s jejich přibližným počtem tokenů:
Citát Wayna Gretzkého „Stoprocentně minete všechny střely, které nevystřelíte“ = 11 tokenů
Charta OpenAI = 476 tokenů
Americká Deklarace nezávislosti = 1 695 tokenů
Jak se počítají tokeny
Když do API odešlete text:
Text se rozdělí na tokeny.
Model tyto tokeny zpracuje.
Odpověď se vygeneruje jako posloupnost tokenů a pak 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 – znovu použité tokeny v historii konverzace (často účtované za nižší sazbu).
Tokeny uvažování – u některých pokročilých modelů jsou před vytvořením finálního výstupu interně zahrnuty další „kroky myšlení“.
Tyto počty se zobrazují v metadatech odpovědi API a používají se pro účtování a sledování využití.
Pokud chcete tokenizaci prozkoumat podrobněji, můžete použít náš interaktivní nástroj Tokenizer, který vám umožní spočítat počet tokenů a zjistit, jak se text rozděluje na tokeny.
Případně, pokud chcete text tokenizovat programově, použijte Tiktoken jako rychlý BPE tokenizer speciálně používaný pro modely OpenAI.
Limity tokenů
Každý model má maximální kombinovaný limit tokenů (vstup + výstup). Současné modely s vysokou kapacitou podporují v kontextu až stovky tisíc tokenů, i když praktické limity se 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 velký text na menší části.
Před odesláním vstupy shrnout nebo předzpracovat.
Cena tokenů
Využití API se účtuje za token, přičemž cena se liší podle modelu a podle toho, zda jde o vstupní, výstupní nebo tokeny z mezipaměti. Aktuální sazby najdete na stránce OpenAI o cenách. Některé modely s uvažováním mohou interně používat více tokenů, ale jejich cílem je zlepšit efektivitu snížením počtu tokenů potřebných na dokončený úkol.
Zkoumání tokenů
API zachází se slovy podle jejich kontextu v korpusových datech. Modely vezmou 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.
To, co se nám může jevit jako dvě stejná slova, může být vygenerováno do různých tokenů podle toho, jak jsou v textu strukturována. Zvažte, jak 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 (pozor, jde o ukázková ID tokenů pro demonstrační účely).
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ž se „Red“ použije na začátku věty, vygenerovaný token neobsahuje úvodní mezeru. Token „7738“ se liší od předchozích dvou příkladů tohoto slova.
Pozorování:
Čím pravděpodobnější/častější token je, tím nižší číslo tokenu je mu přiřazeno:
Token vygenerovaný pro tečku je ve všech 3 větách stejný („13“). Je to proto, že se tečka v kontextu napříč korpusovými daty používá velmi podobně.
Token vygenerovaný pro „red“ se liší podle jeho umístění 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“)
