
MIT Researchers Discover AI Can Rewrite Its Own Weights
Audio Summary
AI Summary
Une avancée majeure dans la recherche en IA pourrait transformer notre compréhension et notre interaction avec les modèles d'intelligence artificielle. Des modèles de pointe, tels qu'Astra, sont désormais capables de comprendre le fonctionnement interne d'autres modèles, jusqu'au niveau de leurs poids (les paramètres numériques qui définissent le comportement d'un modèle). Plus encore, ces modèles "frontière" peuvent modifier chirurgicalement ces poids pour améliorer considérablement les performances d'un modèle cible.
Pour saisir la portée de cette découverte, il est essentiel de comprendre le fonctionnement basique des réseaux neuronaux modernes. Ces modèles sont constitués de millions, voire de milliards de nombres appelés "poids". La manière dont ces nombres interagissent entre eux détermine comment le modèle traite l'information. Lorsqu'on pose une question à un modèle comme ChatGPT, celle-ci est traitée à travers ces milliards de poids pour générer une réponse. L'entraînement de ces modèles, souvent réalisé par "descente de gradient" (une méthode d'essais et d'erreurs pour minimiser les erreurs), ne permet pas une compréhension claire de la relation entre les poids et la sortie finale. Le fonctionnement interne reste une "boîte noire".
Le concept révolutionnaire introduit par ce papier est la "programmation dans l'espace des poids" (weight space programming). Historiquement, l'amélioration des modèles d'IA, notamment les grands modèles de langage (LLM), s'est concentrée sur l'optimisation du texte, du code ou des invites (prompts). On présentait un élément à l'IA et on lui demandait de l'améliorer. Cependant, il n'existait pas de méthode similaire pour interagir directement avec les poids du modèle. La programmation dans l'espace des poids permet à un LLM généraliste, comme ChatGPT ou Claude, de lire et d'écrire directement les poids d'un réseau neuronal, sans passer par un optimiseur ou la descente de gradient.
Cela signifie qu'il devient possible de demander à un LLM de trouver nativement des caractéristiques cachées ou des défaillances dans les poids d'un modèle d'IA, de corriger ces défaillances, voire de créer un nouveau réseau à partir de zéro. Cette capacité de traiter des milliards de paramètres dans une invite de chat peut sembler stupéfiante, mais les chercheurs ont démontré sa faisabilité à travers une série d'expériences remarquables.
La première expérience visait à déterminer si Astra, un modèle d'OpenAI, pouvait identifier le jeu vidéo pour lequel un modèle avait été entraîné, en se basant uniquement sur ses poids. Quatre réseaux neuronaux ont été entraînés pour jouer à Breakout, Pong, Pac-Man et Freeway. Ces modèles apparaissaient identiques de l'extérieur. Astra a reçu les poids bruts de chaque modèle et a été interrogé sur le jeu correspondant. Sans aucune information préalable ni liste d'options, Astra a correctement identifié le jeu pour les quatre réseaux, démontrant ainsi sa capacité à décoder des informations fonctionnelles à partir de la structure des poids. L'analyse des raisonnements d'Astra révèle une compréhension de caractéristiques spécifiques, comme la présence d'une palette se déplaçant horizontalement pour Breakout, ou d'une palette verticale sur le côté gauche pour Pong.
L'expérience suivante a exploré la capacité d'Astra à prédire le type d'image qu'un modèle de diffusion allait générer. Trois modèles ont été entraînés pour produire des cercles, des carrés et des triangles. Astra a pu identifier correctement la forme que chaque modèle était censé générer, en se basant uniquement sur leurs poids. Il est intéressant de noter qu'Astra a identifié la structure externe de la forme (le contour), mais pas forcément le remplissage, suggérant qu'il décode la géométrie intrinsèque des poids plutôt que de simuler un passage avant complet.
Dans une troisième expérience, les chercheurs ont testé la capacité d'Astra à identifier la fonction d'un modèle en examinant uniquement ses couches intermédiaires, excluant ainsi les couches de début et de fin qui fournissent généralement le plus d'indices. Trois modèles, chacun entraîné à prédire le caractère suivant dans des langues différentes (anglais, japonais et Python), ont été analysés. Astra a réussi à identifier la langue de chaque modèle, même sans accès aux couches les plus informatives, démontrant une compréhension des structures sémantiques et syntaxiques encodées dans les poids intermédiaires. Astra a même réussi à identifier des "groupements" de poids correspondant à des composants spécifiques utilisés par le modèle pour comprendre différentes langues.
L'expérience quatre a franchi un cap significatif : Astra a été mis au défi de corriger un modèle défaillant. Un modèle entraîné pour un jeu de simulation physique présentait un défaut où la voiture restait bloquée en haut d'une rampe. Astra a reçu les poids du modèle, une description de la scène et un exemple d'exécution. En une seule tentative, Astra a modifié 3,5% des poids, permettant à la voiture de réussir dans toutes les simulations ultérieures. Ce succès ouvre la voie à l'auto-amélioration des IA, potentiellement en temps réel, en permettant aux modèles de modifier leurs propres poids pour corriger leurs erreurs. Astra a pu identifier que le modèle initial ne prenait pas en compte la nécessité de reculer pour prendre de l'élan, et a ajusté les poids en conséquence.
Puis, la question de la génération de poids à partir de zéro a été posée. Dans cette cinquième expérience, Astra a reçu les règles et le code source de trois jeux (Breakout, Sequest, Asterisk) ainsi que les réseaux correspondants, sans accès aux données ou aux gradients. Astra a généré de nouveaux poids, et les modèles résultants ont surpassé le modèle entraîné traditionnellement sur 100 millions d'étapes dans les trois jeux. Contre un modèle entraîné sur 500 millions d'étapes, les performances étaient également très compétitives.
L'expérience six a abordé la limitation de la taille de la fenêtre contextuelle des LLM. Des poids de modèles trop volumineux pour tenir dans le contexte ont été traités en fournissant à Astra des outils pour explorer et sélectionner les parties pertinentes du code. Avec des outils et un budget de passes avant limités, Astra a démontré sa capacité à créer des réseaux capables de battre des modèles plus petits entraînés traditionnellement sur de vastes ensembles de données.
L'expérience sept a tenté de déterminer si Astra pouvait distinguer deux modèles ayant des comportements différents, spécifiquement la "sycophantie" (une tendance à être trop d'accord avec l'utilisateur, même si la réponse est incorrecte). Astra n'a pas réussi à identifier la sycophantie en analysant uniquement les poids. Cependant, en lui permettant d'examiner les schémas d'attention (quels mots le modèle privilégie lors du traitement), Astra a pu distinguer les modèles sycophantes.
Enfin, l'expérience huit a visé à améliorer les capacités de raisonnement mathématique d'un modèle plus petit (800 millions de paramètres). Astra a identifié et corrigé une défaillance courante de ces petits modèles : la tendance à entrer dans des boucles de répétition. En ajustant une fraction minime des poids, Astra a considérablement amélioré les scores de raisonnement mathématique sans altérer l'intelligence intrinsèque du modèle, mais en lui permettant de mieux exploiter ses connaissances existantes.
Ces expériences ont des implications profondes : elles pourraient redéfinir les méthodes d'entraînement des modèles d'IA, permettre une compréhension exhaustive de leur fonctionnement interne, ouvrir la voie à l'auto-amélioration des IA et, potentiellement, mener à une "amélioration récursive de soi" (recursive self-improvement), où les IA deviennent de plus en plus performantes à une vitesse exponentielle. À terme, cela pourrait même signifier que le logiciel lui-même sera constitué de poids de modèles, capables de s'améliorer continuellement.