Corriger un seul axe dans les poids de Qwen, sans entraînement, a fait passer la part des réponses bouclées de 93% à 33%

Sur des problèmes d'olympiade, Qwen3.5-0.8B restait coincée dans 93% des cas dans un « Wait, let me check again… » sans fin et ne donnait aucune réponse. Sans entraînement, le modèle Astra a retourné une seule direction dans deux couches : il ne reste plus que 33,1% de ces réponses. Cette correction supprime un parasite, mais n'ajoute pas de compétence : Gemma se trompe dans les calculs eux-mêmes, et la correction ne l'a pas aidée. Avant d'intervenir, déterminez si le modèle ne sait pas résoudre le problème ou s'il n'arrive pas à s'arrêter.

Traité par IA depuis Habr AI ; édité par Hamidun News
Corriger un seul axe dans les poids de Qwen, sans entraînement, a fait passer la part des réponses bouclées de 93% à 33%
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é #1131 072 poids modifiés dans down_proj des couches 15 et 19
Chiffre clé #2La probabilité de sortir de la boucle à chaque token a été multipliée par environ 15
Chiffre clé #3Sur les 579 problèmes « sauvés », 576 étaient auparavant des interruptions

Imaginez que votre modèle en production se retrouve sans cesse piégé dans un cycle « attends, je revérifie », épuise toute sa limite de tokens et ne fournit jamais de réponse. On soigne généralement cela par un fine-tuning. Mais le MIT CSAIL a montré une autre voie : le modèle GPT-6 Astra a modifié directement les poids d'un réseau de neurones tiers, sans gradients ni entraînement.

Sur le petit Qwen3.5-0.8B, la part des réponses qui partaient en répétition infinie sur des problèmes d'olympiade est passée de 93% à 33,1%.

Pour cela, 131 072 poids ont été modifiés dans deux couches, et la correction se résume au retournement d'une seule direction. Il s'agit de la seconde partie d'une analyse publiée sur Habr : l'auteur y explique pourquoi la boucle se rompt et pourquoi cette méthode ne permet pas d'ajouter une nouvelle compétence au modèle. Pour l'ingénieur, la leçon est pratique : avant de réparer quoi que ce soit, il faut comprendre ce qui manque au modèle.

Pourquoi la boucle se rompt

L'auteur a comparé bit à bit le checkpoint de base et le checkpoint publié. Les matrices down_proj des couches 15 et 19 ont été modifiées, et la correction est de rang 1 : 99,999% de son énergie se concentre dans une seule direction. Cette direction n'a pas été soustraite, mais retournée : la composante le long de cet axe a changé de signe.

Le plus simple pour se représenter le mécanisme est d'y voir un vote. À chaque étape, le modèle décide s'il continue le même passage de texte ou s'il en sort : fermer le bloc de raisonnement, écrire la réponse, changer d'idée. Les couches 15 et 19 glissaient auparavant un vote « continue ». Après la correction, elles votent « sors », et la balance penche plus souvent vers la sortie. L'auteur reconnaît qu'il s'agit d'une hypothèse : les couches suivantes peuvent compenser en partie ce décalage.

Il a testé l'idée sur deux textes : une résolution d'équation ordinaire de 220 tokens et une boucle artificielle « Wait, let me check again… » de 397 tokens. Sur la boucle, les MLP de base écrivaient plus fortement le long de l'axe en question : 1,4 fois plus dans la couche 15 et 1,9 fois plus dans la couche 19. Après la correction, le signe est devenu opposé. Deux textes illustrent le propos sans constituer une statistique, et l'auteur le dit explicitement.

Dans un modèle simple, la chute de 93% à 33,1% correspond à une probabilité de sortie par token multipliée par environ 15. C'est un recalcul à partir des chiffres de l'article, pas une mesure directe. Mais il éclaire l'essentiel : lorsque la sortie de la boucle n'est possible qu'avec une probabilité minuscule à chaque étape, et que les étapes se comptent par dizaines de milliers, la part des réponses bloquées est très sensible à cette probabilité. L'autovérification d'Astra concorde aussi : 576 des 579 problèmes « sauvés » étaient d'anciennes interruptions, et la précision sur les réponses qui allaient déjà au bout n'a pas changé.

Un interrupteur n'enseigne rien

