Monarch v3: NES-inspiriertes KV-Paging für 78 % schnellere LLM-Inferenz

Was Monarch v3 leistet
Monarch v3 ist eine Open-Source-Implementierung von NES-inspiriertem Speicher-Paging für Transformer-Inferenz, die das lineare Wachstum des KV-Caches mit der Sequenzlänge adressiert. Bei 4K Tokens liegt der größte Teil des KV-Caches ungenutzt vor, während er VRAM in voller Präzision belegt.
Wie es funktioniert
Das System teilt den KV-Cache in zwei Bereiche:
- Heißer Bereich: Kürzliche Tokens werden in voller Präzision gehalten
- Kalter Bereich: Ältere Tokens werden auf ~20 Bytes pro Token komprimiert (vs. 64-128 Bytes heiß)
Vier Komponenten arbeiten zusammen:
- TurboQuant-Komprimierung: Quantisiert KV auf 4-Bit-Ganzzahlen mit Polar-Codierung und Restkorrektur, erreicht ~97 % Größenreduktion mit ~0,3 % Perplexity-Verlust
- Schiebefenster-Auslagerung: Die letzten N Tokens bleiben standardmäßig heiß, alte Tokens werden in den kalten Speicher komprimiert
- Aufmerksamkeitsgewichtete Beförderung: Tokens mit hoher Aufmerksamkeit werden mit einem Haftmechanismus zurück in den heißen Bereich verschoben, um Thrashing zu verhindern
- Seitenwechsel: Kleine Batches kalter Tokens werden bei Zugriff materialisiert, wobei eine lokale Decode-Schleife den Batch-Matmul ersetzt
Benchmark-Ergebnisse
Setup: TinyLlama-1.1B fp16, 50 generierte Tokens
- Standard: 17,01 Tok/s, 2112 MB VRAM
- Monarch-v3: 30,42 Tok/s, 2131 MB VRAM, 512 heiße Tokens, 1024 kalte Tokens
- Gewinn: +78,7 % Durchsatz, +0,9 % VRAM
Vereinfachte Decode-Schleife
for step in 1..100:
q = project_query(next_token)
# Berechne Aufmerksamkeit: nur heiß (schnell)
scores_hot = q @ kv_hot.T
# Greife auf kalte zu, wenn hohe Aufmerksamkeit (selten)
if max(scores_hot) < threshold:
kv_cold_promoted = decompress(cold_pages)
scores_cold = q @ kv_cold_promoted.T
# Für nächsten Schritt in heißen Bereich verschieben
# Aggregiere, Softmax, wende Aufmerksamkeit an ...
# Verdränge alte Tokens aus heiß → kalt
if len(kv_hot) > window_size:
evict_oldest_to_cold()Aktueller Status
- Implementierung: Funktioniert mit Hugging Face Transformers mit benutzerdefiniertem Cache-Backend
- Lizenz: Apache 2.0
- Paper: Vollständige technische Spezifikation verfügbar
- Nächstes: CUDA-Kernel-Fusion für kalte Dekomprimierung geplant
Wie man es ausprobiert
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 \
--jsonEinschränkungen
Der Ansatz beruht auf Aktualität (aktuelle Tokens = hohe Aufmerksamkeit), was für die meisten Aufgaben funktioniert, aber möglicherweise nicht für abrufintensive Workloads. Die Aufmerksamkeitsextraktion ist in Basismodellen verfügbar, aber nicht in Chat-Varianten; der Fallback verwendet nur Fenster-Paging.
📖 Read the full source: r/LocalLLaMA
👀 Siehe auch

Claude Design Artifacts mit Teenyapp auf Live-Websites bereitstellen
Teenyapp bietet einen Hosting-Dienst, den Claude Design direkt über einen Agent-Token-Link aus dem Chat nutzen kann, was eine autonome Bereitstellung von Artifakten mit Backend-Unterstützung ermöglicht.

ClawBridge – Ihre Home Assistant-Entitäten sicher für OpenClaw freigeben.
ClawBridge bietet eine nahtlose Möglichkeit, Home Assistant-Entitäten für OpenClaw verfügbar zu machen, verbessert die Automatisierung und sorgt für Sicherheit. Entdecken Sie seine Funktionen und Vorteile.

Claude Code-Vorlagen-Repository für Spring Boot-Anwendungen
Ein GitHub-Repository bietet eine Claude Code-Vorlage zum Generieren von Spring Boot-Anwendungen mit Best Practices für Datenbankintegration, Kubernetes-Bereitstellung und Integrationstests mit Testcontainers.

Memento Vault: Lokales Tool für dauerhaften Kontext in Claude-Code-Sitzungen
Memento Vault ist ein Satz von Hooks, die automatisch Sitzungsprotokolle erfassen, bewerten und atomare Notizen in einem lokalen Git-Repo speichern. Es bietet Zero-Cost-Retrieval über BM25 + Vektorsuche mit durchschnittlich 472 ms Latenz und injiziert relevante Kontexte zu Sitzungsbeginn, bei jeder Eingabe und bei Dateizugriffen.