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

✍️ OpenClawRadar📅 게시일: April 13, 2026🔗 Source
Monarch v3: NES-Inspired KV Paging for 78% Faster LLM Inference
Ad

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
Ad

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 \
    --json

Limitations

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

Ad

👀 See Also

풀러렌: 코딩 에이전트를 위한 오픈소스 지속 메모리 레이어, SWE-벤치에서 토큰 64% 절감
Tools

풀러렌: 코딩 에이전트를 위한 오픈소스 지속 메모리 레이어, SWE-벤치에서 토큰 64% 절감

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

OpenClawRadar
ClawBridge – OpenClaw를 통해 홈 어시스턴트 엔티티를 안전하게 공개하세요
Tools

ClawBridge – OpenClaw를 통해 홈 어시스턴트 엔티티를 안전하게 공개하세요

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

OpenClawRadar
5090에서 Qwen3.6-27B와 Opencode를 이용한 로컬 AI 개발
Tools

5090에서 Qwen3.6-27B와 Opencode를 이용한 로컬 AI 개발

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

OpenClawRadar
VTCode: AST 수준 청킹으로 컨텍스트를 적극적으로 축소하는 Rust TUI 코딩 에이전트
Tools

VTCode: AST 수준 청킹으로 컨텍스트를 적극적으로 축소하는 Rust TUI 코딩 에이전트

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

OpenClawRadar