BPE
Por que isso importa
Em profundidade
O algoritmo: (1) comece com um vocabulário base de bytes individuais (256 entradas) ou caracteres, (2) escaneie o corpus de treinamento e conte cada par adjacente de tokens, (3) mescle o par mais frequente em um novo token e adicione-o ao vocabulário, (4) repita os passos 2–3 até o vocabulário atingir o tamanho alvo (tipicamente 32K–128K). A ordem de mesclagem define uma prioridade: "th" pode ser a mesclagem #50 enquanto "ing" é a mesclagem #200, significando que "th" é uma unidade mais fundamental neste tokenizador.
SentencePiece
SentencePiece (Google) é uma implementação popular de BPE que trata a entrada como bytes brutos em vez de palavras pré-tokenizadas. Isso significa que pode lidar com qualquer idioma sem pré-processamento específico — sem necessidade de segmentação de palavras em chinês ou análise morfológica em turco. A maioria dos LLMs modernos usa SentencePiece ou uma variante similar de BPE em nível de bytes. A alternativa, WordPiece (usada pelo BERT), é similar mas usa um critério de mesclagem ligeiramente diferente.
O Corpus de Treinamento Importa
As mesclagens do BPE refletem as estatísticas do corpus de treinamento. Um tokenizador treinado em código em inglês obtém mesclagens eficientes para "function", "return" e "const" mas fragmenta texto em hindi ou árabe. É por isso que tokenizadores multilíngues precisam de corpora de treinamento balanceados — a tabela de mesclagens deve alocar mesclagens suficientes para os padrões comuns de cada idioma. O tokenizador do Llama 3 treinou explicitamente com dados multilíngues mais balanceados, melhorando a eficiência de tokens em idiomas não-ingleses em 2–3x comparado ao Llama 2.