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
Conclua o teach-back e acerte o quiz para finalizar a aula.
Fontes
- Rico Sennrich, Barry Haddow e Alexandra Birch (2016). Neural Machine Translation of Rare Words with Subword Units.
- Taku Kudo e John Richardson (2018). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing.