Pular para o conteúdo

Contador de Tokens Gratuito para GPT-4, ChatGPT e Modelos de IA

Contador de tokens preciso usando a biblioteca tiktoken da OpenAI. Conte tokens para modelos GPT-4, ChatGPT e GPT-3. Gerencie custos de API e otimize prompts de IA instantaneamente.

Contador de Tokens

Codificação

Entrada inválida

Calculadora de carregamento...
📚

Documentação

O que é um contador de tokens?

Um contador de tokens mede em quantos tokens um trecho de texto é dividido quando um modelo de linguagem de IA o lê. Tokens são pequenos fragmentos de texto — palavras inteiras, partes de palavras ou sinais de pontuação — que modelos como GPT-4 e ChatGPT processam em vez de letras brutas. Esta ferramenta usa o tiktoken, a biblioteca de tokenização de código aberto publicada pela OpenAI, portanto as contagens correspondem ao que os próprios modelos e a API da OpenAI produziriam.

Como funciona a tokenização

Um tokenizador não simplesmente conta palavras. Ele processa o texto por meio de um algoritmo chamado codificação por pares de bytes (BPE). O algoritmo começa com bytes individuais do texto e mescla repetidamente os pares adjacentes mais comuns, com base em padrões aprendidos a partir de um grande conjunto de textos durante o treinamento. O resultado é um vocabulário fixo de dezenas de milhares de fragmentos comuns: palavras curtas inteiras, fragmentos frequentes de palavras e caracteres individuais para tudo o que for raro.

Por isso, uma palavra em inglês geralmente se torna um token, mas palavras mais longas ou incomuns podem ser divididas em dois ou mais. Os espaços normalmente são anexados ao início do token seguinte, em vez de serem contados separadamente, e os sinais de pontuação geralmente são seus próprios tokens.

Codificações compatíveis com esta ferramenta

O tiktoken oferece várias codificações, cada uma associada a uma família de modelos da OpenAI. Esta ferramenta é compatível com três:

CodificaçãoUsada porTamanho aproximado do vocabulário
cl100k_baseModelos das famílias GPT-3,5 e GPT-4, ChatGPTcerca de 100.000 tokens
p50k_baseModelos GPT-3 posteriorescerca de 50.000 tokens
r50k_baseModelos GPT-3 e GPT-2 anteriorescerca de 50.000 tokens

cl100k_base é selecionada por padrão, pois abrange a família de modelos que a maioria das pessoas usa atualmente. O mesmo texto pode produzir uma contagem de tokens diferente em cada codificação, porque cada uma foi treinada com textos diferentes e mescla os caracteres de maneira diferente.

Como calcular uma contagem de tokens

Não existe uma fórmula aritmética simples para converter a contagem de caracteres ou de palavras em uma contagem de tokens, pois as mesclagens do BPE dependem do texto específico e do vocabulário treinado. O único método exato é processar o texto pelo próprio tokenizador:

  1. Escolha a codificação correspondente ao modelo de destino.
  2. Envie o texto ao tokenizador dessa codificação.
  3. Conte a lista resultante de IDs de tokens. O comprimento dessa lista é a contagem de tokens.

Como estimativa aproximada para textos em inglês, um token corresponde a cerca de quatro caracteres ou aproximadamente três quartos de uma palavra. Isso é apenas uma orientação. Números, código, textos que não estejam em inglês e grafias incomuns podem alterar bastante essa proporção.

Exemplo prático

Considere a frase:

"A tokenização divide o texto em partes."

Com a codificação cl100k_base, o tiktoken divide isso em 7 tokens:

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

Observe que "Tokenization" é dividida em dois tokens, "Token" e "ization", enquanto todas as outras palavras permanecem inteiras. O ponto final é seu próprio token. É por isso que uma frase de 37 caracteres com 5 palavras produz 7 tokens, e não 6.

Por que as contagens de tokens são importantes

Os provedores de IA cobram pelo uso da API com base no número de tokens, contando tanto o texto enviado quanto o texto gerado na resposta; assim, uma contagem de tokens permite prever o custo antes do envio de uma solicitação. Cada modelo também tem um comprimento máximo de contexto, que limita quantos tokens uma solicitação e sua resposta podem conter juntas. Esse limite varia conforme o modelo e muda à medida que os provedores lançam novas versões. Por isso, é melhor verificar a documentação atual do modelo em uso, em vez de presumir o valor de memória.

Dúvidas frequentes

O que é um token em modelos de linguagem de IA? Um token é um fragmento de texto que um modelo de linguagem lê como uma unidade. Pode ser uma palavra curta inteira, parte de uma palavra mais longa, um sinal de pontuação ou um espaço anexado à palavra seguinte.

Por que diferentes codificações produzem contagens de tokens diferentes para o mesmo texto? Cada codificação foi treinada com sua própria amostra de textos e criou seu próprio vocabulário de fragmentos comuns. Uma palavra comum o bastante para ser um único token em um vocabulário pode não estar presente em outro, sendo dividida de maneira diferente.

A pontuação conta como token? Sim. Os sinais de pontuação geralmente são contados como tokens próprios ou, ocasionalmente, mesclados com o caractere adjacente, dependendo da frequência com que essa combinação apareceu durante o treinamento do tokenizador.

Um token é a mesma coisa que uma palavra? Não. Palavras curtas e comuns geralmente correspondem a um token cada. Palavras mais longas ou menos comuns, e a maioria das palavras que não estão em inglês, frequentemente são divididas em dois ou mais tokens.

Qual é a precisão desta ferramenta? Ela conta os tokens usando a própria biblioteca tiktoken da OpenAI, executando a mesma lógica de codificação usada internamente pela OpenAI. Assim, a contagem corresponde ao que uma chamada à API da OpenAI informaria para o mesmo texto e a mesma codificação.

Esta ferramenta pode contar tokens de modelos que não são da OpenAI? Ela usa as codificações do tiktoken, desenvolvidas para os modelos da OpenAI. Outros provedores, como Anthropic ou Google, usam seus próprios tokenizadores, que podem produzir contagens diferentes para o mesmo texto.

Referências

  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.