Iniciante 9 minFundamentos

Tokens e tokenização: entender o que consome um LLM

Um LLM não lê palavras nem letras: ele lê tokens, fragmentos de texto resultantes de uma segmentação chamada tokenização. Essa unidade invisível determina tudo — quanto seu modelo pode memorizar, a velocidade com que ele responde e por que o mesmo texto em francês « pesa » mais do que em inglês. Este guia explica de forma concreta o que é um token, como funciona a tokenização de um LLM e o que isso muda quando você executa um modelo localmente.

Por Mohamed Meguedmi·Atualização 2026-09-13·Testado no Windows, macOS e Linux

#Por que falar de tokens

Quando você conversa com um LLM local via Ollama ou LM Studio, você digita frases. O modelo, por sua vez, nunca vê suas frases tal como são. Antes mesmo do primeiro cálculo, seu texto é transformado em uma sequência de números, cada um representando um token. Tudo que o modelo faz — entender, gerar — acontece no nível desses tokens, não das palavras.

Entender os tokens não é um detalhe acadêmico. É o que explica três coisas muito concretas: por que um documento “cabe” ou não na janela de contexto, por que seu modelo gera a determinada velocidade (os famosos tokens por segundo) e por que a cobrança de uma API em nuvem ou um limite de contexto sempre é calculado em tokens, nunca em palavras.

i
A palavra-chave para lembrar
A tokenização de um LLM é o passo que divide seu texto em tokens antes do processamento. Trata-se de um pré-processamento determinístico: o mesmo texto sempre gera os mesmos tokens para um modelo específico.

#O que é exatamente um token?

O kit IA Local

Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias

Um token é um fragmento de texto: às vezes uma palavra inteira, muitas vezes uma parte de uma palavra, às vezes um único caractere ou um sinal de pontuação. Não é uma letra nem uma palavra no sentido estrito — é uma unidade estatística escolhida pelo algoritmo de tokenização para representar o texto da forma mais eficiente possível.

A regra empírica mais útil: em inglês, 1 token ≈ 4 caracteres ≈ 0,75 palavra. Ou seja, 100 tokens correspondem a cerca de 75 palavras em inglês. Para o francês, a proporção é claramente menos favorável, voltaremos a isso mais abaixo.

"chat"
Uma palavra frequente e curta: muitas vezes apenas 1 token.
"anticonstitutionnellement"
Uma palavra rara e longa: dividida em vários tokens (anti / constitution / nelle / ment…).
" " (espaço)
O espaço é geralmente colado no início do token seguinte, não isolado.
"123456"
Os números são frequentemente divididos algarismo por algarismo ou em pequenos grupos.
😀
Um emoji pode custar vários tokens sozinho.

As palavras muito comuns recebem um único token porque aparecem por toda parte nos dados de treinamento. Palavras raras, técnicas ou em uma língua pouco representada são reconstruídas a partir de pedaços menores — o que as torna mais “caras” em termos de tokens.

#Como um texto é realmente dividido

A maioria dos LLM modernos utiliza uma família de algoritmos chamada BPE (Byte Pair Encoding) ou suas variantes (WordPiece, Unigram). O princípio: começar com caracteres brutos e depois fundir progressivamente os pares de símbolos mais frequentes do corpus de treinamento até obter um vocabulário de tamanho fixo — tipicamente entre 32.000 e 200.000 tokens, conforme o modelo.

  1. 01
    Segmentação inicial
    O texto é reduzido aos seus octetos ou caracteres básicos. Nada é perdido: toda cadeia pode ser representada.
  2. 02
    Fusões aprendidas
    O tokenizer aplica a lista de fusões aprendidas durante o treinamento (por exemplo, « t » + « ion » → « tion »), na ordem de frequência.
  3. 03
    Conversão em identificadores
    Cada token final é substituído pelo seu número no vocabulário. O modelo trabalha apenas com esses inteiros.

Consequência importante: o vocabulário é definido no treinamento e fica fixo. Um modelo treinado principalmente com inglês terá um vocabulário otimizado para o inglês e dividirá o francês em pedaços menores e mais numerosos. Essa é a origem do custo adicional para quem usa o francês.

→
Cada modelo tem seu tokenizer
O mesmo texto não dá o mesmo número de tokens em Llama, Qwen, Mistral ou Gemma. Uma contagem é sempre relativa a um modelo específico. Para uma contagem confiável, use o tokenizer do modelo que você realmente está rodando.

#Por que o francês custa mais que o inglês

Para conteúdo equivalente, um texto em francês consome normalmente de 15 a 30% mais tokens do que sua tradução em inglês. Em alguns modelos muito centrados em inglês, a diferença pode ultrapassar 50%. Três razões se acumulam.

