Qwen 3.5 4B embarque un processeur RISC-V dans ses poids, avec DeltaNet comme mémoire

Le chercheur Divyansh Agrawal a intégré dans les poids de Qwen 3.5 4B un processeur RISC-V 32 bits fonctionnel (RV32IM). Le compilateur a posé l'intégralité du code directement, sans aucun entraînement. Les poids d'origine de Qwen ne sont pas modifiés. Le processeur exécute de l'arithmétique, du C et du MicroPython directement dans les passes avant, sans bac à sable ni appel à des outils externes. Les couches Gated DeltaNet font office de mémoire vive. Avec une porte (gate) à 1, un beta à 1 et des clés one-hot, chaque écriture écrase exactement une ligne de l'état, et la taille de l'état ne croît pas avec la longueur de la conversation. Sur l'arithmétique longue du benchmark NUPA, la précision passe de 48,6% à 100%, soit le score de Qwen avec l'outil Python. • 11 couches supplémentaires placées devant les 32 couches de Qwen, 18 millions d'instructions sans erreur • Système de fichiers : jusqu'à 512 fichiers, environ 53 000 tokens • Checkpoint de 18,8 Go, environ 3200 tokens processeur par seconde sur un L4

Traité par IA depuis Habr AI ; édité par Hamidun News
Qwen 3.5 4B embarque un processeur RISC-V dans ses poids, avec DeltaNet comme mémoire
Source : Habr AI. Collage: Hamidun News.
Écouter l'article
Fiche synthèse et chiffres clés
ParamètreDonnées
Source primaireHabr AI ↗
Rédacteur en chef
Chiffre clé #111 couches supplémentaires placées devant les 32 couches de Qwen, 18 millions d'instructions sans erreur
Système de fichiersjusqu'à 512 fichiers, environ 53 000 tokens
Chiffre clé #3Checkpoint de 18,8 Go, environ 3200 tokens processeur par seconde sur un L4

Divyansh Agrawal a publié Qwenputer : une Qwen 3.5 4B standard, dans les poids de laquelle un processeur RISC-V 32 bits fonctionnel a été compilé. Sa mémoire repose sur les propres couches Gated DeltaNet du modèle. Sur l'arithmétique des grands entiers du jeu NUPA, le modèle passe de 48,6% à 100%, exactement comme la même Qwen avec l'outil externe Python. Le dispositif n'inclut ni environnement d'exécution externe, ni bac à sable, ni appel d'outils : tout se calcule dans les passes avant. Le code est disponible sur GitHub, le modèle sur Hugging Face et ModelScope.

Les couches DeltaNet en guise de RAM adressable

Dans Qwen3-Next et Qwen 3.5, trois couches d'attention sur quatre reposent sur Gated DeltaNet, un RNN linéaire. Chaque tête stocke une matrice d'état, que la règle delta met à jour. Agrawal a fait une observation : si l'on fixe la porte (gate) à 1 (rien n'est oublié), la force d'écriture beta à 1 (l'ancienne valeur est remplacée en entier) et que l'on encode les clés en one-hot, l'écriture écrase exactement une ligne, et une requête renvoie son contenu exact. On obtient une véritable mémoire adressable.

C'est un détail important pour le coût d'inférence. L'état d'une tête GDN ne croît pas, quelle que soit la durée de la conversation, alors que le KV-cache de l'attention classique croît linéairement avec la longueur du contexte. Le lien entre la règle delta et les « fast weights » est connu depuis les travaux de Schlag, Irie et Schmidhuber de 2021. La nouveauté tient à ce que la mémoire devient exacte et fonctionne à l'intérieur d'un modèle en service, avec une fiabilité suffisante pour qu'un processeur entier s'appuie dessus.

Un compilateur plutôt qu'un entraînement

Il n'y a aucun fine-tuning. Le processeur est décrit comme un circuit de petites étapes, du type « lire un registre », « additionner », « sauter si zéro », et le compilateur transforme chaque étape en un morceau de couche de transformeur. Les têtes d'attention recherchent, les blocs feed-forward calculent, les têtes DeltaNet stockent les registres, la mémoire et le compteur ordinal. Chaque instruction génère plusieurs tokens : ADDR désigne la ligne à écrire, VAL porte la valeur, STEP clôt l'instruction. Ces tokens constituent la trace d'exécution.

Le cœur implémente RV32IM avec l'extension Zba et un petit bloc dédié à l'arithmétique des grands nombres. Il occupe 11 couches placées devant les 32 couches de Qwen elle-même, et les poids d'origine restent inchangés : l'ordinateur est ajouté dans des dimensions et des couches supplémentaires. Pour un usage fiable, Agrawal s'est branché sur le format d'appel d'outils que le modèle connaît déjà. Qwen envoie les instructions, le processeur fait tourner ses propres couches et écrit lui-même la réponse. Un petit pilote, RvChat, charge le firmware dans l'état GDN et empêche les tokens de trace d'entrer dans les couches de Qwen.

Les chiffres clés du projet :

  • les riscv-tests officiels sont passés, les résultats des programmes coïncident avec qemu ;
  • 18 millions d'instructions en mode libre sans une seule erreur ;
  • environ 230 000 positions de sortie vérifiées face à une machine de référence, sans aucun écart ;
  • DeepMind div_big : 97,5% pour Qwenputer, 95% pour Qwen avec Python, 72,5% pour Qwen de base ;
  • DeepMind mul_big : 97,5% contre 100% avec Python et 55% pour le modèle de base ;
  • DeepMind mul_div_multiple_longer : 100% contre 97,5% avec Python et 90% pour le modèle de base ;
  • DeepMind add_or_sub_big : 97,5%, autant qu'avec Python, et 87,5% pour le modèle de base ;
  • NUPA, grands entiers : de 48,6% à 100% ;
  • texte ordinaire dans la marge de bruit : KL de 6e-4 pour un niveau de bruit de 5e-4.

