Un modèle qui se souvient de deux manières
Sovra vNext est une architecture de modèle de langage hybride : un grand mélange d’experts (MoE) combiné à deux types de couches.
- Des couches d’attention globale (GQA). Elles gardent la trace de chaque mot passé, dans un cache. C’est la mémoire de référence : exacte, mais qui grossit avec le contexte. À 131 000 mots, ce cache atteint environ 8 Gio pour les seules couches d’attention du modèle.
- Des couches récurrentes (famille Gated DeltaNet), qui forment la majorité de la profondeur. Chacune garde le passé dans une petite matrice de taille fixe, 128 × 128 nombres par « banque », mise à jour à chaque mot. C’est économique, mais comme un tableau blanc que l’on réécrit sans cesse : plus un souvenir est ancien, plus il s’efface.
Les couches récurrentes font gagner énormément en vitesse et en mémoire. Leur point faible est que rien ne garantit qu’un souvenir précis survive aux écritures suivantes. Et il existe un lien naturel qui n’était pas exploité : à chaque instant, l’attention « sait » quels mots passés comptent le plus. Pourquoi ne pas le dire à la mémoire récurrente ?
C’est le problème que NC01 pose avec rigueur.
Ce que fait NC01
NC01 est un contrat mathématique entre une couche d’attention et la couche récurrente qui la suit. Il fixe trois choses.
Une règle d’offre. Tous les 64 mots, chaque tête propose le souvenir passé que l’attention a le plus consulté, au moins 64 mots plus tôt. Cette proposition est reconstruite à partir des clés et des valeurs que l’attention a déjà stockées : aucune archive cachée n’est ajoutée.
Une promesse de conservation. Chaque banque peut verrouiller jusqu’à 8 souvenirs à la fois, pendant 512 mots, avec une erreur de lecture bornée. À l’échelle du modèle, jusqu’à 4 800 enregistrements précis sont protégés simultanément.
Ces chiffres sont exploratoires8 souvenirs, 512 mots, une offre tous les 64 mots : ce sont des valeurs de départ, choisies pour tester et développer la solution mathématique dans un cadre petit, précis et vérifiable. Elles ne sont pas le but. Ce que nous cherchons à établir, c’est la méthode ; une fois qu’elle est démontrée, nous voulons l’appliquer à une mémoire bien plus grande, celle qui aura un véritable intérêt dans les modèles de langage (voir les perspectives, section 7).
Une promesse de souplesse. La mémoire continue d’apprendre : l’immense majorité de la matrice (120 directions sur 128 avec 8 souvenirs verrouillés) reste libre de recevoir les écritures normales.
Autrement dit, la mémoire récurrente garde ce qu’elle a toujours eu, sa légèreté, et gagne des « casiers » à verrou pour les souvenirs choisis par l’attention.
Une imageLa banque est un tableau blanc que le modèle réécrit à chaque mot. NC01 installe 8 cadres sous verre sur ce tableau. Ce que l’on écrit autour passe à côté : les cadres ne bougent pas. Toutes les 64 unités, l’attention choisit le souvenir à glisser sous un cadre libre. Au bout de 512 mots, le cadre s’ouvre, et le souvenir retourne au tableau, où il pourra s’effacer.
La solution mathématique, sans jargon
Le défi n’était pas d’avoir cette idée, mais de trouver comment la réaliser sans que ça coûte une fortune.
La première voie : exacte, mais trop lente
Notre première formulation était la plus exigeante : à chaque mot, trouver la mémoire la plus proche de celle que le modèle aurait produite naturellement, qui respecte tous les souvenirs verrouillés et qui reste bornée. C’est un problème d’optimisation sous contraintes, à résoudre pour chaque banque et à chaque mot.
Nous avons construit un solveur capable de le faire avec des garanties de certification, et nous l’avons testé sur GPU. Verdict : il est correct, mais trop lent pour le déploiement. Un seul appel prend entre une demi-milliseconde et plusieurs millisecondes sur notre carte de test, alors que le modèle a des centaines de banques à traiter pour chaque mot. Surtout, un calcul qui dépend du résultat précédent oblige à traiter les longs prompts mot après mot, au lieu de les traiter en parallèle comme les couches récurrentes classiques le permettent.
Le changement de point de vue
Le contrat prévoit déjà que les souvenirs verrouillés ne changent qu’aux frontières de 64 mots. Entre deux frontières, la liste est fixe. Cela change tout : on peut ranger la mémoire en deux parties.
- Une partie épinglée, qui contient, pour chaque souvenir verrouillé, ce que la mémoire répond quand on l’interroge. Elle est fixée à l’admission et ne bouge plus.
- Une partie libre, le reste de la matrice, qui reçoit les écritures normales.
À chaque mot, on écrit uniquement dans la partie libre, en projetant l’écriture hors des directions protégées. La lecture d’un souvenir verrouillé n’est alors pas touchée par construction : elle ne dépend d’aucune hypothèse sur ce que le modèle écrit ensuite.
Le calcul de cette écriture projetée a une forme fermée : quelques produits de matrices et de vecteurs, sans itération. Elle est aussi affine dans l’état de la mémoire, c’est-à-dire de la même famille que la récurrence ordinaire. Résultat : le calcul par blocs de 64 mots, qui rend les couches récurrentes rapides à l’entraînement et à la lecture du prompt, reste possible.
Une garde pour rester dans les clous
Un dernier élément protège la norme de la matrice, qui doit rester bornée pour que le modèle reste stable. Une petite « garde », calculée uniquement à partir des entrées, assure que cette limite n’est jamais dépassée, même dans le pire cas.
Le prix à payer, nous l’assumons : si le modèle essaie d’écrire une valeur contradictoire avec un souvenir verrouillé, à la même adresse, le souvenir l’emporte jusqu’à son expiration. C’est le comportement voulu pour une mémoire qui doit rester fiable, mais c’est un choix de conception, pas un détail.
Ce que cela permet
Sur le papier, NC01 offre à une architecture hybride quatre propriétés que l’on ne trouve pas réunies ailleurs.
- Des souvenirs précis, protégés pendant une durée définie. Dans nos simulations, l’erreur de lecture d’un souvenir verrouillé reste constante, autour de 1/64, du début à la fin de ses 512 mots. Une mémoire récurrente ordinaire, dans les mêmes simulations, dépasse sa tolérance dans 100 % des contrôles.
- Un coût borné et prévisible. Pas d’itérations, donc pas de cas rares qui coûtent dix fois plus. Chaque mot coûte le même nombre d’opérations, à nombre de souvenirs donné.
- La compatibilité avec le calcul parallèle. Le prompt peut être lu par blocs, comme avec une couche récurrente ordinaire.
- Une mémoire qui reste économique. Le surcoût mesuré sur la partie récurrente va de quelques pourcents à une vingtaine de pourcents selon le mode, sur un petit GPU de test. Ce chiffre ne concerne pas le modèle complet.
Où nous en sommes, honnêtement
Cette partie compte autant que les précédentes. Une innovation est crédible quand on dit clairement ce qui est démontré et ce qui ne l’est pas.
Ce qui est établi
- Le contrat mathématique est fixé : formes, horizons, tolérances, calendrier (document NC01).
- La construction décrite plus haut est prouvée en arithmétique exacte pour ses propriétés principales : conservation des souvenirs, borne de norme, comportement identique à la mémoire ordinaire quand aucun souvenir n’est verrouillé, équivalence entre calcul mot à mot et calcul par blocs.
- Elle a été testée sur plus de 170 000 transitions simulées sur des données réservées, en double et en simple précision, sans violation des critères, ainsi que sur une comparaison entre processeur et carte graphique sans décision divergente.
- Deux revues indépendantes ont confirmé que le principe est solide. La seconde a relevé cinq points de mise en œuvre à corriger, dont une imprécision numérique faible à l’admission en simple précision. Nous les traitons dans une version suivante.
Ce qui n’est pas démontré
- Aucun modèle n’a été entraîné avec NC01. Les tests portent sur des banques isolées et des flux synthétiques, pas sur du langage réel.
- L’utilité n’est pas mesurée. Nous ne savons pas encore si ces 4 800 souvenirs protégés améliorent réellement le rappel d’informations précises, ni à quelle fréquence les conflits d’adresse surviennent dans un vrai modèle. C’est aussi pour cela que les tailles actuelles (8 souvenirs, 512 mots) sont volontairement modestes : elles servent à valider le mécanisme, pas à démontrer le gain final.
- L’intégration avec la vraie attention n’est pas exécutée : nous avons raccordé un codec réduit, mais pas les couches d’attention d’un modèle entraîné.
- Le coût dans le modèle complet est inconnu. Les mesures de vitesse viennent d’un petit GPU grand public, avec des programmes de référence non optimisés.
- Une borne générale d’erreur en simple précision reste à établir.
NC01 s’inscrit d’ailleurs dans une démarche de recherche : le contrat lui-même précise que sa pertinence devra être réévaluée si les modèles entraînés n’exploitent jamais les situations qu’il vise.
L’innovation, et ce que nous ne revendiquons pas
Nous ne prétendons pas avoir inventé la mémoire récurrente (la famille Gated DeltaNet est publiée), ni l’idée de protéger des directions d’une matrice. Ce que nous apportons est une combinaison précise, avec des garanties.
- relier l’attention à une mémoire récurrente par des enregistrements reconstruits à partir de ce que l’attention stocke déjà ;
- une règle de protection en forme fermée, avec bornes explicites ;
- le tout compatible avec le calcul parallèle par blocs et avec un budget de calcul borné.
Cette précision est volontaire : nous préférons une revendication modeste et vérifiable à une promesse que personne ne pourrait contrôler.
Perspectives
À court terme, la prochaine étape est de consolider l’implémentation : corriger les points relevés, fixer la configuration numérique, puis soumettre la version gelée à une nouvelle vérification indépendante.
À moyen terme, il faudra confronter NC01 à de vrais modèles : d’abord un prototype de petite taille, pour mesurer si les souvenirs protégés améliorent le rappel d’informations, puis à plus grande échelle.
À plus long terme, l’enjeu est de passer du cadre d’étude à une mémoire d’une tout autre ampleur. Les chiffres actuels (8 souvenirs par banque, 512 mots de durée, une offre tous les 64 mots) servent de banc d’essai. La structure de la méthode, une partie épinglée et une partie libre, une écriture projetée en forme fermée, ne dépend pas de ces valeurs précises. L’objectif est donc de l’appliquer à beaucoup plus de souvenirs, sur des horizons beaucoup plus longs, jusqu’à une mémoire qui apporte un vrai bénéfice aux modèles de langage : rappel fiable sur de très longs documents, dossiers de code, conversations suivies sur de longues durées.
Nous le disons avec prudence : changer ces dimensions modifie les garanties et les coûts (davantage de souvenirs verrouillés réduisent la place restante pour l’apprentissage ordinaire et alourdissent les calculs de protection). Chaque extension demandera ses propres démonstrations et ses propres vérifications, comme pour la version actuelle. La méthode est faite pour être étendue ; l’extension reste à prouver.
Si cette mémoire de précision tient ses promesses, elle ouvre plusieurs pistes :
- moins dépendre du cache d’attention, qui représente l’essentiel du coût mémoire en long contexte. NC01 ne le supprime pas aujourd’hui, mais fournit une brique pour l’alléger un jour ;
- de plus longs horizons et bien plus de souvenirs par banque, avec une cadence adaptée ;
- une meilleure synergie avec le reste de Sovra : Latcher, qui apporte le contexte singulier et la mémoire persistante, et Formic, qui exécute et fait coopérer des agents, pourraient s’appuyer sur un cœur dont la mémoire de travail est plus fiable.
Un modèle qui sait garder ce qui compte
Sovra vise un modèle qui ne se contente pas d’être grand, mais qui sait garder ce qui compte. NC01 est une première pierre mathématique de cette ambition : donner à des couches légères le moyen de retenir précisément ce que l’attention leur désigne, sans en payer le prix en lenteur.
La construction est solide sur le papier et dans nos simulations. Le chemin qui reste est celui de toute vraie recherche : l’entraîner, la mesurer, la contredire si nécessaire. Nous le parcourrons en publiant ce que nous trouvons, y compris ce qui ne marche pas.
Sources et références
Les travaux publiés sur lesquels s’appuie cet article.
- Gated Delta Networks: Improving Mamba2 with Delta Rule (Yang, Kautz, Hatamizadeh, ICLR 2025) — la famille de couches récurrentes sur laquelle s’appuie NC01.
- GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints (Ainslie et al., 2023) — l’attention par groupes de requêtes des couches d’attention globale.
- Efficient Memory Management for Large Language Model Serving with PagedAttention (Kwon et al., SOSP 2023) — pourquoi le cache KV domine le coût mémoire en long contexte.
- Mamba: Linear-Time Sequence Modeling with Selective State Spaces (Gu et Dao, 2023) — les modèles à espace d’états, ancêtres des couches récurrentes modernes.
- Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer (Shazeer et al., 2017) — le principe du mélange d’experts (MoE).
- Alibaba’s new model uses hybrid attention layers and a sparse MoE architecture (DeepLearning.AI) — un exemple d’architecture hybride attention et couches récurrentes déjà déployée.
