Le produit final de l'expérience 8 réalisée par Rikiya Takehi et ses collègues du MIT CSAIL dans leur article de blogue « Sparks of Weight-Space Programming » publié le 2 11 : faire en sorte qu'un grand modèle de pointe (appelé Astra dans le texte) lise et écrive directement les poids de Qwen3.5-0.8B dans un environnement Python, sans descente de gradient ni entraînement, en utilisant uniquement 50 inférences avant pour examiner les exercices GSM8K / MATH. Ils ont ainsi identifié une direction qui fait tourner le modèle en rond lors de son raisonnement, et l'ont soustraite des 64 colonnes respectives du down_proj des couches MLP 15 et 19, modifiant au total 131,072 poids (soit 0.016%). Ce dépôt contient le modèle ainsi modifié, créé le 2 11, et n'a pas été indexé depuis environ 7 périodes.
Hausse de score 64 · J'aime 64 · Téléchargements 310
Raisons
- Les auteurs affirment que la version originale atteignait presque toujours la limite de tokens pour chaque problème mathématique (93.0% atteint), tandis que la version modifiée réduit ce chiffre à 33.1%. Avec les mêmes paramètres d'échantillonnage, le score MATH-500 est passé de 7.9% à 48.1%, et GSM8K de 13.8% à 67.1%. IFEval, qui n'était pas spécifiquement visé, a également augmenté de 21.0% à 62.3%.
- Vérifiable : les modifications sont publiées sous forme de diff bit à bit sur GitHub (exp8_math dans RikiyaT/lm_understand-logs). Par rapport à l'original, seuls deux tenseurs diffèrent, et la fiche technique répertorie les sha256 des deux versions. akhaliq a utilisé ML Intern sur H200 pour relancer l'ensemble du benchmark MATH-500 (500 problèmes × 4 échantillonnages) selon le protocole original, obtenant 51.0% et 31.6% atteintes. Les résultats par problème sont disponibles dans le répertoire eval/ du dépôt.
- L'intérêt réside dans la méthode : le même article de blogue montre également comment un grand modèle peut déterminer quel jeu a été appris au réseau en regardant uniquement les poids, et écrire à partir de zéro un réseau capable de jouer à des mini-jeux. Ce dépôt est le point de contrôle public des expériences sur les modèles de langage réels mentionnés dans l'article, permettant un téléchargement direct pour comparaison.
Utilisation
- vLLM : LLM(model="RikiyaT/Qwen3.5-0.8B-weight-space-programming", dtype="bfloat16", max_model_len=34816). Lors de l'application du template de chat, définissez enable_thinking=True. Suivez les paramètres d'échantillonnage indiqués dans la fiche technique : temperature 0.6, top_p 0.95, top_k 20, presence_penalty 1.5, max_tokens 32768.
- Pour les problèmes mathématiques, ajoutez après l'énoncé : « Please reason step by step, and put your final answer within \boxed{} », et prenez le dernier \boxed{} comme réponse.
- Si vous ne souhaitez pas déployer le modèle, vous pouvez comparer la version originale et la version modifiée sur les mêmes problèmes dans l'espace ML-Intern-lab/weight-space-programming-demo (akhaliq/weight-space-programming-demo mentionné dans la fiche technique redirige désormais vers celui-ci).
Risques
- Il s'agit d'un petit modèle de 0.8B. Même après correction, le score MATH-500 n'atteint que environ 50 %, et environ un tiers des réponses atteignent encore la limite de longueur. Il ne convient donc pas comme assistant mathématique pratique ; il s'agit principalement d'une démonstration de recherche.
- Les résultats ont été obtenus par les auteurs et akhaliq eux-mêmes, en utilisant un raisonnement long (jusqu'à 32,768 tokens) avec des paramètres d'échantillonnage spécifiques. Le score bas de la version originale est principalement dû aux boucles infinies empêchant de donner une réponse ; changer la limite de longueur ou les paramètres d'échantillonnage modifierait les résultats. Lors de la relance, la version originale n'a fait qu'un test de fumée sur 25 problèmes.
- Le modèle de pointe ayant effectué les modifications n'est pas public. Ce que les autres peuvent reproduire est ce point de contrôle modifié et les évaluations, mais pas le processus lui-même consistant à « faire modifier les poids par un grand modèle ». Le dépôt contient la version multimodale complète, tandis que l'évaluation dans l'article original utilisait une exportation texte pur (les hachages des tenseurs de la partie linguistique sont identiques).