stamatios
← Voltar ao feed
Arqueólogo limpa pergaminho antigo ao lado de computador moderno, importância do histórico no codebase
Dev & Engenharia

Entender um codebase exige ler o histórico, não só o código

resumo de ~3 min

A tese de Naomi Saphra

Em entrevista ao Quanta, Naomi Saphra, pesquisadora do Kempner Institute, em Harvard, argumenta que a interpretabilidade de modelos de linguagem não deve se concentrar apenas no modelo treinado final - analisar o resultado e explicar o que se vê lá. Para ela, o objeto de estudo certo é o processo de treinamento. A analogia que usa vem da biologia evolutiva: parafraseando o geneticista Dobzhansky, que disse que nada na biologia faz sentido fora da luz da evolução, ela afirma que nada em IA faz sentido fora da luz do stochastic gradient descent. Se você não entende de onde o modelo veio, não entende por que algo nele funciona.

Convergência com o estudo de repositórios de software

O autor do post observa que essa tese reproduz, a partir de outro campo, o que o software há vinte anos faz: não se entende um codebase só pelo estado atual - é preciso o histórico de commits, quais arquivos mudam juntos, quando o workaround estranho foi adicionado. O git blame existe porque o artefato não se explica sozinho. Saphra chega à mesma posição metodológica aparentemente sem conhecer as ferramentas que um campo vizinho já construiu para isso.

Código vestigial e dívida técnica

O exemplo preferido de Saphra: em classificadores de imagem, há neurônios que disparam só para uma categoria específica, como fotos de gatos, e parecem o mecanismo essencial. Mas quando se interveio no treinamento para impedir que esses neurônios se formassem, o modelo ficou melhor. A estrutura que parecia indispensável era um resquício do treinamento inicial que não cumpria função alguma e atrapalhava - ela o chama de vestigial, termo do biólogo evolutivo. O paralelo em software é o código morto, o bloco que todos evitam porque o autor saiu e os testes passam mesmo assim. A lição: o fato de algo existir e parecer significativo não é evidência de que faz alguma coisa.

Saphra também descreve o efeito de treinar primeiro com texto limpo e estruturado e depois trocar para texto informal: o modelo se agarra à solução fácil, memoriza exceções em vez de aprender a regra geral e não se recupera. Lida por quem vem de software, é uma descrição de dívida técnica - decisões pequenas tomadas no início determinam silenciosamente o que o sistema pode se tornar.

Dois pontos adicionais

Ela critica pesquisas que ignoram a variação aleatória entre execuções de treinamento: o mesmo setup rodado duas vezes produz modelos diferentes. Ela propõe tratar essa aleatoriedade como ferramenta, não como ruído: se uma estrutura e um comportamento aparecem juntos em muitas execuções aleatórias, isso é evidência mais forte de ligação do que examinar um único modelo final.

Ela ainda menciona que empresas raramente dão aos pesquisadores acesso aos checkpoints intermediários do treinamento, deixando-a restrita ao estado final - o que o autor compara a depurar um problema só com o crash, sem logs.

Conclusão

O autor extrai uma constatação incômoda: uma rede neural não tem histórico de commits - ninguém anotou por que ela ficou como ficou, e pesquisadores como Saphra precisam reconstruí-lo dos traços possíveis. Já os desenvolvedores têm o histórico completo, datado e atribuído, e simplesmente não o leem com frequência.