A maioria dos tokenizers modernos usa Byte Pair Encoding (BPE) ou uma variante chamada SentencePiece. BPE funciona começando com bytes ou caracteres individuais e repetidamente mesclando o par adjacente mais frequente em um novo token. Após milhares de mesclas, palavras comuns como “the” se tornam tokens únicos, enquanto palavras raras são divididas em pedaços de subpalavras.
O tamanho do vocabulário de um tokenizer é um trade-off real de engenharia. Vocabulários maiores (100K+ tokens) comprimem texto de forma mais eficiente — palavras e frases comuns ganham tokens dedicados, então menos contexto é consumido. Mas vocabulários maiores também significam uma tabela de embedding maior nas camadas de entrada e saída do modelo.
Tokenizers são treinados em um corpus, e a distribuição de idiomas desse corpus determina a eficiência. Texto em inglês tipicamente é tokenizado em aproximadamente 1 token por palavra. Mas idiomas como chinês, japonês, coreano, árabe e hindi podem exigir 2–4x mais tokens para significado equivalente.
Peculiaridades na tokenização explicam vários comportamentos de LLMs que as pessoas acham intrigantes. Modelos têm dificuldade com tarefas no nível de caractere (contar letras em “strawberry”) porque veem tokens, não caracteres. Eles lidam com alguns nomes de variáveis melhor que outros porque nomes comuns são tokens únicos enquanto incomuns se fragmentam.