A incoerência BPE × morfêmica #17
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
TL;DR
Insight de Marcos: a tokenização BPE quebra palavras em pedaços arbitrários (
amorpode virar["am", "or"]), enquanto o componente morfêmico do MASHA é desenhado para operar sobre palavras inteiras com raízes etimológicas reais. As duas abordagens estão em conflito fundamental: o modelo recebe metade do mundo como subwords estatísticas (BPE) e metade como morfemas linguísticos (MASHA), e os dois sistemas não casam.Background
BPE (Byte-Pair Encoding) é um algoritmo de tokenização que aprende, a partir de corpus, quais sequências de caracteres aparecem mais juntas, e usa essas sequências como tokens. É a tokenização padrão de GPT-2, GPT-3, Llama e companhia. A grande vantagem: vocabulário enxuto (16K-50K tokens) cobrindo qualquer palavra do idioma, com bom equilíbrio entre eficiência computacional e expressividade.
A propriedade chave do BPE: ele não respeita morfologia. Os pedaços que ele aprende são puramente estatísticos. Exemplos reais (depende do tokenizador):
Repare: na 3ª linha, BPE corta
aviaçãoemav | iação, separando a raizAVIno meio. O componente morfêmico do MASHA (que aprende uma raiz canônicaAVI = ave) nunca vêAVIcomo token de entrada — vê sóavcolado em outras coisas.A incoerência
Marcos identificou o conflito assim: o componente morfêmico só faz sentido se o token de entrada for uma palavra inteira reconhecível. Quando BPE fragmenta, o pipeline fica meio capenga:
av(BPE).avno mapeamento. Falha (não é palavra).aviação, não sobreav.E pior: BPE tem fronteiras imprevisíveis entre artigos diferentes do mesmo corpus. Não dá pra alinhar consistentemente "este token BPE = este morfema". O sinal morfêmico vira ruído estruturado.
O que isso muda no plano
Originalmente, o plano de tokenização do MASHA foi escolhido pela inércia: "todo mundo usa BPE, é o que dá certo, fica BPE". A análise acima mudou a leitura: BPE pode ser uma mismatch arquitetural com a tese de injetar priors morfológicos.
A alternativa óbvia: tokenização word-level — cada palavra é um token, sem fragmentação. Vocabulário fica enorme (200K+ no caso do português Wikipedia) mas o sinal morfêmico fica perfeitamente alinhado. Cada token entra como uma palavra; MASHA decompõe; o prior linguístico chega íntegro ao modelo.
Trade-offs do word-level:
<UNK>ou subword fallback.Por que isso importa
Essa hipótese explica por que ablation BPE viu A+B (morfêmico + classe gramatical) piorar o modelo. O sinal estruturado que A+B injetam é incoerente com o input BPE, então funciona como ruído. O Baseline ignora esse sinal; MASHA não pode ignorar.
Se a hipótese estiver certa, trocar BPE por word-level deveria inverter a direção do efeito: A+B deveriam ajudar quando o input for palavra inteira. Foi exatamente isso que o ablation word-level testou (doc
07).Termos usados
amor→["am", "or"]se essa partição for frequente no corpus.amor= 1 token. Vocabulário gigante; sinal linguístico íntegro.cantandoécantar.<UNK>(unknown token): token reservado pra palavras que não estão no vocabulário.