Monarch v3: Paginación KV Inspirada en NES para una Inferencia de LLM 78% Más Rápida

Qué hace Monarch v3
Monarch v3 es una implementación de código abierto de paginación de memoria inspirada en NES para inferencia de transformadores que aborda el crecimiento lineal de la caché KV con la longitud de secuencia. A los 4K tokens, la mayor parte de la caché KV permanece sin usar mientras consume VRAM a máxima precisión.
Cómo funciona
El sistema divide la caché KV en dos regiones:
- Región caliente: Tokens recientes mantenidos a máxima precisión
- Región fría: Tokens antiguos comprimidos a ~20 bytes cada uno (vs 64-128 bytes calientes)
Cuatro componentes trabajan juntos:
- Compresión TurboQuant: Cuantiza KV a enteros de 4 bits con codificación polar y corrección residual, logrando ~97% de reducción de tamaño con ~0.3% de pérdida de perplejidad
- Eliminación por Ventana Deslizante: Los N tokens recientes permanecen calientes por defecto, los tokens antiguos se comprimen a almacenamiento frío
- Promoción Ponderada por Atención: Tokens con alta atención regresan a caliente con mecanismo persistente para evitar trashing
- Intercambio de Páginas: Pequeños lotes de tokens fríos se materializan al acceder con bucle de decodificación local reemplazando multiplicación matricial por lotes
Resultados de Benchmark
Configuración: TinyLlama-1.1B fp16, 50 tokens generados
- Estándar: 17.01 tok/s, 2112 MB VRAM
- Monarch-v3: 30.42 tok/s, 2131 MB VRAM, 512 tokens calientes, 1024 tokens fríos
- Ganancia: +78.7% rendimiento, +0.9% VRAM
Bucle de Decodificación Simplificado
for step in 1..100:
q = project_query(next_token)
# Calcular atención: solo caliente (rápido)
scores_hot = q @ kv_hot.T
# Acceder a frío si alta atención (raro)
if max(scores_hot) < threshold:
kv_cold_promoted = decompress(cold_pages)
scores_cold = q @ kv_cold_promoted.T
# Mover a caliente para siguiente paso
# Agregar, softmax, aplicar atención ...
# Eliminar tokens antiguos de caliente → frío
if len(kv_hot) > window_size:
evict_oldest_to_cold()Estado Actual
- Implementación: Funcionando en Hugging Face Transformers con backend de caché personalizado
- Licencia: Apache 2.0
- Documento: Especificación técnica completa disponible
- Próximo: Fusión de kernel CUDA para descompresión fría planeada
Cómo probarlo
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 \
--jsonLimitaciones
El enfoque se basa en recencia (tokens recientes = alta atención), lo que funciona para la mayoría de tareas pero puede no hacerlo para cargas de trabajo intensivas en recuperación. La extracción de atención está disponible en modelos base pero no en variantes de chat; el respaldo usa paginación solo por ventana.
📖 Leer la fuente completa: r/LocalLLaMA
👀 Ver también

Arranqué la memoria markdown predeterminada de OpenClaw y construí una capa de API con Node.js/Postgres
Un desarrollador desactivó el plugin 'memory-core' de OpenClaw y construyó un backend tipado con Node.js/Express + PostgreSQL. La deriva de contexto se redujo a cero.

ClawControl v1.7.1 soluciona problemas de uso diario en el cliente OpenClaw.
ClawControl v1.7.1 es un cliente de código abierto para OpenClaw disponible en Windows, Mac, Linux, iOS y Android. Esta versión se centra en solucionar los problemas de '¿por qué está haciendo eso?' que se encuentran durante el uso diario de OpenClaw.

Gestión Eficiente de Tokens con Servidores MCP de Código Abierto: Pare
Los servidores MCP de Pare reducen el desperdicio de tokens y aumentan la eficiencia cuando los agentes de codificación AI utilizan herramientas de desarrollador al proporcionar una salida estructurada.

La herramienta de automatización de flujos de trabajo Symphony funciona con Claude Code.
Un desarrollador logró que la especificación Symphony funcionara con Claude Code para automatizar flujos de trabajo de tickets a PR, utilizando inicialmente Node/TypeScript pero señalando que Elixir podría ser mejor. La herramienta requiere configuración separada de claves API y facturación más allá de las suscripciones a Claude.