OpenAI lança circuit-sparsity para ligar modelos esparsos a modelos densos
4 meses ago · Updated 4 meses ago

- Ouça este artigo
- OpenAI libera kit "circuit-sparsity" para ligar modelos esparsos e densos
- Principais fatos — o que foi publicado
- O que é um transformador com pesos esparsos
- O conceito de "circuito esparso"
- Como os pesquisadores testaram os modelos
- Exemplos de circuitos identificados
- Pontes entre modelos esparsos e densos
- Detalhes práticos e como usar
- Fatos rápidos
- Conclusão
- Perguntas Frequentes
Ouça este artigo
Você vai conhecer o pacote circuit-sparsity da OpenAI, disponível no Hugging Face e no GitHub, e entender por que ele muda a forma de ver modelos. Modelos com pesos esparsos, treinados de forma específica, geram circuitos simples e interpretáveis — com exemplos práticos como fechar aspas e contar colchetes — e bridges que conectam esses modelos esparsos a modelos densos, facilitando controle e interpretação.
- OpenAI lançou um kit aberto para criar e estudar modelos esparsos.
- Modelos são transformadores decoder treinados em código que tornam pesos e ativações esparsos durante o treino (veja a discussão sobre a diferença entre transformers e MoE para contexto sobre variantes arquiteturais).
- A esparsidade mantém apenas os pesos de maior magnitude e impõe também esparsidade de ativação leve.
- Circuitos mostram neurônios e conexões que executam tarefas simples (fechar aspas, contar colchetes).
- Bridges mapeiam ativações entre espaços esparso e denso para transferir e testar comportamentos.
OpenAI libera kit "circuit-sparsity" para ligar modelos esparsos e densos
A OpenAI lançou um pacote de ferramentas que permite explorar e conectar modelos com pesos esparsos a bases densas. O modelo e o código acompanham o estudo sobre transformadores com peso esparso: o repositório está no Hugging Face e o toolkit no GitHub, ambos públicos — um movimento que segue a tendência de tornar modelos menores e executáveis localmente, como em projetos que apresentam modelos que rodam no seu computador ou celular.
Principais fatos — o que foi publicado
- Repositório Hugging Face: openai/circuit-sparsity.
- Código e ferramentas no GitHub: openai/circuit_sparsity.
- Modelo público: 0.4B parâmetros (experimento csp_yolo2), licença Apache 2.0.
- Ferramentas implementam métodos do artigo sobre weight-sparse transformers.
O que é um transformador com pesos esparsos
- Durante o treino, após cada passo do otimizador, são mantidos apenas os pesos de maior magnitude.
- A esparsidade é imposta durante o treinamento (não apenas após), com fração fixa de não nulos por matriz.
- Em modelos muito esparsos há cerca de 1 em 1000 pesos não nulos.
- Há também esparsidade de ativação: ~1 em 4 ativações por nó são não nulas.
- A esparsidade é annealada: os modelos começam densos e a cota de não nulos diminui ao longo do treino — técnica que se beneficia de infraestruturas e extensões para treinos longos e eficientes, como DeepSpeed para escalar transformers e a extensão Zenflow, que reduz paradas durante o treino.
O conceito de "circuito esparso"
- Nó: um neurônio, canal de atenção ou canal residual.
- Aresta: um parâmetro não nulo que conecta dois nós.
- O tamanho do circuito é medido pela média geométrica do número de arestas necessárias para resolver uma tarefa.
- Para um mesmo nível de perda pré-treinamento, circuitos em modelos esparsos são reportados como ≈16× menores que em modelos densos.
Como os pesquisadores testaram os modelos
- Criaram 20 tarefas simples de predição do próximo token em Python, cada uma com duas alternativas.
- Para cada tarefa, o modelo é podado até o menor circuito que ainda atinge uma perda alvo.
- A poda é ao nível de nós: nós removidos têm ativação fixada na média do pré-treinamento.
- A seleção de nós usa uma máscara binária aprendida que equilibra perda e tamanho do circuito.
Exemplos de circuitos identificados
- singledoublequote (fechamento de aspas): circuito compacto com 12 nós e 9 arestas.
- Dois neurônios detectam presença e tipo de aspa.
- Uma cabeça de atenção usa esse detector como chave e copia o tipo correto para fechar a string.
- bracket_counting (contagem de colchetes): circuito maior com algoritmo claro.
- O embedding de "[" escreve em canais residuais que detectam colchetes.
- Uma atenção calcula a média dessas ativações para estimar profundidade de aninhamento; um limiar ativa o fechamento "]]" quando necessário.
- setorstring_fixedvarname (tipo de variável): rastreamento de tipo por nome.
- Uma cabeça copia o embedding da variável atual; outra usa isso para escolher entre métodos como .add ou =.
Para workloads que dependem de acesso rápido a estados e atenção eficiente, técnicas de cache e compartilhamento de estado como KVCache para compartilhar GPUs e acelerar a primeira resposta podem ser complementares a abordagens esparsas.
Pontes entre modelos esparsos e densos
- As bridges são pares encoder–decoder que mapeiam ativações densas para o espaço esparso e de volta, por subcamada.
- O encoder é uma camada linear seguida de uma função estilo AbsTopK; o decoder é linear.
- Durante o treino, perdas adicionais garantem que passagens híbridas (densa→esparsa→densa) reproduzam a saída do modelo denso.
- Isso permite modificar canais interpretáveis no modelo esparso e transferir esses efeitos ao modelo denso — um fluxo de trabalho que pode conversar com técnicas de inferência e execução distribuída, como soluções para rodar modelos muito grandes em cluster (TransferEngine e PPLX Garden).
Detalhes práticos e como usar
- Identificação do modelo: openai/circuit-sparsity no Hugging Face (experimento csp_yolo2).
- O projeto inclui ferramentas para: podas por nó; extração e visualização de circuitos; e treino de bridges para mapeamento entre ativação densa e esparsa.
- Código e documentação no repositório GitHub openai/circuit_sparsity.
- Para deploy e otimização pós-treino, estratégias como quantização e runtime eficiente com ferramentas da Hugging Face são relevantes — veja o guia sobre otimização ponta a ponta com Hugging Face Optimum e quantização.
Fatos rápidos
| Item | Valor |
|---|---|
| Modelo | openai/circuit-sparsity |
| Parâmetros | 0.4B |
| Esparsidade de peso | ~1 em 1000 não nulos |
| Esparsidade de ativação | ~1 em 4 ativações não nulas |
| Menor circuito reportado | 12 nós, 9 arestas |
| Redução típica vs denso | ≈16× menor |
| Licença | Apache 2.0 |
Conclusão
O pacote circuit-sparsity coloca um holofote sobre modelos esparsos, tornando mecanismos internos muito mais pequenos e interpretáveis — como se você lesse um mapa em vez de abrir uma caixa-preta. Exemplos práticos (fechar aspas com 12 nós/9 arestas; contar colchetes com algoritmo reconhecível) mostram que isso vai além da teoria: é uma ferramenta para entender e manipular comportamentos internos com precisão.
As bridges conectam mundos esparso e denso, permitindo que modificações interpretáveis no esparso sejam testadas e aplicadas em modelos densos, ampliando controle e experimentação. O modelo e o código estão disponíveis no Hugging Face e no GitHub (repositório openai/circuit-sparsity / openai/circuit_sparsity). Ferramentas na mão, laboratório pronto.
Para mais leituras e artigos, visite https://blog.aidirectory.com.br.
Perguntas Frequentes
- O que é um weight-sparse transformer?
É um transformer treinado com muitos pesos zerados durante o treino: após cada passo do otimizador ficam apenas os maiores valores em cada matriz. Modelos muito esparsos têm ~1 em 1000 pesos não nulos; a ativação pode ser ~1 em 4 nós.
- O que é um circuito esparso?
Um subgrafo mínimo que resolve uma tarefa: nós (neurônios, canais de atenção/residual) e arestas (entradas não nulas em matrizes de peso). O tamanho do circuito é a média geométrica das arestas necessárias.
- Quais exemplos de circuitos foram encontrados?
Fechar aspas: circuito com 12 nós e 9 arestas; detectar tipo de aspa e copiar via atenção.
Contar colchetes: detectores residuais contam profundidade; atenção média estima aninhamento e aciona fechamento.
Tipo por variável: cópia de embedding e uso como chave/consulta para escolher operações.
- O que são bridges e para que servem?
Pairs encoder–decoder que ligam ativação densa ao espaço esparso e de volta (encoder linear AbsTopK; decoder linear). Permitem transferir e testar perturbações interpretáveis do esparso no denso.
- O que exatamente a OpenAI lançou?
Lançou openai/circuit-sparsity no Hugging Face e o toolkit openai/circuitsparsity no GitHub. Modelo de 0.4B (cspyolo2), licença Apache 2.0, com ferramentas para impor esparsidade, extrair circuitos e treinar bridges. Resultado-chave: circuitos esparsos são muito menores e mais interpretáveis (≈16× menores).
Se você quiser conhecer outros artigos semelhantes a OpenAI lança circuit-sparsity para ligar modelos esparsos a modelos densos, você pode visitar a categoria Notícias e Tendências.