Vocabulário desequilibrado
Os tokenizers são treinados principalmente com inglês: palavras inglesas comuns têm seu token dedicado, não as francesas.
Acentos e caracteres especiais
é, è, à, ç, œ… são mais raros no vocabulário e às vezes são divididos em vários tokens (ou até em bytes).
Morfologia mais rica
Conjugações, concordâncias e elisões (l', d', qu') multiplicam as formas de uma mesma palavra, que são menos bem cobertas pelo vocabulário.

Exemplo concreto: a frase em inglês “The cat is on the table” ocupa aproximadamente 6 tokens. Sua versão em francês “Le chat est sur la table” costuma ocupar de 7 a 8 tokens, dependendo do modelo. Em um parágrafo inteiro, a diferença se torna significativa — e tem um custo duplo: em espaço na janela de contexto e em tempo de geração.

i
Boa notícia: isso está melhorando
Os modelos recentes e multilíngues (Qwen, Gemma, Mistral) têm tokenizers muito mais equilibrados do que os das primeiras gerações. A diferença entre francês e inglês permanece, mas diminuiu significativamente nos modelos concebidos para serem multilíngues desde o início.

#Tokens e janela de contexto

A janela de contexto de um modelo é medida em tokens, não em palavras nem em caracteres. Um modelo anunciado com 32.768 tokens de contexto pode 'ver' em um dado momento o equivalente a cerca de 24.000 palavras em inglês — mas apenas cerca de 18.000 a 20.000 palavras em francês, devido ao custo extra de tokenização.

Essa janela inclui tudo: o prompt de sistema, o histórico da conversa, sua mensagem atual, os documentos colados e a resposta que está sendo gerada. Quando o total ultrapassa o limite, o modelo trunca o conteúdo — geralmente o mais antigo — e “esquece” o início da conversa.

Prompt de sistema
Contado em cada chamada. Um prompt de sistema prolixo consome continuamente parte do contexto.
Histórico
Cada rodada da conversa se acumula. Uma conversa longa acaba saturando a janela.
Documentos (RAG, copiar e colar)
Um PDF de 10 páginas pode facilmente representar vários milhares de tokens.
Resposta gerada
A saída também ocupa espaço: é preciso reservar espaço para responder.
!
A armadilha do contexto que aumenta o uso de VRAM
Localmente, ampliar a janela de contexto não é gratuito: o cache KV cresce com o número de tokens e consome VRAM além dos pesos do modelo. Um contexto de 32k pode exigir vários gigabytes adicionais. Contexto demais pode exceder a capacidade de memória da sua GPU e fazer a velocidade despencar.

#Tokens e velocidade local

A velocidade de um LLM é medida em tokens por segundo (tok/s). É a unidade universal dos benchmarks. Há dois momentos a distinguir, que muitas vezes são confundidos.

Prompt / prefill
O tempo para 'ler' seu prompt inteiro. Quanto mais tokens de entrada, mais a primeira resposta demora para começar.
Geração / decodificação
A velocidade com que os tokens das respostas são emitidos, um por um. É o tok/s que você observa na tela.

Consequência direta para o francês: como o mesmo conteúdo representa mais tokens, seu modelo necessariamente leva mais tempo para processar um prompt em francês e gerar uma resposta em francês de comprimento equivalente. A sensação de que “é mais lento em francês” não é subjetiva — é uma questão de contagem de tokens.

A velocidade de decodificação depende principalmente do modelo e do hardware (parâmetros ativos por token, largura de banda da memória, quantização). Mas, mantendo o mesmo hardware, reduzir o número de tokens de entrada — prompt de sistema mais curto, histórico enxugado — reduz significativamente o tempo até o primeiro token.

#Contar os tokens de um texto sozinho

O melhor jeito de ganhar intuição é medir. Aqui estão três abordagens, da mais simples à mais precisa.

#Fazer uma estimativa aproximada

Para uma estimativa rápida sem instalar nada: divida o número de caracteres por 4 para o inglês, por 3 a 3,5 para o francês. É uma aproximação grosseira, mas suficiente para saber se um documento cabe em uma janela de contexto.

#Contar em Python com o verdadeiro tokenizer

Para uma contagem exata, use o tokenizer do modelo. A biblioteca tokenizers / transformers da Hugging Face carrega o tokenizer real de um modelo com pesos abertos:

Contar usando o tokenizer do modelo
from transformers import AutoTokenizer

# Remplacez par le modèle que vous faites tourner en local
tok = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B")

texte_fr = "Le chat est sur la table."
texte_en = "The cat is on the table."

print(len(tok.encode(texte_fr)), "tokens (fr)")
print(len(tok.encode(texte_en)), "tokens (en)")

# Voir le découpage réel
print(tok.tokenize(texte_fr))

Executar este script em seus próprios textos é o exercício mais convincente: você vê com os próprios olhos quais palavras francesas estão fragmentadas e em que medida o inglês é mais compacto.

#Ler a contagem pela API do Ollama

Ollama já mostra os contadores de tokens nas suas respostas. O daemon escuta por padrão em http://localhost:11434; uma chamada à API retorna prompt_eval_count (tokens do prompt) e eval_count (tokens gerados):

Terminal
curl http://localhost:11434/api/generate -d '{
  "model": "qwen2.5:7b",
  "prompt": "Explique la tokenization en une phrase.",
  "stream": false
}' | grep -o '"eval_count":[0-9]*'

Você também encontra eval_duration: divida eval_count pela duração para obter sua taxa real de geração em tokens por segundo, na sua máquina, com sua quantização.

#Economizar tokens sem perder qualidade

Como cada token consome espaço no contexto e afeta a velocidade, alguns hábitos simples fazem uma diferença real, especialmente em francês.

Prompt de sistema conciso
Ele é reenviado a cada chamada. Cada frase desnecessária tem um custo a cada rodada.
Reduzir o histórico
Resuma ou corte trocas antigas em vez de manter toda a conversa.
RAG em vez de colar tudo
Insira apenas os trechos relevantes de um documento, não o documento inteiro.
Definir o comprimento da saída
Pedir uma resposta curta gera menos tokens — portanto, a geração é mais rápida.
→
Ordem de grandeza correta
Antes de colar um documento grande no chat, estime seu tamanho: cerca de 3 caracteres por token em francês. Um texto de 30.000 caracteres corresponde a cerca de 10.000 tokens — ou seja, um terço de uma janela de 32k, antes mesmo da sua pergunta e da resposta.

#Para se aprofundar

Os tokens são o fio que conecta várias noções básicas. Três guias complementam diretamente esse conteúdo: o primeiro detalha a janela de contexto que os tokens preenchem, o segundo explica como a quantização influencia a velocidade medida em tokens por segundo, o terceiro mostra como o transformador trata esses tokens internamente.


Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.