Přeskočit na obsah

Bezplatný počítač tokenů pro GPT-4, ChatGPT a AI modely

Přesný počítač tokenů pomocí knihovny tiktoken od OpenAI. Počítejte tokeny pro modely GPT-4, ChatGPT a GPT-3. Spravujte náklady na API a okamžitě optimalizujte AI výzvy.

Počítadlo tokenů

Kódování

Neplatný vstup

Kalkulačka načítání...
📚

Dokumentace

Co je počítadlo tokenů?

Počítadlo tokenů měří, na kolik tokenů se text rozdělí, když jej čte jazykový model s umělou inteligencí. Tokeny jsou malé části textu — celá slova, části slov nebo interpunkční znaménka — které modely jako GPT-4 a ChatGPT zpracovávají místo jednotlivých písmen. Tento nástroj používá knihovnu pro tokenizaci tiktoken s otevřeným zdrojovým kódem, kterou zveřejnila společnost OpenAI, takže počty odpovídají tomu, co by vytvořily vlastní modely a API OpenAI.

Jak funguje tokenizace

Tokenizér jednoduše nepočítá slova. Text zpracovává algoritmem nazývaným kódování dvojic bajtů (BPE). Algoritmus začíná jednotlivými bajty textu a opakovaně spojuje nejčastější sousední dvojice podle vzorů naučených během trénování z rozsáhlého korpusu textů. Výsledkem je pevně daná slovní zásoba desítek tisíc běžných částí: celá krátká slova, časté části slov a jednotlivé znaky pro vše, co se vyskytuje zřídka.

Jedno anglické slovo se proto často převede na jeden token, delší nebo neobvyklá slova se však mohou rozdělit na dva či více tokenů. Mezery se obvykle připojují na začátek následujícího tokenu, místo aby se počítaly samostatně, a interpunkční znaménka jsou zpravidla vlastními tokeny.

Kódování podporovaná tímto nástrojem

Tiktoken nabízí několik kódování, z nichž každé je spojeno s určitou řadou modelů OpenAI. Tento nástroj podporuje tři:

KódováníPoužívajíPřibližná velikost slovní zásoby
cl100k_baseModely řady GPT-3,5 a GPT-4, ChatGPTpřibližně 100 000 tokenů
p50k_baseNovější modely GPT-3přibližně 50 000 tokenů
r50k_baseStarší modely GPT-3 a GPT-2přibližně 50 000 tokenů

Ve výchozím nastavení se volí cl100k_base, protože pokrývá řadu modelů, kterou dnes používá většina lidí. Stejný text může mít při každém kódování jiný počet tokenů, protože každé z nich bylo trénováno na jiných textech a spojuje znaky odlišným způsobem.

Jak vypočítat počet tokenů

Neexistuje jednoduchý aritmetický vzorec, který by převáděl počet znaků nebo slov na počet tokenů, protože spojování v BPE závisí na konkrétním textu a natrénované slovní zásobě. Jedinou přesnou metodou je zpracovat text samotným tokenizérem:

  1. Zvolte kódování odpovídající cílovému modelu.
  2. Předejte text tokenizéru daného kódování.
  3. Spočítejte výsledný seznam ID tokenů. Délka tohoto seznamu je počet tokenů.

U anglického textu lze pro hrubý odhad počítat s tím, že jeden token odpovídá přibližně čtyřem znakům neboli asi třem čtvrtinám slova. Jde pouze o orientační údaj. Čísla, kód, neanglický text a neobvyklý pravopis mohou tento poměr výrazně změnit.

Příklad výpočtu

Vezměme větu:

„Tokenizace rozděluje text na části.“

Při použití kódování cl100k_base ji tiktoken rozdělí na 7 tokenů:

Token, ization, splits, text, into, pieces, .

Samotný výraz „Tokenization“ se rozdělí na dva tokeny, „Token“ a „ization“, zatímco všechna ostatní slova zůstanou celá. Konečná tečka je samostatný token. Proto věta o 37 znacích a 5 slovech vytvoří 7 tokenů, nikoli 6.

Proč na počtu tokenů záleží

Poskytovatelé umělé inteligence účtují používání API podle počtu tokenů a započítávají text odeslaný i text vygenerovaný v odpovědi, takže počet tokenů umožňuje před odesláním požadavku odhadnout cenu. Každý model má také maximální délku kontextu, tedy limit počtu tokenů, které může společně obsahovat jeden požadavek a jeho odpověď. Tento limit se u jednotlivých modelů liší a mění se s vydáváním nových verzí poskytovateli, proto je nejlepší ověřit jej v aktuální dokumentaci používaného modelu a nespoléhat na informace uložené v paměti.

Často kladené otázky

Co je token v jazykových modelech umělé inteligence? Token je část textu, kterou jazykový model čte jako jednu jednotku. Může jít o celé krátké slovo, část delšího slova, interpunkční znaménko nebo mezeru připojenou k následujícímu slovu.

Proč různá kódování dávají pro stejný text odlišný počet tokenů? Každé kódování bylo trénováno na vlastním vzorku textu a vytvořilo si vlastní slovní zásobu běžných částí. Slovo, které je v jedné slovní zásobě dostatečně běžné na to, aby tvořilo jediný token, v jiné být nemusí, a proto se rozdělí jinak.

Počítá se interpunkce jako token? Ano. Interpunkční znaménka se obvykle počítají jako vlastní tokeny, případně se podle četnosti dané kombinace v tréninkových datech tokenizéru spojí se sousedním znakem.

Je token totéž co slovo? Ne. Krátká běžná slova obvykle tvoří po jednom tokenu. Delší nebo méně běžná slova a většina slov mimo angličtinu se často rozdělí na dva či více tokenů.

Jak přesný je tento nástroj? Počítá tokeny pomocí vlastní knihovny tiktoken společnosti OpenAI a používá stejnou logiku kódování, jakou OpenAI používá interně, takže počet odpovídá tomu, co by pro stejný text a kódování oznámalo volání API OpenAI.

Dokáže tento nástroj počítat tokeny pro modely mimo OpenAI? Používá kódování z knihovny tiktoken, která jsou určena pro modely OpenAI. Ostatní poskytovatelé, například Anthropic nebo Google, používají vlastní tokenizéry, které mohou pro stejný text vytvořit odlišné počty.

Reference

  1. OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
  2. Sennrich, Rico, a kol. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
  3. Brown, Tom B., a kol. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.