Pāriet uz saturu

Bezmaksas Tokenu Skaitītājs GPT-4, ChatGPT un AI Modeļiem

Precīzs tokenu skaitītājs, izmantojot OpenAI tiktoken bibliotēku. Skaitiet tokenu skaitu GPT-4, ChatGPT un GPT-3 modeļiem. Pārvaldiet API izmaksas un optimizējiet AI uzvednes nekavējoties.

Žetonu skaitītājs

Kodējums

Nederīgs ievads

Ielādes kalkulators...
📚

Dokumentācija

Kas ir tokenu skaitītājs?

Tokenu skaitītājs nosaka, cik tokenos teksta fragments sadalās, kad to nolasa mākslīgā intelekta valodas modelis. Tokeni ir nelieli teksta fragmenti — veseli vārdi, vārdu daļas vai pieturzīmes — ko tādi modeļi kā GPT-4 un ChatGPT apstrādā burtu vietā. Šis rīks izmanto tiktoken — OpenAI publicētu atvērtā pirmkoda tokenizācijas bibliotēku —, tāpēc skaits atbilst tam, ko iegūtu paša OpenAI modeļi un API.

Kā darbojas tokenizācija

Tokenizators vienkārši neskaita vārdus. Tas laiž tekstu caur algoritmu, ko sauc par baitu pāru kodēšanu (BPE). Algoritms sāk ar atsevišķiem teksta baitiem un atkārtoti apvieno visbiežāk sastopamos blakus esošos pārus, izmantojot modeļus, kas apgūti no liela teksta korpusa apmācības laikā. Rezultāts ir fiksēta vārdnīca ar desmitiem tūkstošu bieži sastopamu fragmentu: veseli īsi vārdi, bieži lietotas vārdu daļas un atsevišķi simboli reti sastopamiem gadījumiem.

Tāpēc viens angļu valodas vārds bieži kļūst par vienu tokenu, bet garāki vai neparasti vārdi var sadalīties divos vai vairākos tokenos. Atstarpes parasti tiek pievienotas nākamā tokena sākumam, nevis skaitītas atsevišķi, savukārt pieturzīmes parasti veido atsevišķus tokenus.

Kodējumi, ko atbalsta šis rīks

Tiktoken piedāvā vairākus kodējumus, no kuriem katrs ir saistīts ar noteiktu OpenAI modeļu saimi. Šis rīks atbalsta trīs:

KodējumsIzmantoAptuvenais vārdnīcas lielums
cl100k_baseGPT-3,5 un GPT-4 saimes modeļi, ChatGPTaptuveni 100 000 tokenu
p50k_baseVēlākie GPT-3 modeļiaptuveni 50 000 tokenu
r50k_baseAgrākie GPT-3 un GPT-2 modeļiaptuveni 50 000 tokenu

Pēc noklusējuma tiek izvēlēts cl100k_base, jo tas aptver modeļu saimi, ko mūsdienās izmanto lielākā daļa cilvēku. Viens un tas pats teksts katrā kodējumā var radīt atšķirīgu tokenu skaitu, jo katrs kodējums ir apmācīts ar atšķirīgu tekstu un rakstzīmes apvieno citādi.

Kā aprēķināt tokenu skaitu

Nav vienkāršas aritmētiskas formulas, kas rakstzīmju vai vārdu skaitu pārvērstu tokenu skaitā, jo BPE apvienojumi ir atkarīgi no konkrētā teksta un apmācītās vārdnīcas. Vienīgā precīzā metode ir palaist tekstu caur pašu tokenizatoru:

  1. Izvēlieties kodējumu, kas atbilst mērķa modelim.
  2. Ievadiet tekstu šā kodējuma tokenizatorā.
  3. Saskaitiet iegūtā tokenu ID saraksta elementus. Šā saraksta garums ir tokenu skaits.

Aptuvenam novērtējumam angļu valodas tekstā viens tokens ir aptuveni četras rakstzīmes jeb apmēram trīs ceturtdaļas vārda. Tas ir tikai orientējošs rādītājs. Skaitļi, kods, teksts citās valodās un neparasta rakstība šo attiecību var būtiski mainīt.

Aprēķina piemērs

Aplūkosim teikumu:

Tokenizācija sadala tekstu gabalos.

Izmantojot kodējumu cl100k_base, tiktoken šo tekstu sadala 7 tokenos:

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

Jāņem vērā, ka pats vārds “Tokenization” sadalās divos tokenos — “Token” un “ization” —, bet visi pārējie vārdi paliek nedalīti. Pēdējā punkta zīme veido atsevišķu tokenu. Tāpēc teikums ar 37 rakstzīmēm un 5 vārdiem veido 7 tokenus, nevis 6.

Kāpēc tokenu skaits ir svarīgs

Mākslīgā intelekta pakalpojumu sniedzēji par API izmantošanu iekasē maksu pēc tokenu skaita, skaitot gan nosūtīto tekstu, gan atbildē ģenerēto tekstu, tāpēc tokenu skaits ļauj prognozēt izmaksas pirms pieprasījuma nosūtīšanas. Katram modelim ir arī maksimālais konteksta garums — ierobežojums, cik tokenu kopā var ietvert viens pieprasījums un tā atbilde. Šis ierobežojums atšķiras atkarībā no modeļa un mainās, pakalpojumu sniedzējiem izlaižot jaunas versijas, tāpēc to labāk pārbaudīt pašreizējā izmantotā modeļa dokumentācijā, nevis paļauties uz atmiņu.

Biežāk uzdotie jautājumi

Kas ir tokens mākslīgā intelekta valodas modeļos? Tokens ir teksta fragments, ko valodas modelis nolasa kā vienu vienību. Tas var būt vesels īss vārds, garāka vārda daļa, pieturzīme vai atstarpe, kas pievienota nākamajam vārdam.

Kāpēc dažādi kodējumi vienam un tam pašam tekstam dod atšķirīgu tokenu skaitu? Katrs kodējums ir apmācīts ar savu teksta paraugu un izveidojis savu bieži sastopamo fragmentu vārdnīcu. Vārds, kas vienā vārdnīcā ir pietiekami bieži sastopams, lai veidotu vienu tokenu, citā vārdnīcā var nebūt pietiekami bieži sastopams, tāpēc tas tiek sadalīts citādi.

Vai pieturzīmes tiek skaitītas kā tokeni? Jā. Pieturzīmes parasti tiek skaitītas kā atsevišķi tokeni vai reizēm tiek apvienotas ar blakus esošo rakstzīmi atkarībā no tā, cik bieži šāda kombinācija parādījās tokenizatora apmācībā.

Vai tokens ir tas pats, kas vārds? Nē. Īsi, bieži lietoti vārdi parasti ir pa vienam tokenam. Garāki vai retāk sastopami vārdi, kā arī lielākā daļa vārdu, kas nav angļu valodā, bieži sadalās divos vai vairākos tokenos.

Cik precīzs ir šis rīks? Tas skaita tokenus, izmantojot paša OpenAI tiktoken bibliotēku un to pašu kodēšanas loģiku, ko OpenAI izmanto iekšēji, tāpēc skaits atbilst tam, ko OpenAI API izsaukums uzrādītu tam pašam tekstam un kodējumam.

Vai šis rīks var skaitīt tokenus modeļiem, ko nav izstrādājis OpenAI? Tas izmanto tiktoken kodējumus, kas izveidoti OpenAI modeļiem. Citi pakalpojumu sniedzēji, piemēram, Anthropic vai Google, izmanto savus tokenizatorus, kas vienam un tam pašam tekstam var radīt atšķirīgu skaitu.

Atsauces

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