Hipótese A: "ligar a peça certa resgata MASHA" — REJEITADA #15
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
A Hipótese A dizia: MASHA está perdendo do Baseline porque ainda falta ligar o componente C (grammar_bias). Variance study v3 ligou. MASHA perdeu mais ainda (Δμ = -99 PPL, z = -5.47σ). Hipótese A foi formalmente rejeitada, e a investigação migrou para outras explicações.
Background
Quando um experimento dá resultado contraintuitivo, a primeira reação honesta é: "será que falta alguma coisa que eu ainda não fiz?" No caso do MASHA, depois de v2 mostrar que MASHA perdia mesmo com parâmetros igualados, sobrava um suspeito óbvio: o componente C (Grammar-Biased Attention, descrito no doc
02-the-three-components.md) ainda não estava ligado.A intuição era: a atenção enviesada por dependências sintáticas é o sinal mais "estrutural" da stack — a parte que mais "carrega o saber linguístico humano". Sem ela, MASHA está só somando uns embeddings extras (componentes A e B). Talvez seja por isso que perdia.
Formalmente, Hipótese A: se ligarmos o grammar_bias, MASHA passa o Baseline.
O que foi feito
Variance study v3 reproduziu exatamente as condições de v2 (mesmo
root_dim=64, mesmos 3 seeds 41/42/43, mesmos 2000 steps), mas comuse_grammar_bias=Truena config do MASHA. O bias entrava em cada camada de atenção como uma matriz[B, T, T]somada aos scores antes do softmax, calculada a partir das árvores de dependência do Stanza.Tudo o resto manteve-se idêntico: mesmo dataset (Wikipedia PT-BR com BPE 32K), mesmo otimizador (AdamW híbrido com SparseAdam para os 3 embeddings esparsos), mesma GPU (A5000), mesmo seq_len=64 e batch=4.
O que foi encontrado
Resultados de v3, comparados com v2:
Médias:
Lê-se: ligar o grammar_bias piorou ligeiramente o MASHA (μ caiu de 1353 em v2 para 1337 em v3 — bem dentro do ruído entre seeds, não dá pra dizer que ajudou) e o Baseline ficou ainda mais estável (σ caiu de 33 pra 6). Resultado: o gap aumentou.
Por que isso importa
Três coisas mudaram com essa rejeição:
Eliminação de uma hipótese: não dá mais pra falar "se só ligássemos grammar_bias, MASHA renderia". A stack completa foi testada e perdeu.
Sobreviveu a Hipótese B: "MASHA precisa de muito mais dados". É a única viva no quadro. Mas testar Hipótese B custa caro — fala-se em ≥ 2 bilhões de tokens vs os ~512K tokens que cabem em 2K steps × 4 batch × 64 seq_len.
Abriu espaço para uma hipótese alternativa: e se o problema não for nem componente, nem escala, mas algo arquitetural mais fundo? Foi nessa porta que entrou a investigação sobre tokenização BPE (próximos documentos).
Notas técnicas
Vale registrar que o variance study v3 não disse "grammar_bias está quebrado". Disse "ligar grammar_bias com
bias_strengthpadrão, sobre BPE, em 2K steps, não inverte o resultado". As três condições de borda (calibração dobias_strength, tokenização, escala) seguiram em aberto pra investigação futura.Também não disse "MASHA é uma ideia ruim". Disse "MASHA-como-implementado-hoje, em escala Nano, em 2K steps, em BPE, é pior que Baseline" — afirmação muito mais restrita.
Termos usados
02).