Sobre o projeto

## Visão Geral do Projeto Este repositório é a implementação oficial do artigo "Conditional Memory via Scalable Lookup: A New Axis of Sparsity for Large Language Models", publicado pela DeepSeek. Ele investiga a "memória condicional" (conditional memory), uma dimensão de esparsidade complementar ao Mixture of Experts (MoE), e a instancia como módulos Engram — uma modernização dos embeddings N-gram clássicos com busca em O(1). ## Conteúdo Principal - **Alocação de Esparsidade**: O artigo formaliza o trade-off entre computação neural (MoE) e memória estática (Engram), propondo uma lei de escala em formato de U para orientar a alocação de capacidade. - **Validação Empírica**: Sob restrições de parâmetros e FLOPs equivalentes, o modelo Engram-27B demonstra melhorias consistentes em relação à linha de base MoE nos domínios de conhecimento, raciocínio, código e matemática. - **Análise Mecanística**: A análise sugere que o Engram alivia a carga das camadas iniciais na reconstrução de padrões estáticos, potencialmente preservando profundidade efetiva para raciocínio complexo. - **Eficiência do Sistema**: O módulo usa endereçamento determinístico, permitindo descarregar tabelas de embeddings massivas para a memória do host com sobrecarga mínima de inferência. ## Arquitetura e Avaliação O módulo Engram aprimora a rede principal recuperando memórias N-gram estáticas e fundindo-as com estados ocultos dinâmicos. O repositório fornece diagramas de arquitetura e arquivos-fonte drawio. A seção de avaliação inclui gráficos sobre leis de escala, pré-treinamento em larga escala, treinamento de contexto longo e estudos de caso. ## Início Rápido Recomenda-se Python 3.8+ e PyTorch. Após instalar as dependências, execute o script de demonstração para visualizar a lógica central do módulo Engram. Observe que este código é uma versão de demonstração, simulando componentes padrão como Attention/MoE/mHC, com foco em exibir o fluxo de dados do módulo Engram. ## Licença e Contato O uso do modelo está sujeito à licença contida no repositório. Dúvidas podem ser enviadas via issues ou e-mail.