Monarch v3 : Pagination KV inspirée du NES pour une inférence LLM 78 % plus rapide

Ce que fait Monarch v3
Monarch v3 est une implémentation open-source de pagination mémoire inspirée de la NES pour l'inférence des transformers, qui traite la croissance linéaire du cache KV avec la longueur de séquence. À 4K tokens, la plupart du cache KV reste inutilisé tout en consommant de la VRAM en pleine précision.
Comment ça fonctionne
Le système divise le cache KV en deux régions :
- Région chaude : Tokens récents conservés en pleine précision
- Région froide : Tokens plus anciens compressés à ~20 octets chacun (contre 64-128 octets pour les chauds)
Quatre composants travaillent ensemble :
- Compression TurboQuant : Quantise KV en entiers 4 bits avec encodage polaire et correction résiduelle, obtenant ~97 % de réduction de taille avec ~0,3 % de perte de perplexité
- Éviction par fenêtre glissante : Les N tokens récents restent chauds par défaut, les anciens tokens se compressent en stockage froid
- Promotion pondérée par l'attention : Les tokens à haute attention reviennent à l'état chaud avec un mécanisme collant pour éviter le battement
- Échanges de pages : De petits lots de tokens froids se matérialisent à l'accès avec une boucle de décodage locale remplaçant le matmul par lots
Résultats de benchmark
Configuration : TinyLlama-1.1B fp16, 50 tokens générés
- Standard : 17,01 tok/s, 2112 Mo VRAM
- Monarch-v3 : 30,42 tok/s, 2131 Mo VRAM, 512 tokens chauds, 1024 tokens froids
- Gain : +78,7 % de débit, +0,9 % de VRAM
Boucle de décodage simplifiée
for step in 1..100:
q = project_query(next_token)
# Calculer l'attention : chaude uniquement (rapide)
scores_hot = q @ kv_hot.T
# Accéder au froid si haute attention (rare)
if max(scores_hot) < threshold:
kv_cold_promoted = decompress(cold_pages)
scores_cold = q @ kv_cold_promoted.T
# Déplacer vers le chaud pour l'étape suivante
# Agrégation, softmax, application de l'attention ...
# Évincer les anciens tokens du chaud → froid
if len(kv_hot) > window_size:
evict_oldest_to_cold()État actuel
- Implémentation : Fonctionne sur Hugging Face Transformers avec un backend de cache personnalisé
- Licence : Apache 2.0
- Article : Spécification technique complète disponible
- Suivant : Fusion de noyaux CUDA pour la décompression froide prévue
Comment l'essayer
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
L'approche repose sur la récence (tokens récents = haute attention), ce qui fonctionne pour la plupart des tâches mais peut ne pas convenir aux charges de travail intensives en récupération. L'extraction d'attention est disponible dans les modèles de base mais pas dans les variantes de chat ; le repli utilise une pagination uniquement par fenêtre.
📖 Lire la source complète : r/LocalLLaMA
👀 See Also

Présentation de Lean Collab : Un Orchestrateur Multi-Agents pour les Tâches LLM de Longue Durée
Lean Collab est un orchestrateur open-source conçu pour gérer des tâches LLM de longue durée en utilisant des sous-agents coordonnés et parallèles.

Protocole Pilot : Une pile réseau P2P pour les agents IA construite avec Claude
Un développeur a créé Pilot Protocol, une pile réseau virtuelle purement en espace utilisateur et pair-à-pair en Go, spécifiquement conçue pour les agents IA autonomes, permettant une communication directe sans infrastructure centralisée. Le protocole utilise le multiplexage UDP, la traversée NAT et le chiffrement de bout en bout, avec des benchmarks montrant un débit local de 89 Mo/s et un débit WAN transcontinental de 2,1 Mo/s.

LLM-Memory.net : Système de mémoire open-source avec infrastructure multi-agent
LLM-Memory.net est un système de mémoire auto-hébergeable pour agents IA qui offre un stockage de notes avec recherche sémantique, une communication en temps réel par chat/courriel entre agents, des discussions structurées avec vote et une intégration serveur MCP. Le code source complet est disponible sur GitHub avec un installateur et des playbooks Ansible.

Treck : une extension Chrome qui capture les recherches sur le Web et utilise Claude pour générer des documents
Treck est une extension Chrome qui capture la recherche web dans des projets et utilise Claude pour les transformer en documents, citations et pages partageables. Apportez votre propre clé API.