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

La compétence atoship d'OpenClaw transforme l'assistant IA en gestionnaire d'expédition.
La compétence atoship pour OpenClaw permet aux utilisateurs de décrire leurs besoins d'expédition en anglais simple, puis gère la sélection du transporteur, la comparaison des tarifs, l'achat d'étiquettes et le suivi. Les commandes exemple incluent 'expédier cette boîte de 1 lb à New York, option la moins chère'.

tmux-claude : Surveiller les instances de code Claude à travers les panes Tmux
tmux-claude est un outil qui ajoute une surveillance en direct des instances Claude Code dans les sessions tmux. Il fournit une barre d'état, un tableau de bord interactif, un sélecteur de fenêtres amélioré et des notifications de bureau en lisant les fichiers de session locaux sans appels API.

Modèles.dev : Base de données open source des spécifications, prix et capacités des modèles d'IA
Models.dev est une base de données open-source et communautaire de spécifications, tarifs et capacités de modèles d'IA. Elle propose une API et des définitions basées sur TOML pour les fournisseurs et les modèles.

Claude Code : Comment connecter votre frontend construit par IA à un véritable backend
Claude Code crée des interfaces soignées mais utilise souvent des données en dur. Voici quatre façons de le connecter à de véritables backends : API brutes, SDK, CLI et MCP.