O que é um token
Um modelo de linguagem nunca vê letras ou palavras. Antes que qualquer texto chegue a ele, um tokenizador corta o texto em pedaços retirados de um vocabulário fixo e substitui cada pedaço por seu número nesse vocabulário. O modelo lê uma sequência desses números e escreve sua resposta também como números, que o tokenizador transforma de volta em texto.
How2437␣do466␣I314␣reset13259␣my616␣password9206?30Os vocabulários atuais contêm de dezenas de milhares a algumas centenas de milhares de entradas. Palavras frequentes recebem sua própria entrada, geralmente com o espaço anterior anexado. Palavras menos frequentes são formadas por pedaços menores: um nome de produto incomum pode se tornar quatro ou cinco tokens.
Como os tokenizadores são construídos: codificação de pares de bytes
A maioria dos tokenizadores atuais usa uma forma de codificação de pares de bytes (BPE), adaptada para modelos de linguagem por Sennrich, Haddow e Birch. O vocabulário é aprendido a partir de uma grande amostra de texto antes que o próprio modelo seja treinado:
- Comece pelas menores unidades: caracteres únicos ou os 256 bytes possíveis.
- Conte cada par de unidades vizinhas na amostra e encontre o par mais frequente.
- Mescle esse par em uma nova unidade e adicione-a ao vocabulário.
- Repita até que o vocabulário atinja seu tamanho desejado.
O vocabulário acaba gastando suas entradas naquilo que era comum nessa amostra. As versões em nível de byte começam a partir de bytes em vez de caracteres, de modo que qualquer entrada — qualquer idioma, emoji ou símbolo avulso — ainda pode ser codificada, apenas com menos eficiência quando é incomum.
- A amostra contém “walking”, “talking” e “making” muitas vezes. No início, cada uma é dividida em caracteres:
w a l k i n g. iseguido dené o par mais frequente, então ele se torna uma unidade:w a l k in g.- Agora
inseguido degé o par mais frequente:w a l k ing. - Após dezenas de milhares de mesclagens, uma palavra frequente como “walking” provavelmente será um único token, enquanto uma palavra rara como “unwalkable” ainda será formada por várias partes.
Por que o mesmo texto resulta em contagens diferentes
| Tipo de texto | Comportamento típico |
|---|---|
| Inglês cotidiano | Cerca de 4 caracteres, ou ¾ de uma palavra, por token |
| Números, IDs e datas | Divididos em pedaços curtos: 2024-03-17 pode ocupar cinco ou mais tokens |
| Código e JSON | Colchetes, aspas e recuos custam tokens |
| Outros idiomas | Frequentemente mais tokens para o mesmo significado; um estudo de 2023 mediu diferenças de até 15 vezes para o mesmo texto traduzido |
| Nomes raros e jargões | Divididos em vários pedaços de subpalavras |
Cada família de modelos treina seu próprio tokenizador, portanto, um documento que tem 1.000 tokens para um modelo pode ter 1.150 para outro. Qualquer contagem feita com um tokenizador diferente, ou estimada a partir do número de caracteres, é uma aproximação.
Por que isso é importante para o treinamento
- Custo. O treinamento é cobrado por token processado, e o uso por token de entrada e saída.
- Limites. A janela de contexto e o limite de treinamento por exemplo são contados em tokens, não em mensagens ou palavras.
- Fraquezas peculiares. Um modelo vê “strawberry” como alguns tokens, não dez letras, e é por isso que contar letras ou inverter uma palavra é surpreendentemente difícil para ele.
Erros comuns
- Tratar um token como uma palavra ao estimar custos ou limites.
- Presumir que uma contagem feita para um modelo se aplica a outro.
- Orçar dados em outros idiomas com as proporções de caracteres por token do inglês.
- Esquecer que a formatação — JSON, marcação, IDs longos — também consome tokens.
Referências e leitura complementar
Fontes externas abrem em uma nova aba.
- 01Neural Machine Translation of Rare Words with Subword UnitsSennrich, Haddow & Birch, 2016 · arXiv · arxiv.orgO artigo que introduziu a tokenização BPE no PLN.
- 02Byte-Pair Encoding tokenizationHugging Face LLM Course · huggingface.coTreinamento BPE detalhado passo a passo, com código.
- 03Language Model Tokenizers Introduce Unfairness Between LanguagesPetrov et al., 2023 · arXiv · arxiv.orgQuanto a mais o mesmo conteúdo custa em alguns idiomas.
- 04openai/tiktokenOpenAI · GitHub · github.comUm tokenizador BPE amplamente utilizado que você pode executar para contar os tokens por conta própria.
- 05Understand and count tokensGemini API docs · ai.google.devA explicação de outro provedor sobre tokens e como contá-los.