A incoerência BPE × morfêmica #17

Open
opened 2026-05-14 02:13:44 -03:00 by navigator · 0 comments
Owner

TL;DR

Insight de Marcos: a tokenização BPE quebra palavras em pedaços arbitrários (amor pode 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):

amor       → ["amor"]            (palavra inteira, frequente)
aviador    → ["avi", "ador"]     (coincidiu com morfemas — sorte)
aviação    → ["av", "iação"]     (cortou no lugar errado)
desaviado  → ["des", "avi", "ado"] (parcialmente certo)

Repare: na 3ª linha, BPE corta aviação em av | iação, separando a raiz AVI no meio. O componente morfêmico do MASHA (que aprende uma raiz canônica AVI = ave) nunca vê AVI como token de entrada — vê só av colado 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:

  1. Token de entrada chega como av (BPE).
  2. MASHA tenta achar o lemma de av no mapeamento. Falha (não é palavra).
  3. Mesmo se achasse, a decomposição morfêmica é definida sobre aviação, não sobre av.
  4. O modelo recebe um embedding morfêmico que é, na prática, ruído condicional.

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:

  • Vocabulário 6× maior → embedding table ocupa mais memória.
  • Palavras raras/novas ficam fora do vocabulário → tratamento como <UNK> ou subword fallback.
  • Sequências em tokens ficam mais curtas (uma palavra = um token, em vez de 2-3 subwords) → mesmo seq_len cobre mais texto.

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

  • Tokenização BPE (Byte-Pair Encoding): divide palavras em pedaços subword aprendidos por estatística de frequência. Padrão da indústria. Exemplo: amor["am", "or"] se essa partição for frequente no corpus.
  • Word-level tokenization: cada palavra é um token. amor = 1 token. Vocabulário gigante; sinal linguístico íntegro.
  • Lemma: forma de dicionário de uma palavra. Lemma de cantando é cantar.
  • Subword fallback: estratégia híbrida — usar palavra inteira quando possível, cair em pedaços para palavras raras.
  • Mismatch arquitetural: quando dois componentes de um sistema fazem premissas conflitantes (aqui: BPE quer pedaços estatísticos; MASHA-morfêmico quer palavras inteiras).
  • <UNK> (unknown token): token reservado pra palavras que não estão no vocabulário.
## TL;DR Insight de Marcos: a tokenização BPE quebra palavras em pedaços arbitrários (`amor` pode 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): ``` amor → ["amor"] (palavra inteira, frequente) aviador → ["avi", "ador"] (coincidiu com morfemas — sorte) aviação → ["av", "iação"] (cortou no lugar errado) desaviado → ["des", "avi", "ado"] (parcialmente certo) ``` Repare: na 3ª linha, BPE corta `aviação` em `av | iação`, separando a raiz `AVI` no meio. O componente morfêmico do MASHA (que aprende uma raiz canônica `AVI = ave`) nunca vê `AVI` como token de entrada — vê só `av` colado 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: 1. Token de entrada chega como `av` (BPE). 2. MASHA tenta achar o lemma de `av` no mapeamento. Falha (não é palavra). 3. Mesmo se achasse, a decomposição morfêmica é definida sobre `aviação`, não sobre `av`. 4. O modelo recebe um embedding morfêmico que é, na prática, ruído condicional. 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: - Vocabulário 6× maior → embedding table ocupa mais memória. - Palavras raras/novas ficam fora do vocabulário → tratamento como `<UNK>` ou subword fallback. - Sequências em tokens ficam mais curtas (uma palavra = um token, em vez de 2-3 subwords) → mesmo seq_len cobre mais texto. ## 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 - **Tokenização BPE (Byte-Pair Encoding)**: divide palavras em pedaços subword aprendidos por estatística de frequência. Padrão da indústria. Exemplo: `amor` → `["am", "or"]` se essa partição for frequente no corpus. - **Word-level tokenization**: cada palavra é um token. `amor` = 1 token. Vocabulário gigante; sinal linguístico íntegro. - **Lemma**: forma de dicionário de uma palavra. Lemma de `cantando` é `cantar`. - **Subword fallback**: estratégia híbrida — usar palavra inteira quando possível, cair em pedaços para palavras raras. - **Mismatch arquitetural**: quando dois componentes de um sistema fazem premissas conflitantes (aqui: BPE quer pedaços estatísticos; MASHA-morfêmico quer palavras inteiras). - **`<UNK>` (unknown token)**: token reservado pra palavras que não estão no vocabulário.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pop/MASHA#17
No description provided.