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ů
Neplatný vstup
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_base | Modely řady GPT-3,5 a GPT-4, ChatGPT | přibližně 100 000 tokenů |
p50k_base | Novější modely GPT-3 | přibližně 50 000 tokenů |
r50k_base | Starší modely GPT-3 a GPT-2 | př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:
- Zvolte kódování odpovídající cílovému modelu.
- Předejte text tokenizéru daného kódování.
- 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
- OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
- Sennrich, Rico, a kol. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
- Brown, Tom B., a kol. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.