Monarch v3: NES-Inspired KV Paging for 78% Faster LLM Inference

What Monarch v3 Does
Monarch v3 is an open-source implementation of NES-inspired memory paging for transformer inference that addresses the linear growth of KV cache with sequence length. By 4K tokens, most KV cache sits unused while consuming VRAM at full precision.
How It Works
The system splits KV cache into two regions:
- Hot region: Recent tokens kept at full precision
- Cold region: Older tokens compressed to ~20 bytes each (vs 64-128 bytes hot)
Four components work together:
- TurboQuant Compression: Quantizes KV to 4-bit integers with polar encoding and residual correction, achieving ~97% size reduction with ~0.3% perplexity loss
- Sliding Window Eviction: Recent N tokens stay hot by default, old tokens compress to cold storage
- Attention-Weighted Promotion: High-attention tokens move back to hot with sticky mechanism to prevent thrashing
- Page Swaps: Small batches of cold tokens materialize on access with local decode loop replacing batch matmul
Benchmark Results
Setup: TinyLlama-1.1B fp16, 50 generated tokens
- Standard: 17.01 tok/s, 2112 MB VRAM
- Monarch-v3: 30.42 tok/s, 2131 MB VRAM, 512 hot tokens, 1024 cold tokens
- Gain: +78.7% throughput, +0.9% VRAM
Simplified Decode Loop
for step in 1..100:
q = project_query(next_token)
# Compute attention: hot only (fast)
scores_hot = q @ kv_hot.T
# Access cold if high attention (rare)
if max(scores_hot) < threshold:
kv_cold_promoted = decompress(cold_pages)
scores_cold = q @ kv_cold_promoted.T
# Move to hot for next step
# Aggregate, softmax, apply attn ...
# Evict old tokens from hot → cold
if len(kv_hot) > window_size:
evict_oldest_to_cold()Current Status
- Implementation: Working on Hugging Face Transformers with custom cache backend
- License: Apache 2.0
- Paper: Full technical spec available
- Next: CUDA kernel fusion for cold decompression planned
How to Try It
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 \
--jsonLimitations
The approach relies on recency (recent tokens = high attention), which works for most tasks but may not for retrieval-heavy workloads. Attention extraction is available in base models but not chat variants; fallback uses window-only paging.
📖 Read the full source: r/LocalLLaMA
👀 See Also

풀러렌: 코딩 에이전트를 위한 오픈소스 지속 메모리 레이어, SWE-벤치에서 토큰 64% 절감
Fullerenes는 Tree-sitter로 구축된 로컬 SQLite 지식 그래프를 사용해 Claude Code와 같은 코딩 에이전트에 영구 메모리를 제공하며, SWE-bench에서 토큰 사용량을 64%, 내부 벤치마크에서 최대 96.6%까지 줄입니다.

ClawBridge – OpenClaw를 통해 홈 어시스턴트 엔티티를 안전하게 공개하세요
ClawBridge는 Home Assistant 엔티티를 OpenClaw에 노출시키는 원활한 방법을 소개하며, 안전성을 보장하면서 자동화를 강화합니다. 그 기능과 이점을 알아보세요.

5090에서 Qwen3.6-27B와 Opencode를 이용한 로컬 AI 개발
한 Reddit 사용자가 클라우드 AI 코딩 도구(Claude Code, Cursor)에서 로컬 설정(Opencode + llama-server + Qwen3.6-27B, 128K 컨텍스트, 단일 RTX 5090)으로 전환한 경험을 공유하며, 사용량 제한과 계정 위험에서 자유로워졌다고 말합니다.

VTCode: AST 수준 청킹으로 컨텍스트를 적극적으로 축소하는 Rust TUI 코딩 에이전트
VTCode는 AST 레벨 청킹을 통해 컨텍스트를 적극적으로 정리하는 오픈소스 Rust TUI 코딩 에이전트입니다. ripgrep과 ast-grep을 사용하며, macOS Seatbelt 및 Linux Landlock 샌드박싱, tree-sitter-bash를 통한 생성 명령어 검증을 지원합니다.