Capítulo 02 · Tokenização · 8 min
Do texto aos tokens
Como o texto se torna números. BPE, subpalavras, e por que os LLMs têm dificuldade em contar letras.
Por que tokens?
Um modelo de linguagem nao consegue manipular texto diretamente. Ele manipula numeros. O primeiro passo, sempre que voce fala com um LLM, e transformar o texto em uma sequencia de inteiros: os token IDs.
A tokenizacao e o corte que torna essa conversao possivel.
Por que nao um token por palavra?
A primeira vista, poderiamos imaginar: uma palavra = um token. Simples.
Mas nao funciona:
- A lingua contem milhoes de palavras possiveis (flexoes, neologismos, nomes proprios, erros de digitacao...). Ter um token por palavra exigiria um vocabulario gigantesco.
- O modelo nao consegue fazer nada com uma palavra que nunca viu.
- Algumas linguas (chines, japones) nem sequer usam espacos entre palavras.
A solucao adotada por quase todos os LLM modernos: as subpalavras.
Tokenizacao por subpalavras
Com um tokenizer de subpalavras:
- Palavras frequentes viram um unico token (
the,e,sao) - Palavras raras sao quebradas em partes menores (
tokenizacao→token+izacao) - Caracteres desconhecidos continuam decomponiveis ate a letra
O resultado: um vocabulario de tamanho razoavel (geralmente entre 30.000 e 200.000 tokens) que consegue representar qualquer texto.
O algoritmo mais usado se chama BPE (Byte Pair Encoding). Ele comeca com caracteres individuais e funde iterativamente os pares mais frequentes no corpus de treinamento.
BPE em trinta segundos
Imagine um mini-corpus de tres palavras: low, lower, lowest. Comecamos tokenizando no nivel do caractere:
l o w
l o w e r
l o w e s t
A cada iteracao, procuramos o par de tokens adjacentes mais frequente. Aqui, l o aparece tres vezes — fundimos em lo:
lo w
lo w e r
lo w e s t
Agora lo w e o par mais frequente. Fundimos:
low
low e r
low e s t
Continuamos ate atingir o tamanho de vocabulario desejado. Os pedacos que aparecem com frequencia (low) viram um unico token. Os raros (est) ficam decompostos. E exatamente isso que o BPE faz — sobre bilhoes de palavras em vez de tres, e sobre bytes em vez de caracteres nos modelos modernos (byte-level BPE), o que garante que nada fique "fora do vocabulario".
Alguns parentes que vale conhecer: WordPiece (BERT), SentencePiece (T5, Llama), Unigram LM (mT5). Todos compartilham a mesma ideia — um vocabulario de subpalavras — com heuristicas de fusao diferentes.
Tokens especiais
Alem das subpalavras do texto, o tokenizer reserva alguns tokens especiais que nunca aparecem naturalmente:
<|im_start|>,<|im_end|>(OpenAI),[INST]…[/INST](Llama),<|user|>/<|assistant|>— delimitam os turnos de uma conversa.<|endoftext|>— fim de documento.<|fim_prefix|>,<|fim_middle|>— para fill-in-the-middle, usado em completacao de codigo.
E o que permite transformar um dialogo "Usuario disse X, Assistente respondeu Y" em uma sequencia linear de tokens que o modelo consegue processar. Quando voce manda uma mensagem para o ChatGPT, esses marcadores sao adicionados automaticamente antes da tokenizacao.
Teste
À direita aparecem as sub-palavras: cada token é um fragmento reutilizável, não necessariamente uma palavra inteira. As palavras frequentes cabem em um único token; as raras se decompõem em vários pedaços.
Algumas coisas para observar:
- Palavras curtas e frequentes raramente sao cortadas.
- Palavras longas ou raras muitas vezes acabam em varias partes.
- O espaco antes de uma palavra faz parte do token (por isso
· helloehellosao tokens diferentes). - Em portugues, a relacao token/palavra costuma ser um pouco maior que em ingles (cerca de 1.3-1.7 contra 1.2-1.4), tambem porque os modelos viram mais ingles durante o treinamento.
Consequencias praticas
Essa historia de tokens tem muitas implicacoes inesperadas:
- LLMs contam mal letras. "Quantos R existem em strawberry?" — frequentemente respondem 2 em vez de 3, porque a palavra chega em poucos tokens, nao como letras separadas.
- Os precos de API sao calculados em tokens, nao em palavras. O portugues pode custar um pouco mais para processar do que o ingles.
- As janelas de contexto (
128k tokens,200k tokens...) tambem sao medidas em tokens. Um livro de 100.000 palavras em portugues pode representar cerca de 140.000 tokens.
Para o modelo, "tokenizacao" e "tok·en·iza·cao" sao a mesma coisa. Ele so ve pedacos.
O proximo passo
Agora que seu texto virou uma sequencia de inteiros, esses inteiros entram no modelo. Primeiro passo la dentro: eles sao transformados em vetores, em um espaco de centenas de dimensoes onde o significado vira uma posicao geometrica.
Esse e o tema do proximo capitulo.
Atualizado em