Avançado

Treinando seu próprio tokenizer

O treino do tokenizer transforma uma amostra representativa em vocabulário e segmentação fixos que todo checkpoint posterior precisa compartilhar.

Atualizada em

1

Conceito

Um modelo de linguagem nunca recebe texto cru. Seu tokenizer mapeia texto a IDs inteiros, e a tabela de embeddings leva IDs a vetores. Treinar o tokenizer define o alfabeto, a compressão e várias convenções de fronteira antes do primeiro gradiente.

Escolha uma amostra representativa do corpus governado. Preserve idiomas, código, números, whitespace, scripts e formatos importantes, limitando fontes gigantes para não monopolizarem o vocabulário. Treinar tokenizer é barato diante do modelo, mas uma amostra enviesada impõe ineficiência por toda a vida dos checkpoints.

Decida a normalização conscientemente. Unicode representa texto visualmente parecido de formas diferentes. Case folding, remoção de acentos, limpeza de espaços ou compatibility normalization reduzem vocabulário, mas podem destruir distinções. O processo precisa ser reversível o suficiente: decodificar IDs deve recuperar os bytes pretendidos ou uma forma normalizada documentada. Sistemas sensíveis também consideram caracteres visualmente confusos.

Esquemas byte-level partem de bytes, garantindo representação de qualquer input, e aprendem sequências comuns. BPE une repetidamente unidades adjacentes frequentes e produz uma lista determinística de merges. Unigram começa com muitas peças candidatas, otimiza um vocabulário probabilístico e remove as menos úteis. SentencePiece treina diretamente em frases e trata espaços explicitamente. Todos negociam entre unidades pequenas e universais e um dicionário enorme de palavras.

Reserve tokens especiais antes de congelar IDs. Padding, começo e fim, unknown quando aplicável, marcadores FIM, roles de chat e sentinelas de span corruption têm semântica operacional. Strings, IDs e contextos permitidos precisam de versão. Adicionar token depois exige redimensionar embeddings e treinar a nova linha; inseri-lo no meio e deslocar IDs corrompe associações existentes.

Um loop BPE conceitual conta pares adjacentes, une o mais frequente, atualiza a representação e repete até o orçamento. Implementações de produção otimizam contagem e edge cases, mas o artefato continua sendo vocabulário base mais merges ordenados.

Avalie em amostras held-out. Fertility é o número de tokens por palavra ou span; menor não é automaticamente melhor, mas fragmentação extrema consome contexto e compute. Reporte por idioma e domínio, não só média global. Meça fallback, round-trip, expansão máxima para strings adversariais, velocidade e comportamento em espaços, números, URLs e código.

Inspecione exemplos manualmente. Morfologia do português, acentos combinantes, sequências de emoji, CJK, escrita da direita para a esquerda, indentação e números longos revelam falhas diferentes. Um tokenizer majoritariamente inglês cobra mais tokens de outros idiomas para a mesma quantidade de significado.

Depois do treino, congele e gere hash dos arquivos. Armazene versão do código, regras de normalização, manifesto da amostra, vocabulário, merges, tabela de specials e avaliação. Teste que todos os workers geram IDs idênticos para um conjunto golden. Divergência silenciosa pode treinar o modelo em input sem sentido com losses ainda finitas.

Tokenizer não é preprocessing neutro. Ele decide as unidades previstas e o comprimento em que attention opera. Trate-o como API pública: inputs representativos, semântica explícita, testes adversariais e versionamento imutável.

2

Como explicar para uma criança de cinco anos

Antes de imprimir um jornal multilíngue, uma fundição decide quais tipos móveis fabricar. Letras isoladas imprimem qualquer coisa, mas exigem muitas peças; palavras inteiras são eficientes até surgir uma inédita. O treino subword estuda textos representativos e funde fragmentos recorrentes. Depois que as prensas saem, mudar o inventário troca o número de cada gaveta, e instruções antigas deixam de encaixar.

3

Ensine de volta

Explique o workflow de treinamento do tokenizer, seus critérios de avaliação e por que o vocabulário integra o contrato do checkpoint.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Salvo somente neste dispositivo.

Ver uma resposta-modelo

Normalize uma amostra representativa e governada; escolha byte, caractere, BPE, unigram ou outra segmentação; reserve tokens especiais; treine um vocabulário fixo; avalie fertility, cobertura de bytes, reversibilidade, equilíbrio linguístico, código, números e throughput em domínios held-out. Como linhas de embedding correspondem a token IDs, mudar vocabulário ou ordem dos specials invalida pesos aprendidos.

4

Teste seu entendimento

1. Por que os dados do tokenizer devem representar os domínios de uso?
Resposta e explicação

Eficiência de segmentação e cobertura dependem dos padrões observados — Uma amostra incompatível pode fragmentar idiomas e padrões de código importantes em sequências ineficientes.

2. O que deve permanecer estável ao carregar um checkpoint?
Resposta e explicação

Mapeamento token–ID e semântica dos tokens especiais — A linha 42 do embedding só tem sentido sob o mapeamento exato que atribuiu um token ao ID 42.

Conclua o teach-back e acerte o quiz para finalizar a aula.

Fontes

  1. Rico Sennrich, Barry Haddow e Alexandra Birch (2016). Neural Machine Translation of Rare Words with Subword Units.
  2. Taku Kudo e John Richardson (2018). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing.