Co jsou tokeny?
Tokeny jsou základní stavební prvky textu, které zpracovávají modely OpenAI. Mohou být krátké jako jeden znak nebo dlouhé jako celé slovo, podle jazyka a kontextu. Mezery, interpunkce i části slov se započítávají do počtu tokenů. Takto API interně rozdělí 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 liší podle modelu a kódování. Přesný počet pro cílový model zjistíte pomocí nástroje Tokenizer nebo tiktoken.encoding_for_model(model).
Příklady
Zde je několik ukázek textu z praxe s jejich přibližným počtem tokenů:
Citát Waynea Gretzkyho „You miss 100% of the shots you don’t take“ = 11 tokenů
Charta OpenAI = 476 tokenů
Deklarace nezávislosti USA = 1 695 tokenů
Jak se počítá počet tokenů
Když odešlete text do API:
Text se rozdělí na tokeny.
Model tyto tokeny zpracuje.
Odpověď se vygeneruje jako sekvence 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 – znovu použité tokeny v historii konverzace (často účtované za sníženou sazbu).
Tokeny uvažování – u některých pokročilých modelů se před vytvořením konečného výstupu interně zahrnují další „kroky přemýšlení“.
Tyto počty se zobrazují v metadatech odpovědi API a používají se k fakturaci a sledování využití.
Chcete-li tokenizaci prozkoumat podrobněji, můžete použít náš interaktivní nástroj Tokenizer, který umožňuje vypočítat počet tokenů a zobrazit, jak se text na tokeny rozděluje.
Případně, pokud chcete text tokenizovat programově, použijte Tiktoken jako rychlý tokenizér BPE určený speciálně pro modely OpenAI.
Limity tokenů
Každý model má maximální kombinovaný 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 velký text na menší části.
Shrnout nebo předzpracovat vstupy před jejich odesláním.
Ceny tokenů
Využití API se účtuje za token a cena se liší podle modelu a podle toho, zda jde o tokeny vstupní, výstupní nebo z mezipaměti. Aktuální sazby najdete na stránce s cenami OpenAI. Některé modely s uvažováním mohou interně používat více tokenů, ale usilují o vyšší 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 datech korpusu. Modely vezmou prompt, převedou vstup na seznam tokenů, prompt zpracují a převedou predikované tokeny zpět na slova, která vidíme v odpovědi.
To, co se nám může jevit jako dvě totožná slova, může být vygenerováno jako různé tokeny podle toho, jak jsou v textu strukturována. Podívejte se, 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 (poznámka: jde o ukázková ID tokenů pro demonstrační účely).
Token „2296“ pro „ Red“ (s úvodní mezerou a počátečním velký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 dvou předchozích příkladů tohoto slova.
Pozorování:
Čím je token pravděpodobnější nebo častější, tím nižší číslo tokenu je mu přiřazeno:
Token vygenerovaný pro tečku je stejný („13“) ve všech 3 větách. Je to proto, že kontextově se tečka v datech korpusu 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“)