Un système de fichiers de 512 fichiers et le prix de l'expérience

Par-dessus la mémoire, l'auteur a ajouté un stockage expérimental doté des opérations put, append, get, list et delete. Le nom de fichier est haché vers l'un des 1024 emplacements du répertoire, dans l'état DeltaNet, tandis que le texte est stocké dans d'autres têtes, en chaînes de huit tokens par ligne. En cas de collision, l'emplacement suivant est testé, si bien qu'une recherche prend deux à trois étapes.

Le système accepte jusqu'à 512 fichiers, soit environ 53 000 tokens. L'état peut être sauvegardé à la fin d'une conversation et chargé dans la suivante. Sur des questions portant sur des faits modifiés entre deux conversations, Qwen répond correctement dans 90% des cas, contre 30% quand on insère simplement les anciennes conversations dans le contexte, et dans 83,3% des cas contre 78,9% pour les outils de mémoire en Python.

Le code de cette partie se trouve dans la branche rv-store.

Cela se paie en ressources. Le checkpoint pèse 18,8 Go, soit environ le double de Qwen de base, même si l'essentiel du volume est du remplissage par des zéros. Un simple generate() ne suffit pas à lancer le modèle : RvChat est indispensable. Chaque instruction coûte plusieurs tokens décodés, et l'exécuteur par lots produit environ 3200 tokens processeur par seconde sur un L4. Un calcul qui ne prendrait que quelques millisecondes sur un CPU ordinaire demande ici des secondes.

À quoi cela peut servir en pratique

Aujourd'hui, Qwenputer ne remplace pas un bac à sable Python en matière de vitesse. En revanche, il supprime toute une couche d'infrastructure : plus besoin de serveur d'outils, d'isolation ni d'allers-retours réseau, une seule carte graphique de 24 Go suffit. Pour les systèmes agentiques, c'est une piste intéressante vers un calcul déterministe sans sortir du modèle.

L'auteur prévoit d'exécuter Python via MicroPython dans les poids grâce à l'outil python(), et d'accélérer le processeur lui-même. Un second axe de travail concerne la sécurité : il a écrit deux suites, l'une sur la façon dont les modèles hybrides peuvent dissimuler leur raisonnement dans l'état du RNN et contourner la surveillance de la chaîne de raisonnement, l'autre sur les poids compilés utilisés comme moniteurs intégrés que le modèle ne peut pas désactiver.

Pour lancer le projet : cloner le dépôt qwenputer, exécuter uv sync --extra hf, télécharger divagr1925/Qwen3.5-4B-Qwenputer via la CLI Hugging Face, puis lancer chipformer.rv.chat avec le firmware calc-bridge.elf.

Dossier

Questions clés sur cet article

Que sait-on sur Les couches DeltaNet en guise de RAM adressable ?

Dans Qwen3-Next et Qwen 3.5, trois couches d'attention sur quatre reposent sur Gated DeltaNet, un RNN linéaire. Chaque tête stocke une matrice d'état, que la règle delta met à jour. Agrawal a fait une observation : si l'on fixe la porte (gate) à 1 (rien n'est oublié), la force d'écriture beta à 1 (l'ancienne valeur est remplacée en entier) et que l'on encode les clés en one-hot, l'écriture écrase exactement une ligne, et une requête renvoie son contenu exact. On obtient une véritable mémoire adressable. C'est un détail important pour le coût d'inférence. L'état d'une tête G

Que sait-on sur Un compilateur plutôt qu'un entraînement ?

Il n'y a aucun fine-tuning. Le processeur est décrit comme un circuit de petites étapes, du type « lire un registre », « additionner », « sauter si zéro », et le compilateur transforme chaque étape en un morceau de couche de transformeur. Les têtes d'attention recherchent, les blocs feed-forward calculent, les têtes DeltaNet stockent les registres, la mémoire et le compteur ordinal. Chaque instruction génère plusieurs tokens : ADDR désigne la ligne à écrire, VAL porte la valeur, STEP clôt l'instruction. Ces tokens constituent la trace d'exécution. Le cœur implémente RV32IM

Que sait-on sur Un système de fichiers de 512 fichiers et le prix de l'expérience ?

Par-dessus la mémoire, l'auteur a ajouté un stockage expérimental doté des opérations put, append, get, list et delete. Le nom de fichier est haché vers l'un des 1024 emplacements du répertoire, dans l'état DeltaNet, tandis que le texte est stocké dans d'autres têtes, en chaînes de huit tokens par ligne. En cas de collision, l'emplacement suivant est testé, si bien qu'une recherche prend deux à trois étapes. Le système accepte jusqu'à 512 fichiers, soit environ 53 000 tokens. L'état peut être sauvegardé à la fin d'une conversation et chargé dans la suivante. Sur des questio

ZK
Zhemal Khamidun — CPO d'Alpina Digital, product manager d'AlpinaGPT. Conçoit des produits IA depuis 2019. Hamidun News est un projet personnel devenu un agrégateur en production avec plus de 6 000 lecteurs.
✦ Hands-On AI Engineering · Hamidun Academy

Build & Ship Production AI Agents Without Boilerplate Code

Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.

Start 72h Free Trial →Vibe-Coding Intensive
Qu'en pensez-vous ?
Chargement des commentaires…