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

Co jsou tokeny a jak je počítat?

Aktualizováno: 15 days ago

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:

  1. Text se rozdělí na tokeny.

  2. Model tyto tokeny zpracuje.

  3. 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:

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

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).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

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.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

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“)

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