O projeto de interpretabilidade do Llama 3, utilizando Autoencoders Esparsos (SAEs), visa desmembrar representações superpostas em características mais claras e interpretáveis. A ideia central é que os modelos de linguagem modernos, como os LLMs, sobrepõem múltiplas características em neurônios, ativando significados diversos dependendo do contexto. Essa superposição é uma barreira para entender o comportamento do modelo, mas a implementação de SAEs pode ajudar a untanglar essas representações.
O projeto, que está na versão 0.2, foi concebido em resposta a pesquisas anteriores de instituições como Anthropic, OpenAI e Google DeepMind. Ele fornece uma estrutura completa que inclui a captura de dados de treinamento, treinamento de SAEs, análise de características aprendidas e verificação experimental dos resultados. A implementação foi feita em PyTorch, garantindo eficiência e escalabilidade, mas ainda requer muitos recursos computacionais, o que limita a capacidade de expansão do projeto por ser uma iniciativa sem fins lucrativos.
Os principais recursos incluem a captura de ativações residuais de grandes modelos de linguagem, suporte a treinamento em larga escala com múltiplas GPUs, e análise interpretativa que permite a extração de características semânticas. O projeto também disponibiliza um modelo SAE treinado com 65.536 latentes, que foi validado através de testes de completude de texto e chat.
A coleta de dados foi feita utilizando uma versão personalizada do OpenWebText, resultando em 25 milhões de sentenças. Este conjunto de dados, embora menor que os utilizados por grandes corporações, foi considerado suficiente para o treinamento inicial do SAE. A implementação do SAE seguiu uma arquitetura simples de codificador-decodificador, focando em controle de sparsidade e eficiência.
Os resultados do treinamento mostraram uma convergência estável, com uma perda total normalizada que caiu para cerca de 0.144. A análise de interpretabilidade foi realizada usando o modelo Claude 3.5, permitindo a análise semântica de sentenças que mais ativam cada latente. Esse processo revelou insights sobre os significados comuns associados a diferentes latentes, contribuindo para uma melhor compreensão do modelo.
No entanto, o projeto reconhece a necessidade de melhorias futuras. As principais direções incluem aumentar a dimensão latente, otimizar a mecânica de perda auxiliar, e desenvolver métodos de análise interpretativa mais sofisticados. Além disso, o autor expressa o desejo de adicionar documentação adequada ao código, reconhecendo a importância da clareza para futuras colaborações e pesquisas.
Confira os últimos vídeos publicados no canal