Definição estendida
Tokenização é o processo que converte texto bruto na sequência de unidades discretas, os tokens, que um modelo de linguagem efetivamente processa. Não existe um token universal: a escolha da unidade é uma decisão de projeto. Os modelos atuais usam tokenização por subpalavras, um meio-termo entre operar por palavra inteira, que gera vocabulários enormes e falha diante de palavras raras, e operar por caractere, que produz sequências longas demais. O algoritmo mais difundido é o byte pair encoding, proposto para tradução por Sennrich e colaboradores (2016), que parte de caracteres e funde, iterativamente, os pares mais frequentes até formar um vocabulário de subpalavras. Kudo (2018) introduziu a regularização por subpalavras, baseada em um modelo de unigrama que amostra segmentações alternativas e torna o modelo mais robusto. Kudo e Richardson (2018), com o SentencePiece, tornaram o processo independente de língua ao treinar diretamente sobre texto cru, sem pré-segmentação em palavras. O resultado é um vocabulário fixo que cobre qualquer entrada decompondo o desconhecido em peças conhecidas.
Quando se aplica
A tokenização se aplica a toda etapa que envolve um modelo de linguagem, do treino à inferência. Aplica-se ao dimensionar custo e limite: em modelos comerciais, o preço e o tamanho da janela de contexto são contados em tokens, não em palavras, e estimar o número de tokens de um texto é o que permite prever custo e caber no limite. Aplica-se ao lidar com línguas morfologicamente ricas ou com alfabetos não latinos, em que a contagem de tokens por palavra difere muito do inglês. Aplica-se ao preparar dados para fine-tuning, onde o tokenizador precisa ser o mesmo do modelo base. E aplica-se ao depurar comportamento: muitos erros aparentes de um modelo se explicam por como o texto foi fragmentado antes de chegar a ele.
Quando NÃO se aplica
A tokenização por subpalavras não se aplica como detalhe negligenciável: tratá-la como caixa-preta esconde efeitos reais sobre custo, desempenho e equidade entre línguas. Não se aplica a troca livre de tokenizador: usar um tokenizador diferente do que o modelo viu no treino degrada o desempenho, porque os identificadores de token deixam de corresponder ao que o modelo aprendeu. Não se aplica como medida estável entre modelos: o mesmo texto rende contagens de tokens distintas conforme o tokenizador, de modo que comparar custo entre fornecedores exige usar o tokenizador de cada um. E não se aplica como operação semanticamente neutra: a fragmentação pode separar unidades de significado, números e código de formas que afetam o que o modelo consegue fazer.
Aplicações por área
- Modelos de linguagem: definição do vocabulário de subpalavras que condiciona custo, janela de contexto e cobertura de vocabulário.
- Tradução automática: origem histórica do byte pair encoding, que resolveu o problema de palavras raras e fora do vocabulário.
- Línguas de baixo recurso: tokenizadores independentes de língua que tratam alfabetos diversos sem pré-segmentação.
- Engenharia de prompts e custo: estimativa de tokens para prever preço e ajustar entradas ao limite de contexto.
Armadilhas comuns
A primeira armadilha é contar palavras quando o que importa são tokens: orçamento e limite de contexto se medem em tokens, e a razão entre os dois varia por língua. A segunda é trocar o tokenizador entre treino e inferência, quebrando a correspondência que o modelo aprendeu. A terceira é supor que a contagem de tokens é comparável entre modelos, quando cada tokenizador segmenta de forma própria. A quarta é ignorar o viés entre línguas: textos em línguas não inglesas costumam gastar mais tokens por palavra, encarecendo o mesmo conteúdo. A quinta é não inspecionar a segmentação ao depurar: erros com números, datas ou código frequentemente vêm de como o tokenizador quebrou a entrada, não de uma falha de raciocínio do modelo.