Monarch v3: Paginação KV Inspirada no NES para Inferência de LLM 78% Mais Rápida

O que o Monarch v3 Faz
O Monarch v3 é uma implementação de código aberto de paginação de memória inspirada no NES para inferência de transformers que aborda o crescimento linear do cache KV com o comprimento da sequência. Em 4K tokens, a maior parte do cache KV fica inutilizada enquanto consome VRAM em precisão total.
Como Funciona
O sistema divide o cache KV em duas regiões:
- Região quente: Tokens recentes mantidos em precisão total
- Região fria: Tokens mais antigos comprimidos para ~20 bytes cada (vs 64-128 bytes quentes)
Quatro componentes trabalham juntos:
- Compressão TurboQuant: Quantiza KV para inteiros de 4 bits com codificação polar e correção residual, alcançando ~97% de redução de tamanho com ~0,3% de perda de perplexidade
- Eliminação por Janela Deslizante: Os N tokens mais recentes permanecem quentes por padrão, tokens antigos são comprimidos para armazenamento frio
- Promoção Ponderada por Atenção: Tokens com alta atenção retornam para a região quente com mecanismo adesivo para evitar trashing
- Trocas de Página: Pequenos lotes de tokens frios são materializados no acesso com loop de decodificação local substituindo matmul em lote
Resultados de Benchmark
Configuração: TinyLlama-1.1B fp16, 50 tokens gerados
- Padrão: 17,01 tok/s, 2112 MB VRAM
- Monarch-v3: 30,42 tok/s, 2131 MB VRAM, 512 tokens quentes, 1024 tokens frios
- Ganho: +78,7% de throughput, +0,9% VRAM
Loop de Decodificação Simplificado
for step in 1..100:
q = project_query(next_token)
# Computar atenção: apenas quente (rápido)
scores_hot = q @ kv_hot.T
# Acessar frio se alta atenção (raro)
if max(scores_hot) < threshold:
kv_cold_promoted = decompress(cold_pages)
scores_cold = q @ kv_cold_promoted.T
# Mover para quente no próximo passo
# Agregar, softmax, aplicar attn ...
# Eliminar tokens antigos de quente → frio
if len(kv_hot) > window_size:
evict_oldest_to_cold()Status Atual
- Implementação: Funcionando no Hugging Face Transformers com backend de cache personalizado
- Licença: Apache 2.0
- Artigo: Especificação técnica completa disponível
- Próximo: Fusão de kernel CUDA para descompressão fria planejada
Como Experimentar
git clone https://github.com/JohannaWeb/Monarch.git
cd Monarch
pip install -r requirements.txt
python train_tinyllama_fp16.py
python src/benchmark_monarch.py \
--model models/tinyllama_fp16 \
--mode both \
--max-new-tokens 100 \
--promotion-threshold 0.15 \
--sticky-threshold 3 \
--jsonLimitações
A abordagem depende da recência (tokens recentes = alta atenção), o que funciona para a maioria das tarefas, mas pode não funcionar para cargas de trabalho intensivas em recuperação. A extração de atenção está disponível em modelos base, mas não em variantes de chat; o fallback usa paginação apenas por janela.
📖 Read the full source: r/LocalLLaMA
👀 See Also

harshal-mcp-proxy Agora no npm: Um Único Daemon Substitui 12 Configurações de Servidor MCP
harshal-mcp-proxy agora está disponível como um pacote npm de 54 kB. Instale globalmente, execute como um daemon e substitua 12 configurações separadas de servidor MCP por 6 ferramentas, economizando aproximadamente 2,7 GB de RAM e ~50 mil tokens por sessão.

OpenSwarm: Orquestrador CLI Multi-Agente Claude para Linear e GitHub
O OpenSwarm orquestra múltiplas instâncias do Claude Code CLI como agentes autônomos que buscam problemas do Linear e executam pipelines de Trabalhador/Revisor/Teste/Documentador. Ele usa LanceDB com embeddings multilingual-e5 para memória e inclui controle por bot do Discord, aprimoramento automático de PRs e um painel web.

Como os assistentes de IA buscam páginas da web: análise de logs do Nginx do ChatGPT, Claude, Gemini e outros
Um desenvolvedor testou cinco assistentes de IA principais, solicitando que acessassem URLs únicas e monitorando os logs do Nginx, revelando padrões de recuperação distintos: ChatGPT, Claude e Perplexity usam agentes de usuário dedicados, enquanto o Gemini respondeu a partir de seu próprio índice sem buscar a página.

Utilizador do Reddit experimenta com agentes de programação que aprendem com falhas para quebrar ciclos de repetição
Um desenvolvedor no r/LocalLLaMA descreve experimentar com agentes de programação que aprendem com falhas armazenando causas raiz simplificadas e correspondendo correções, reduzindo loops de erro repetitivos.