Fundamentos

Tokenização II: BPE, passo a passo

Byte-pair encoding combina repetidamente unidades adjacentes frequentes e constrói um vocabulário de peças reutilizáveis.

Atualizada em

1

Conceito

Byte-pair encoding nasceu como ideia de compressão e virou uma família de procedimentos para tokenizers de subwords. Seu movimento central é simples: encontrar um par adjacente frequente entre as unidades atuais, substituí-lo por uma unidade combinada e repetir. O vocabulário final preserva peças pequenas de fallback e entrega tokens inteiros a strings frequentes o bastante para justificar sua presença.

Considere um corpus minúsculo com baixo, baixar e baixista. Comece com caracteres e um marcador de fim: b a i x o </w>, b a i x a r </w> e b a i x i s t a </w>. Conte pares adjacentes considerando a frequência das palavras. Se (b,a) vencer, crie ba e substitua as ocorrências elegíveis. Depois, recalcule: vizinhos antigos sumiram e pares novos como (ba,i) apareceram.

Se (ba,i) vencer em seguida, o vocabulário ganha bai. Um merge posterior pode formar baix. Cada decisão é gulosa: seleciona o melhor par sob a segmentação atual, não o vocabulário final globalmente ótimo. Desempate, marcadores de fronteira, normalização e unidades iniciais são escolhas de implementação. Dois sistemas chamados “BPE” não precisam produzir tokenizers idênticos.

Treinar e usar o tokenizer são etapas distintas. O treinamento aprende vocabulário e regras ordenadas a partir do corpus. A codificação de um prompt aplica essas regras fixas. Uma implementação começa pelas unidades-base e executa o merge disponível de maior prioridade. Ela não recalcula frequências usando o prompt da pessoa. Se a tokenização mudasse online, o mesmo ID deixaria de corresponder à linha de embedding aprendida no treinamento do modelo.

Frequência gera eficiência e viés. Palavras ou fragmentos comuns viram tokens únicos e consomem menos posições. Nomes raros, termos especializados ou strings de idiomas sub-representados podem permanecer longas cadeias. Maiúsculas, espaços e normalização mudam os pares disponíveis. O algoritmo não conhece morfemas: às vezes encontra peças linguisticamente significativas porque elas são reutilizáveis, não porque compreende a língua.

BPE evita um problema rígido de palavra desconhecida quando o alfabeto-base cobre a entrada. Variantes por caracteres precisam tratar símbolos inéditos. Variantes byte-level começam por bytes e representam qualquer entrada codificada, ao custo de peças estranhas e sequências possivelmente maiores. Tokens especiais de controle, padding ou fronteira precisam ser protegidos para que merges comuns não fabriquem acidentalmente sua semântica.

O tamanho do vocabulário cria compromisso. Mais merges encurtam sequências comuns, mas aumentam as matrizes de embedding e saída. Menos merges economizam parâmetros de vocabulário, porém alongam sequências e elevam o trabalho de attention e decoding. A escolha depende de idiomas, domínios, escala e do custo relativo entre parâmetros e posições. Não existe taxa universal de tokens por palavra.

Para depurar BPE, preserve política do corpus, normalização, alfabeto-base, lista de merges, tokens especiais e implementação exata. Inspecione segmentações reais em vez de confiar no nome do algoritmo. O modelo mental durável é uma escada de chunks: comece por unidades que escrevem tudo e promova combinações adjacentes frequentes, um degrau por vez. A escada comprime padrões de superfície; o modelo neural ainda precisa aprender como as peças se comportam no contexto.

2

Como explicar para uma criança de cinco anos

Uma gráfica começa com um carimbo por letra. As pessoas notam que colocam `q` ao lado de `u` o tempo todo, então fabricam um carimbo `qu`. Depois, outra combinação frequente ganha seu próprio carimbo. Cada peça nova encurta trabalhos comuns, enquanto as letras originais continuam disponíveis para palavras raras. O treino de BPE é a pessoa do estoque decidindo qual par adjacente merece o próximo carimbo combinado.

3

Ensine de volta

Percorra um merge de BPE e explique a diferença entre treinar o tokenizer e codificar um texto novo.

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

Salvo somente neste dispositivo.

Ver uma resposta-modelo

O treino começa com unidades-base, conta pares adjacentes no corpus, combina o par selecionado e repete até atingir o orçamento de vocabulário. Se `b a i x o` é frequente e `b a` vence, ocorrências viram `ba i x o`, alterando as próximas contagens. Codificar texto novo não reaprende frequências; aplica de forma determinística os merges e ranks fixos, mantendo peças menores quando nenhum merge serve.

4

Teste seu entendimento

1. O que muda após um merge de BPE no treinamento?
Resposta e explicação

O par escolhido vira uma unidade e as contagens de pares mudam — O merge muda os vizinhos, portanto as frequências seguintes dependem das decisões anteriores.

2. A tokenização comum de um prompt aprende merges novos?
Resposta e explicação

Não, ela aplica vocabulário e ordem de merges fixos — Mudar os merges na inferência quebraria o contrato entre IDs e linhas de embedding.

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.