3 min de lecture

Programmation des poids : modifier un modèle sans entraînement

программирование весовлатентное пространстворедактирование моделей

La programmation de l’espace des poids modifie directement les paramètres d’un réseau neuronal, tandis que la programmation latente agit sur ses représentations internes pendant l’inférence. Des modifications permanentes du checkpoint peuvent corriger un comportement précis sans réentraînement, mais elles risquent aussi d’altérer des capacités non ciblées.

Ce qui est réellement programmé dans un réseau neuronal

Ce qui m’intéresse ici est le changement de niveau d’abstraction : au lieu d’utiliser des prompts ou un entraînement classique, il s’agit de lire et modifier directement les paramètres du modèle. Dans l’article technique Weight-Space Programming du blog Rikiyat, cette approche est décrite à travers quatre catégories de tâches : lire, réparer, écrire et améliorer des réseaux neuronaux sans entraînement traditionnel par gradient.

L’opération de base paraît simple : W' = W + ΔW. On peut modifier un neurone individuel, une ligne de matrice, une attention head, un tenseur sélectionné ou ajouter une delta structurée de paramètres. Écrire dans un checkpoint est trivial ; la difficulté consiste à trouver la zone du réseau qui contrôle réellement le comportement recherché.

La programmation latente fonctionne autrement. Elle modifie une représentation cachée pendant l’inférence, par exemple selon h' = h + αv, où v définit une direction comportementale et α règle la force de l’intervention. Cette modification est généralement réversible et peut être activée de façon conditionnelle, alors qu’un changement de poids persiste dans un nouveau checkpoint.

La frontière avec le fine-tuning reste floue. LoRA peut être considérée comme une forme contrainte de programmation des poids : le modèle reçoit une mise à jour de faible rang, W' = W + AB, mais celle-ci est obtenue par optimisation sur des données. L’édition directe cherche à spécifier ou découvrir ΔW sans cycle complet d’entraînement.

En novembre 2026, je considérerais encore cela comme une piste de recherche, et non comme un remplacement prêt pour la production du fine-tuning. Les documents mentionnent WSPBench, qui distingue le travail sans outils, l’analyse des poids et les conditions instrumentées, mais les résultats doivent être compris comme des démonstrations plutôt que comme une pratique industrielle établie.

Où l’approche est utile et où elle échoue

Sa valeur principale est réelle : l’intervention latente permet de tester rapidement une hypothèse, puis l’édition des poids rend le comportement découvert permanent. Cela est particulièrement intéressant pour réparer localement une erreur, transférer un task vector, fusionner des adaptateurs et travailler sur un circuit interne connu du modèle.

Mais une modification localisée en apparence ne garantit pas un effet local. Un neurone ou un vecteur peut participer à plusieurs fonctions, la normalisation peut atténuer l’intervention, et une petite delta peut produire un autre résultat après quantification ou changement de précision. Plus problématique encore, l’interférence cachée : le test cible s’améliore alors que des capacités sans rapport se dégradent.

Je commencerais par vérifier la direction avec un activation steering réversible, puis je mesurerais la généralisation, la robustesse aux reformulations et la préservation de capacités externes à la tâche. Ce n’est qu’ensuite qu’il devient pertinent de transférer l’intervention vers une ΔW creuse ou structurée. La partie la plus difficile n’est pas encore d’écrire de nouveaux nombres, mais de prouver qu’ils modifient exactement ce qui était prévu.

Nous avons précédemment expliqué comment la conception d’une carte de code améliore l’injection de contexte et la navigation dans le développement assisté par IA. Cette attention portée au contexte de travail du modèle rejoint naturellement la programmation de l’espace des poids, autre moyen de personnaliser le comportement d’un réseau neuronal.