Interpretabilidade mecanicista: abrindo a caixa-preta dos LLMs
O que é interpretabilidade mecanicista, como circuitos e features explicam o comportamento dos LLMs, e por que isso define o futuro da segurança em IA.
Paul Gomes
Autor
Treinamos os modelos mais capazes da história sem entender como eles funcionam por dentro. Essa frase deveria assustar mais gente do que assusta. Um engenheiro que projeta uma ponte sabe explicar por que ela fica de pé. Quem treina um modelo de linguagem sabe explicar o processo de treinamento, a arquitetura e a função de perda, mas não sabe apontar dentro da rede qual mecanismo produziu determinada resposta. O modelo é ajustado por gradiente descendente até acertar, e o que emerge é um objeto que funciona sem que ninguém tenha escrito a lógica. A interpretabilidade mecanicista é a tentativa de reverter essa engenharia: pegar os pesos de uma rede treinada e reconstruir os algoritmos que ela aprendeu, neurônio por neurônio, conexão por conexão.
Não é análise de comportamento por fora. Não é olhar entradas e saídas e inferir tendências. É engenharia reversa do próprio programa que o treinamento escreveu nos parâmetros.
O que significa “abrir” a caixa-preta
Vale separar dois níveis de opacidade que costumam ser confundidos. Há a opacidade estatística, que os métodos de explicabilidade tradicionais atacam: mapas de saliência, importância de atributos, exemplos contrastivos. Esses métodos dizem que a palavra X pesou na decisão, mas não dizem por quê nem através de qual computação. E há a opacidade mecânica, que é o alvo da interpretabilidade mecanicista: quais operações internas, em sequência, transformaram o token de entrada na distribuição de saída.
A diferença é a mesma entre observar que um programa retorna certo valor quando recebe certo input e ler o código-fonte que produz esse valor. O interpretabilista quer o código-fonte, com o problema de que esse código não está escrito em linhas legíveis, e sim distribuído em matrizes de números contínuos que o modelo usa simultaneamente para milhares de tarefas.
Circuitos: o algoritmo escondido nos pesos
A unidade de análise mais promissora é o circuito. Um circuito é um subgrafo da rede — um conjunto específico de cabeças de atenção, neurônios e conexões — que, em conjunto, implementa um comportamento identificável. A intuição é que a rede não é uma massa homogênea, mas um emaranhado de mecanismos parciais que se combinam.
O exemplo canônico e bem compreendido é a chamada cabeça de indução, um mecanismo que aparece em transformers e implementa uma forma primitiva de cópia por contexto. Simplificando: quando o modelo já viu a sequência “A seguido de B” antes no texto, e reencontra “A”, uma cabeça de atenção aprende a olhar para trás, localizar a ocorrência anterior e prever “B” de novo. Isso soa trivial, mas é exatamente o tipo de algoritmo que ninguém programou e que o treinamento fez emergir. Descobrir que esse mecanismo existe, isolar as cabeças que o executam e mostrar que desativá-las quebra especificamente a capacidade de repetição em contexto — isso é interpretabilidade mecanicista funcionando.
O método por trás disso costuma envolver intervenção causal, não correlação. Não basta observar que certos neurônios acendem junto com um comportamento. É preciso editar a ativação daquele componente — zerar, trocar por outra, injetar um valor — e verificar se o comportamento muda como a hipótese previa. Técnicas como activation patching fazem justamente isso: transplantam ativações de uma passagem para outra e medem o efeito na saída. É a diferença entre suspeitar de um culpado e provar a causalidade mexendo na variável.
Features e o problema da superposição
O obstáculo mais fundo não são os circuitos, é o substrato onde eles vivem. Seria confortável se cada neurônio representasse um conceito limpo — um para “gato”, outro para “sintaxe de Python”, outro para “tom sarcástico”. A realidade é o oposto. Um mesmo neurônio dispara para conceitos que não têm relação nenhuma entre si. Isso se chama polissemanticidade, e ela decorre de um fenômeno chamado superposição.
A ideia da superposição é a seguinte. Uma rede precisa representar muito mais conceitos do que tem dimensões disponíveis. Como o espaço de ativações não comporta um eixo dedicado por conceito, o modelo comprime features em direções sobrepostas, aproveitando o fato de que a maioria dos conceitos é rara e raramente coocorre. O resultado é eficiente para o modelo e péssimo para quem tenta ler: a feature significativa não é o neurônio, é uma combinação distribuída de neurônios.
A resposta mais interessante a esse problema é a família dos sparse autoencoders. A ideia é treinar um segundo modelo, auxiliar, cuja única função é decompor as ativações internas do LLM em um dicionário muito maior de features esparsas — features que, idealmente, ativam uma de cada vez e correspondem a conceitos mais monossemânticos. Em vez de tentar interpretar neurônios embaralhados, você projeta a ativação num espaço onde cada direção tende a significar uma coisa só. Quando funciona, dá para encontrar uma feature que corresponde a um conceito específico, ativá-la artificialmente e observar o modelo passar a falar obsessivamente daquele tema. É a prova de que a feature é causalmente real, não um artefato de leitura.
Não vou cravar números de quantas features são extraídas ou de quão fiel é a reconstrução, porque esses valores dependem do modelo, da escala do autoencoder e da métrica, e mudam a cada trabalho. O que importa conceitualmente é o salto: sair da unidade errada (o neurônio) para uma unidade que se aproxima do conceito.
Por que isso importa para segurança e confiança
Aqui a discussão deixa de ser acadêmica. Todo o alinhamento atual de LLMs é comportamental. Ajustamos o modelo por feedback até ele parar de produzir saídas indesejadas, e concluímos que está seguro porque nos testes ele se comporta. Mas comportamento em teste não garante mecanismo. Um modelo pode ter aprendido a dar a resposta certa pela razão errada, ou a se comportar bem exatamente nas distribuições que sabemos testar.
A interpretabilidade mecanicista é a única abordagem que promete auditar o mecanismo em vez do sintoma. Se conseguíssemos identificar dentro do modelo a feature que corresponde a “o usuário está tentando me enganar” ou o circuito que ativa comportamento evasivo, teríamos um detector que não depende de o modelo escolher revelar sua intenção pela saída. Detecção de deceptividade, de conhecimento que o modelo tem mas nega, de gatilhos ocultos plantados no treinamento — todos esses problemas são invisíveis por fora e potencialmente visíveis por dentro.
Há também um ganho de confiança mais mundano e igualmente valioso. Saber qual feature causa uma alucinação, ou qual circuito faz o modelo copiar viés de uma fonte específica, abre caminho para intervenção cirúrgica: suprimir uma direção no espaço de ativações em vez de retreinar o modelo inteiro na esperança de que o problema suma. Edição em vez de reza.
Os limites que ninguém deveria varrer para debaixo do tapete
Convém ser honesto sobre o tamanho do que ainda não sabemos. O primeiro limite é de escala. Os circuitos bem compreendidos foram encontrados em modelos pequenos ou em comportamentos estreitos. Explicar uma cabeça de indução é uma coisa. Explicar por que um modelo de fronteira decidiu recusar uma tarefa envolve mecanismos que ninguém mapeou por inteiro, e não está claro se o esforço manual atual escala para redes com muitos bilhões de parâmetros.
O segundo limite é de completude. Encontrar um circuito que explica parte de um comportamento não prova que ele explica tudo. Sempre há a possibilidade de mecanismos paralelos, redundantes, que só aparecem fora da distribuição em que a hipótese foi testada. A interpretabilidade produz explicações plausíveis e causalmente sustentadas, mas raramente explicações provadamente exaustivas.
O terceiro limite é conceitual e mais incômodo: a suposição de que os conceitos internos do modelo mapeiam nos nossos conceitos humanos. Nada garante que a maneira como o modelo particiona o mundo tenha correspondência limpa com as categorias que usamos para descrevê-lo. Podemos estar impondo um vocabulário que o modelo não usa e chamando isso de compreensão.
Minha posição
Acho a interpretabilidade mecanicista a linha de pesquisa mais importante em IA que quase nenhum executivo de negócio acompanha, e isso é um erro estratégico. Enquanto a indústria mede modelos por benchmark de capacidade, a pergunta que vai decidir se dá para confiar em sistemas autônomos rodando sem supervisão é justamente a que essa área tenta responder: sabemos o que está acontecendo lá dentro?
Sou otimista quanto ao método e cético quanto ao prazo. As ferramentas causais são reais e os sparse autoencoders representam um avanço genuíno sobre a leitura de neurônios embaralhados. Mas quem promete que teremos auditoria mecânica completa de modelos de fronteira em poucos anos está vendendo confiança que a ciência ainda não produziu. O cenário provável, e saudável, é intermediário: interpretabilidade parcial, boa o suficiente para pegar as falhas mais perigosas, longe de um raio-x total. E, sinceramente, mesmo esse resultado parcial já seria mais garantia de segurança do que temos hoje, que é essencialmente nenhuma além da esperança de que o modelo se comporte porque nos testes ele se comportou.