Preskočiť na obsah

Bezplatný počítadlo tokenov pre GPT-4, ChatGPT a AI modely

Presné počítadlo tokenov pomocou knižnice tiktoken od OpenAI. Počítajte tokeny pre modely GPT-4, ChatGPT a GPT-3. Spravujte náklady API a okamžite optimalizujte AI výzvy.

Počítadlo tokenov

Kódovanie

Neplatný vstup

Kalkulačka načítavania...
📚

Dokumentácia

Čo je počítadlo tokenov?

Počítadlo tokenov meria, na koľko tokenov sa text rozdelí, keď ho číta jazykový model umelej inteligencie. Tokeny sú malé časti textu — celé slová, časti slov alebo interpunkčné znamienka — ktoré modely ako GPT-4 a ChatGPT spracúvajú namiesto jednotlivých písmen. Tento nástroj používa knižnicu tokenizátora tiktoken s otvoreným zdrojovým kódom, ktorú vydala spoločnosť OpenAI, takže počty zodpovedajú tomu, čo by vygenerovali vlastné modely a API spoločnosti OpenAI.

Ako funguje tokenizácia

Tokenizátor jednoducho nepočíta slová. Spracúva text algoritmom s názvom kódovanie dvojíc bajtov (BPE). Algoritmus začína jednotlivými bajtmi textu a opakovane spája najčastejšie susediace dvojice podľa vzorov získaných počas trénovania z veľkého množstva textu. Výsledkom je pevný slovník s desaťtisícmi bežných častí: celými krátkymi slovami, častými časťami slov a jednotlivými znakmi pre všetko zriedkavé.

Z tohto dôvodu sa jedno anglické slovo často zmení na jeden token, no dlhšie alebo nezvyčajné slová sa môžu rozdeliť na dva či viac tokenov. Medzery sa zvyčajne pripájajú na začiatok nasledujúceho tokenu namiesto toho, aby sa počítali samostatne, zatiaľ čo interpunkčné znamienka sú spravidla vlastnými tokenmi.

Kódovania podporované týmto nástrojom

Tiktoken ponúka niekoľko kódovaní, z ktorých každé súvisí s určitou rodinou modelov OpenAI. Tento nástroj podporuje tri:

KódovaniePoužívané modelmiPribližná veľkosť slovníka
cl100k_baseModely z rodiny GPT-3,5 a GPT-4, ChatGPTpribližne 100 000 tokenov
p50k_baseNovšie modely GPT-3približne 50 000 tokenov
r50k_baseStaršie modely GPT-3 a GPT-2približne 50 000 tokenov

Kódovanie cl100k_base je vybrané predvolene, pretože pokrýva rodinu modelov, ktorú dnes používa väčšina ľudí. Ten istý text môže pri každom kódovaní vytvoriť iný počet tokenov, pretože každé z nich bolo trénované na inom texte a znaky spája odlišným spôsobom.

Ako vypočítať počet tokenov

Neexistuje jednoduchý aritmetický vzorec na prepočet počtu znakov alebo slov na počet tokenov, pretože spájanie v BPE závisí od konkrétneho textu a natrénovaného slovníka. Jedinou presnou metódou je spracovať text samotným tokenizátorom:

  1. Vyberte kódovanie, ktoré zodpovedá cieľovému modelu.
  2. Vložte text do tokenizátora daného kódovania.
  3. Spočítajte výsledný zoznam identifikátorov tokenov. Dĺžka tohto zoznamu je počet tokenov.

Ako hrubý odhad pre anglický text platí, že jeden token zodpovedá približne štyrom znakom alebo asi trom štvrtinám slova. Je to iba orientačné pravidlo. Čísla, kód, neanglický text a nezvyčajný pravopis môžu tento pomer výrazne zmeniť.

Príklad s riešením

Uvažujme vetu:

„Tokenization splits text into pieces.“

Pri kódovaní cl100k_base ju tiktoken rozdelí na 7 tokenov:

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

Všimnite si, že samotné slovo „Tokenization“ sa rozdelí na dva tokeny, „Token“ a „ization“, zatiaľ čo každé ostatné slovo zostane celé. Záverečná bodka je samostatný token. Preto veta s 37 znakmi a 5 slovami vytvorí 7 tokenov, a nie 6.

Prečo je počet tokenov dôležitý

Poskytovatelia umelej inteligencie účtujú používanie API podľa počtu tokenov a započítavajú text odoslaný aj text vygenerovaný v odpovedi, takže počet tokenov umožňuje odhadnúť náklady ešte pred odoslaním požiadavky. Každý model má aj maximálnu dĺžku kontextu, teda limit počtu tokenov, ktoré môže obsahovať jedna požiadavka spolu s odpoveďou. Tento limit sa líši podľa modelu a mení sa s vydávaním nových verzií poskytovateľmi, preto je najlepšie overiť si ho v aktuálnej dokumentácii používaného modelu, a nie spoliehať sa na pamäť.

Najčastejšie otázky

Čo je token v jazykových modeloch umelej inteligencie? Token je časť textu, ktorú jazykový model číta ako jednu jednotku. Môže ísť o celé krátke slovo, časť dlhšieho slova, interpunkčné znamienko alebo medzeru pripojenú k nasledujúcemu slovu.

Prečo rôzne kódovania poskytujú pre ten istý text odlišný počet tokenov? Každé kódovanie bolo trénované na vlastnej vzorke textu a vytvorilo si vlastný slovník bežných častí. Slovo, ktoré je v jednom slovníku dostatočne časté na to, aby tvorilo jediný token, sa v inom slovníku nemusí nachádzať, a preto sa rozdelí inak.

Počíta sa interpunkcia ako token? Áno. Interpunkčné znamienka sa zvyčajne počítajú ako samostatné tokeny alebo sa príležitostne spoja so susedným znakom podľa toho, ako často sa táto kombinácia vyskytovala počas trénovania tokenizátora.

Je token to isté ako slovo? Nie. Krátke a bežné slová zvyčajne tvoria po jednom tokene. Dlhšie alebo menej bežné slová a väčšina slov mimo angličtiny sa často rozdelia na dva alebo viac tokenov.

Aký presný je tento nástroj? Tokeny počíta pomocou vlastnej knižnice tiktoken spoločnosti OpenAI a používa rovnakú logiku kódovania, akú OpenAI používa interne, takže počet zodpovedá tomu, čo by volanie API OpenAI oznámilo pre rovnaký text a kódovanie.

Dokáže tento nástroj počítať tokeny pre modely, ktoré nepochádzajú od OpenAI? Používa kódovania knižnice tiktoken vytvorené pre modely OpenAI. Iní poskytovatelia, napríklad Anthropic alebo Google, používajú vlastné tokenizátory, ktoré môžu pre ten istý text vytvoriť odlišný počet tokenov.

Referencie

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