o problema
Um neurônio de transformer não corresponde a um conceito. Ele dispara em contextos sem relação entre si, e isso não é ruído de treino: é a saída racional quando o modelo precisa representar mais conceitos do que tem dimensões. A hipótese da superposição diz que a rede aproveita a quantidade de direções quase-ortogonais de um espaço de alta dimensão para empacotar muito mais features do que dimensões. O preço é que a base natural — os neurônios — deixa de ser legível. Quem quer auditar o modelo não tem onde olhar.
Oito meses antes deste paper, o mesmo time mostrou que dava para desfazer essa superposição num transformer de uma camada. Ficou a pergunta que interessa: isso escala? Podia ser só limitação de engenharia, ou podia ser que modelos grandes operem de um jeito que o método não alcança. Aqui eles aplicam o método ao Claude 3 Sonnet, o modelo de produção da Anthropic, na versão finetunada que estava em serviço.
a ideia
Dictionary learning: assumir que cada ativação densa é a soma esparsa de poucos vetores tirados de um dicionário muito maior que a dimensão da ativação. Um sparse autoencoder aprende esse dicionário — uma camada oculta larguíssima com penalidade de esparsidade, onde cada unidade vira uma “feature”, e o decoder devolve a direção correspondente no espaço original.
O movimento novo é tratar isso como problema de machine learning comum, e não como arte. Se a loss de treino serve como proxy da qualidade do dicionário, então dá para levantar scaling laws e decidir, dado um orçamento de compute, quantas features aprender e por quantos passos treinar. E, mais importante, testar cada feature nos dois sentidos: ela dispara quando o conceito está presente, e forçá-la muda o que o modelo faz.
como funciona
O SAE é treinado sobre o residual stream na camada do meio do modelo — menor que a MLP, mais barato, e como o residual stream é a soma das saídas anteriores, ele absorve parte da superposição espalhada entre camadas. Encoder: ReLU sobre uma transformação linear das ativações normalizadas. Decoder: combinação linear das colunas aprendidas. A loss é erro quadrático de reconstrução mais uma penalidade L1 sobre as ativações, cada termo multiplicado pela norma da coluna correspondente do decoder — detalhe que impede o SAE de burlar o L1 encolhendo a ativação e inflando o vetor.
Foram três dicionários: 1.048.576, 4.194.304 e 33.554.432 features. Nos três, menos de 300 features ficam ativas num token típico, e a reconstrução explica ao menos 65% da variância das ativações. A loss compute-ótima cai como lei de potência, e a alocação ótima de FLOPs entre número de features e número de passos também — com o número de features crescendo mais rápido.
A verificação tem duas pernas. Specificity: o Claude 3 Opus pontua cerca de mil ativações de cada feature numa rubrica de 0 a 3, e as ativações fortes são consistentemente julgadas como o conceito proposto. Influência: clampar a feature da Golden Gate Bridge em 10× o máximo observado faz o modelo se identificar como a ponte. Uma feature de erro em código dispara em bugs de Python, C e Scheme mas não em typos de prosa em inglês; clampada em valor negativo, faz o modelo prever a saída que o código teria sem o bug e, com o prompt certo, reescrever o código corrigido. Uma feature de adição dispara no nome de qualquer função que some, inclusive quando a soma vem por composição de outra função.
o que isso custou
O dicionário de 34M terminou com 65% de features mortas — cerca de 12 milhões vivas. Não existe objetivo verdadeiro: a loss otimizada é proxy da interpretabilidade, e ninguém sabe o câmbio certo entre erro de reconstrução e esparsidade. O L1 causa shrinkage, subestimando sistematicamente as ativações não nulas. A superposição entre camadas continua sem solução, e features implementadas parcialmente em camadas posteriores seguem ilegíveis.
A cobertura é incompleta e os autores sabem: o modelo lista todos os bairros de Londres, o dicionário tem feature para uns 60% deles. Pela conta deles, extrair todas as features de todas as camadas custaria mais compute do que treinar o modelo — o que torna o método, nessa forma, inviável como auditoria completa. O steering só produz efeito interessante fora da faixa de ativação observada, e em valores extremos o modelo degenera em repetição. O SAE foi treinado sem nenhum dado no formato Human/Assistant, justamente o formato em que o Claude opera. E sensitivity — se a feature dispara sempre que o conceito aparece — eles admitem não ter conseguido medir.
Sobre segurança, o texto é explícito: o trabalho não mostra que alguma feature seja útil para segurança, apenas que existem muitas que parecem plausivelmente úteis.
onde isso aparece hoje
A demonstração pública do Golden Gate Claude, com a feature da ponte clampada, saiu logo depois deste paper e foi o que levou a ideia de feature steering ao público geral. A linha de pesquisa continuou em On the Biology of a Large Language Model, que troca features isoladas por circuitos entre features. E o próprio paper aponta como pergunta seguinte quais features acendem num modelo treinado para ser um sleeper agent — o ponto em que interpretabilidade deixaria de ser descrição e viraria teste.