Salta al contingut

Comptador de Tokens Gratuït per a GPT-4, ChatGPT i Models d'IA

Comptador de tokens precís que utilitza la biblioteca tiktoken d'OpenAI. Compta tokens per a models GPT-4, ChatGPT i GPT-3. Gestiona els costos de l'API i optimitza els prompts d'IA instantàniament.

Comptador de Tokens

Codificació

Entrada no vàlida

Calculadora de càrrega...
📚

Documentació

Què és un comptador de tokens?

Un comptador de tokens mesura en quants tokens es divideix un fragment de text quan el llegeix un model de llenguatge d’IA. Els tokens són petits fragments de text —paraules senceres, parts de paraules o signes de puntuació— que processen models com GPT-4 i ChatGPT en lloc de lletres sense processar. Aquesta eina utilitza tiktoken, la biblioteca de tokenització de codi obert publicada per OpenAI, de manera que els recomptes coincideixen amb els que produirien els models i l’API propis d’OpenAI.

Com funciona la tokenització

Un tokenitzador no es limita a comptar paraules. Fa passar el text per un algorisme anomenat codificació per parells de bytes (BPE). L’algorisme comença amb els bytes individuals del text i fusiona repetidament els parells adjacents més freqüents, basant-se en patrons apresos d’un gran corpus de text durant l’entrenament. El resultat és un vocabulari fix de desenes de milers de fragments habituals: paraules curtes senceres, fragments de paraules freqüents i caràcters individuals per a allò que és poc freqüent.

Per això, una paraula anglesa sovint es converteix en un sol token, però les paraules més llargues o poc habituals es poden dividir en dos tokens o més. Normalment, els espais s’adjunten al començament del token següent en lloc de comptar-se per si sols, i els signes de puntuació solen ser tokens propis.

Codificacions compatibles amb aquesta eina

Tiktoken ofereix diverses codificacions, cadascuna vinculada a una família de models d’OpenAI. Aquesta eina en admet tres:

CodificacióUtilitzada perMida aproximada del vocabulari
cl100k_baseModels de la família GPT-3,5 i GPT-4, ChatGPTaproximadament 100.000 tokens
p50k_baseModels GPT-3 posteriorsaproximadament 50.000 tokens
r50k_baseModels GPT-3 i GPT-2 anteriorsaproximadament 50.000 tokens

cl100k_base se selecciona per defecte, ja que cobreix la família de models que utilitza la majoria de la gent actualment. El mateix text pot produir un recompte de tokens diferent amb cada codificació, perquè cadascuna s’ha entrenat amb textos diferents i fusiona els caràcters de manera diferent.

Com calcular un recompte de tokens

No hi ha cap fórmula aritmètica senzilla per convertir el nombre de caràcters o de paraules en un recompte de tokens, perquè les fusions BPE depenen del text concret i del vocabulari entrenat. L’únic mètode exacte és fer passar el text pel mateix tokenitzador:

  1. Trieu la codificació que correspongui al model de destinació.
  2. Introduïu el text al tokenitzador d’aquesta codificació.
  3. Compteu la llista resultant d’identificadors de tokens. La longitud d’aquesta llista és el recompte de tokens.

Com a estimació aproximada per al text en anglès, un token equival aproximadament a quatre caràcters, o a uns tres quarts de paraula. Només és una orientació. Els nombres, el codi, el text no anglès i les grafies poc habituals poden fer variar molt aquesta proporció.

Exemple resolt

Preneu la frase:

"La tokenització divideix el text en fragments."

Amb la codificació cl100k_base, tiktoken la divideix en 7 tokens:

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

Observeu que «Tokenization» es divideix en dos tokens, «Token» i «ization», mentre que totes les altres paraules es mantenen senceres. El punt final és el seu propi token. Per això, una frase de 37 caràcters amb 5 paraules produeix 7 tokens en lloc de 6.

Per què són importants els recomptes de tokens

Els proveïdors d’IA cobren l’ús de l’API per token, comptant tant el text enviat com el text generat en resposta; per tant, un recompte de tokens permet predir el cost abans d’enviar una sol·licitud. Cada model també té una longitud màxima de context, és a dir, un límit sobre quants tokens poden contenir conjuntament una sol·licitud i la seva resposta. Aquest límit varia segons el model i canvia quan els proveïdors publiquen noves versions, de manera que és preferible consultar la documentació actual del model utilitzat en lloc de basar-se en la memòria.

Preguntes freqüents

Què és un token en els models de llenguatge d’IA? Un token és un fragment de text que un model de llenguatge llegeix com una unitat. Pot ser una paraula curta sencera, una part d’una paraula més llarga, un signe de puntuació o un espai adjunt a la paraula següent.

Per què diferents codificacions donen recomptes de tokens diferents per al mateix text? Cada codificació s’ha entrenat amb la seva pròpia mostra de text i ha creat el seu propi vocabulari de fragments habituals. Una paraula prou freqüent per ser un sol token en un vocabulari pot no aparèixer en un altre, i per això es divideix de manera diferent.

La puntuació compta com un token? Sí. Els signes de puntuació solen comptar com a tokens propis, tot i que de vegades es fusionen amb el caràcter adjacent, segons la freqüència amb què aquesta combinació aparegués durant l’entrenament del tokenitzador.

Un token és el mateix que una paraula? No. Les paraules curtes i habituals solen ser un token cadascuna. Les paraules més llargues o menys freqüents, i la majoria de paraules que no són angleses, sovint es divideixen en dos tokens o més.

Fins a quin punt és precisa aquesta eina? Compta els tokens amb la biblioteca tiktoken pròpia d’OpenAI i utilitza la mateixa lògica de codificació que OpenAI fa servir internament; per tant, el recompte coincideix amb el que indicaria una crida a l’API d’OpenAI per al mateix text i la mateixa codificació.

Aquesta eina pot comptar tokens de models que no són d’OpenAI? Utilitza les codificacions de tiktoken, creades per als models d’OpenAI. Altres proveïdors, com Anthropic o Google, utilitzen els seus propis tokenitzadors, que poden produir recomptes diferents per al mateix text.

Referències

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