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
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.