La limite principale : la projection n'ajoute rien. La nouvelle représentation est calculée à partir de l'ancienne, elle ne contient pas plus d'information sur la bonne réponse, et sa dimension n'augmente pas. Il n'y a pas là d'interdiction stricte : la correction par retournement est réversible, et un calcul peut rendre l'information plus accessible. C'est pourquoi l'auteur formule sa conclusion forte au niveau du modèle. Un axe unique avec une seule échelle peut faire basculer le mode « continuer » ou « sortir », mais ne peut pas inscrire un nouvel algorithme, par exemple une arithmétique multichiffre correcte.

Cela concorde avec l'échec sur Gemma. Qwen savait résoudre les problèmes, elle ne parvenait simplement pas à s'arrêter, et la correction a supprimé ce parasite. Chez Gemma, il n'y a presque pas de piège de ce type : les erreurs se répartissent dans les calculs eux-mêmes, et il n'existe pas d'« interrupteur de l'incapacité à calculer ». De plus, dans Gemma 3 270M, les embeddings occupent environ 62,6% des paramètres ; il en reste environ 100 millions pour les 18 couches du transformeur.

Le cas est tout autre dans la tâche jouet avec un réseau de 171 664 poids. Il fallait y ajouter une règle du type « d'abord marche arrière, ensuite accélérateur ». On peut l'inscrire à la main avec une paire « si — alors » sur des unités ReLU, soit environ 5 900 poids, ou à peu près 3,4%. L'auteur confronte son estimation aux 3,5% du billet d'origine : l'ordre de grandeur est le même. On peut écrire à la main ce qui se décrit en peu de mots.

Travaux apparentés et ce qu'il faut retenir en pratique

ROME et MEMIT corrigent eux aussi des matrices MLP, mais ils ajoutent des faits (« La tour Eiffel se trouve à… » avec une nouvelle réponse) au lieu de supprimer un parasite. La méthode de la « direction de refus » d'Arditi et de ses collègues orthogonalise toutes les matrices qui écrivent dans le flux. La correction d'Astra issue de 50 exécutions est plus localisée : 2 matrices et 64 colonnes. Celle issue de 10 exécutions se rapproche d'Arditi : 30 matrices.

Pour la pratique, l'auteur propose le cadre suivant. Si le modèle sait résoudre le problème mais boucle, une correction ciblée des poids peut aider. Si les erreurs viennent des calculs eux-mêmes, elle n'aidera pas. Un risque demeure : une correction touchant moins d'un pour cent des poids change sensiblement le comportement, et un contrôle avec une direction aléatoire de même norme est nécessaire pour distinguer l'effet de perturbations parasites. Une correction de rang 1 se repère facilement dans le diff de deux tenseurs, mais une correction diluée sur de nombreuses directions est difficile à trouver.

Dans la partie de référence, il détaille aussi l'organisation des poids. Dans Llama 3.1 8B, environ 70% des paramètres se trouvent dans les MLP. Dans les modèles MoE comme Mixtral, Qwen3-30B-A3B et DeepSeek-V3, 95–97% des poids se trouvent dans les experts, et la correction devra tenir compte du routeur.

Dossier

Questions clés sur cet article

Pourquoi la boucle se rompt?

L'auteur a comparé bit à bit le checkpoint de base et le checkpoint publié. Les matrices down_proj des couches 15 et 19 ont été modifiées, et la correction est de rang 1 : 99,999% de son énergie se concentre dans une seule direction. Cette direction n'a pas été soustraite, mais retournée : la composante le long de cet axe a changé de signe. Le plus simple pour se représenter le mécanisme est d'y voir un vote.

Que sait-on sur Un interrupteur n'enseigne rien ?

La limite principale : la projection n'ajoute rien. La nouvelle représentation est calculée à partir de l'ancienne, elle ne contient pas plus d'information sur la bonne réponse, et sa dimension n'augmente pas. Il n'y a pas là d'interdiction stricte : la correction par retournement est réversible, et un calcul peut rendre l'information plus accessible. C'est pourquoi l'auteur formule sa conclusion forte au niveau du modèle.

Que sait-on sur Travaux apparentés et ce qu'il faut retenir en pratique ?

ROME et MEMIT corrigent eux aussi des matrices MLP, mais ils ajoutent des faits (« La tour Eiffel se trouve à… » avec une nouvelle réponse) au lieu de supprimer un parasite. La méthode de la « direction de refus » d'Arditi et de ses collègues orthogonalise toutes les matrices qui écrivent dans le flux. La correction d'Astra issue de 50 exécutions est plus localisée : 2 matrices et 64 colonnes. Celle issue de 10 exécutions se rapproche d'Arditi : 30 matrices. Pour la pratique, l'auteur propose le cadre suivant.

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.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
Qu'en pensez-vous ?
Chargement des commentaires…