Qwenputer : une CPU RISC-V fonctionnelle embedée dans les poids de Qwen 3.5
Sommaire
En bref
- Un chercheur a compilé une CPU RISC-V complète (RV32IM) directement dans les poids de Qwen 3.5 4B, sans entraînement supplémentaire.
- Le CPU utilise les couches Gated DeltaNet du modèle comme RAM exacte et adressable, en exploitant les matrices d'état de ces couches.
- Quen génère des traces d'exécution en tant que jetons (adresse, valeur, commande), exécutant du code C et MicroPython natifs sans outil externe.
- Le CPU occupe 11 couches sur les 32 du modèle et a exécuté 18 millions d'instructions sans erreur en mode autonome.
Ce que dit la source
L'auteur présente une expérience explorant comment les modèles de langage peuvent intégrer des calculs déterministes et fiables : plutôt que d'invoquer des outils externes, il a compilé directement une architecture CPU dans les poids du modèle. Le problème qu'il résout n'est pas un besoin commercial, mais une question de faisabilité fondamentale : peut-on utiliser les mécanismes internes d'un transformateur (ses couches RNN linéaires) pour simuler de la mémoire adressable et une unité de calcul, sans post-entraînement ?
- Le CPU fonctionne via les couches Gated DeltaNet (3 sur 4 couches d'attention de Qwen 3.5) en configurant la porte à 1,0 et la force d'écriture à 1,0, ce qui les transforme en RAM exacte et adressable remplaçant le coûteux KV-cache de l'attention standard.
- Chaque instruction CPU génère trois jetons : ADDR (ligne mémoire), VAL (valeur), STEP (terminaison), formant une trace d'exécution directement observable dans les tokens générés par Qwen.
- Le CPU implémente le jeu d'instructions RV32IM complet (RISC-V 32-bit) plus l'extension Zba et une unité bignum, occupe 11 couches des 32 disponibles, et passe les tests officiels riscv-tests.
- L'approche ne nécessite aucun post-entraînement : le compilateur écrit directement les poids du CPU dans des dimensions et couches supplémentaires, sans modifier les poids originaux de Qwen.
- Les résultats montrent 18 millions d'instructions exécutées sans erreur en mode autonome (free-running), confirmant la stabilité du mécanisme sur des durées longues.
- L'auteur a aussi implémenté un système de fichiers expérimental en mémoire : Qwen hash le nom de fichier dans 1 024 slots du répertoire stocké en état DeltaNet, avec le contenu chaîné sur plusieurs heads.
Dans les commentaires
Débat partagé entre admiration technique et scepticisme pragmatique. Une partie souligne l'élégance de la construction et pose des questions d'apprentissage ; une autre conteste l'utilité réelle d'émuler un CPU à l'intérieur d'un modèle plutôt que d'utiliser un véritable calcul externe. Quelques commentateurs demandent si cela débouche sur une application concrète au-delà de l'exploit technique.
- Plusieurs commentateurs soulignent le décalage entre l'exploit technique et la pertinence pratique : pourquoi émuler un CPU dans un modèle alors qu'invoquer un calcul externe serait probablement plus efficace ? (andai note que l'on pourrait utiliser un ordinateur sans détour)
- Un commentateur (lumost) remet en question le bénéfice réel de la représentation tensorielle pour le calcul, suggérant que la pipeline accepte simplement une invocation d'outil post-traitée et effectue le calcul en espace tenseur, sans véritable gain d'intégration.
- L'absence de formation spécifique sur les poids du CPU génère aussi des questions : si aucun entraînement n'a eu lieu, comment le modèle apprend-il naturellement à utiliser correctement ce mécanisme compilé ? La réponse partielle fournie (piggybacking sur le format de tool call déjà entraîné) soulève plus de questions qu'elle n'en résout.
- Plusieurs commentateurs notent la résonance avec des travaux antérieurs : Percepta AI avait implémenté WASM dans un transformer, et mkturkcan signale un projet parallèle appelé Loom avec approche similaire, ce qui amortit partiellement la nouveauté.
Notre lecture
Exploit technique brillant, mais expérience plutôt qu'application. L'idée de compiler une CPU directement dans les poids sans post-entraînement est ingénieuse et confirme que les couches RNN linéaires peuvent servir de RAM adressable fiable. Cependant, l'article lui-même reconnaît le caractère expérimental de la démarche : pour le monde réel, inviter un calcul externe reste probablement plus simple, prévisible et efficace que de le faire transiter par un modèle. À surveiller si cette approche débouche sur des cas d'usage où la fusion CPU-modèle offre un avantage réel (inférence embarquée, preuves formelles de traces d'exécution générées par le modèle, ou sécurité du calcul), mais aucune application concrète n'est identifiée à court terme. C'est un bon exemple de recherche exploratoire : rigoureux, bien documenté, mais dont l'impact reste limité à la compréhension fondamentale des capacités des transformateurs.