Synthèse de programmes : la piste de Ndea vers l'AGI

La synthèse de programmes consiste à découvrir automatiquement un programme qui satisfait une demande exprimée par des contraintes, des exemples ou une spécification. Ndea veut associer cette recherche de programmes à l’apprentissage profond pour construire des systèmes capables de s’adapter à des problèmes nouveaux : une piste vers l’AGI, présentée comme une hypothèse de recherche.
Trouver une règle exécutable à partir d’un résultat attendu
En programmation habituelle, vous écrivez les opérations que la machine doit exécuter. En synthèse de programmes, vous décrivez le comportement attendu, puis un système cherche les opérations correspondantes. La demande peut prendre la forme de couples entrée-sortie, d’une démonstration ou de propriétés logiques.
La présentation du domaine par Microsoft Research retient cette définition large : découvrir du code exécutable à partir de l’intention de l’utilisateur, exprimée sous différentes formes. La synthèse ne se limite donc ni à la génération de code depuis une phrase ni à la recherche sur l’intelligence générale.
Imaginez une transformation de noms de fichiers. Vous fournissez des exemples où un nom et un prénom deviennent des initiales suivies du nom. Le système doit identifier les fragments à conserver, les séparateurs à retirer et l’ordre de recomposition. Le résultat recherché est une procédure applicable au fichier suivant.
Cette procédure représente une hypothèse sur votre intention. Si les exemples ne contiennent aucun nom composé, plusieurs règles peuvent convenir et produire ensuite des résultats différents. Trouver un programme compatible avec les exemples ne suffit pas à établir qu’il correspond au besoin.
C’est cette capacité à appliquer une règle au-delà des observations qui relie le sujet à la généralisation. Notre page de référence sur la synthèse de programmes développe les méthodes et leur histoire ; l’enjeu ici est de comprendre leur rôle dans la piste de Ndea.
Comment fonctionne une recherche de programmes
Pour rendre le problème traitable, il faut définir un espace de recherche. Dans notre exemple de fichiers, les opérations disponibles pourraient être découper une chaîne, sélectionner un fragment, prendre une initiale et assembler les résultats. Le système explore des combinaisons de ces briques.
Une boucle pédagogique permet de comprendre le mécanisme :
- Décrire les entrées et les sorties attendues.
- Définir les opérations autorisées et leurs règles de combinaison.
- Proposer un programme candidat.
- L’exécuter sur les exemples disponibles.
- Écarter les candidats incompatibles et départager les autres.
Supposons que la transformation attendue conserve le nom entier. Une règle qui ne prend que le dernier fragment peut fonctionner sur les premiers exemples, puis échouer sur un nom composé. Un contre-exemple permet alors d’éliminer cette règle ou de préciser la demande.
Le choix du langage compte autant que la recherche. Un vocabulaire très limité facilite l’exploration, mais peut empêcher d’exprimer la solution. Un langage plus riche autorise davantage de comportements et multiplie les chemins possibles. Le système doit également gérer les programmes qui échouent, bouclent ou consomment trop de ressources.
On peut favoriser les solutions courtes ou celles qui réutilisent des opérations connues. Cela constitue une préférence de recherche, pas une garantie de justesse : la règle la plus courte peut ignorer une exception essentielle. Pour un usage réel, la qualité de la spécification et les tests sur des cas nouveaux restent déterminants.
Pourquoi Ndea veut guider cette recherche par apprentissage
Le problème pratique apparaît vite : en assemblant des opérations, le nombre de programmes possibles augmente avec la profondeur des combinaisons. Chercher sans orientation peut consacrer beaucoup de calcul à des pistes sans rapport avec la tâche.
Dans sa présentation officielle, consultée en octobre 2026, Ndea défend une synthèse de programmes guidée par l’apprentissage profond. Selon le laboratoire, un réseau peut orienter l’exploration vers des programmes prometteurs, tandis que leur exécution permet de confronter les hypothèses aux observations. Ndea présente cette association comme le cœur de sa démarche vers l’intelligence générale.
Pour comprendre le partage des rôles, imaginez un problème de grille colorée. Un système de reconnaissance suggère que la transformation concerne une symétrie. La recherche examine alors en priorité des opérations de réflexion et leurs compositions, plutôt que toutes les transformations imaginables. Les programmes proposés doivent encore reproduire les exemples.
L’ambition de Ndea est de réunir reconnaissance de motifs et raisonnement formel dans une architecture commune. Cela ne décrit pas, à lui seul, une méthode complète dont toutes les performances seraient établies. Les affirmations du laboratoire sur les limites de l’apprentissage profond et la portée de cette combinaison doivent être lues comme sa position de recherche.
L’intérêt de cette piste tient à une question précise : peut-on utiliser des connaissances acquises pour découvrir efficacement une règle nouvelle ? Ce critère est plus exigeant que la production d’un programme plausible.
Ce que les travaux publiés permettent déjà d’observer
L’association entre réseaux neuronaux et recherche symbolique dépasse le projet de Ndea. Des travaux publiés permettent d’en examiner les mécanismes sans présumer qu’ils conduisent à une intelligence générale.
DreamCoder, présenté dans une publication de recherche, apprend conjointement une bibliothèque de composants et un réseau qui guide la recherche de programmes. À partir des solutions découvertes, il construit des abstractions réutilisables. Il entraîne aussi son guidage sur des problèmes rejoués ou générés.
L’idée est concrète : si une même séquence revient dans plusieurs solutions, elle peut devenir une nouvelle brique. Les recherches suivantes peuvent alors l’utiliser directement. L’apprentissage porte ainsi sur les solutions et sur le vocabulaire permettant de les exprimer.
Ce travail fournit un exemple de système qui articule recherche, apprentissage et réutilisation. Il ne démontre pas que cette organisation suffit pour apprendre dans n’importe quel environnement. Les tâches étudiées, les représentations disponibles et les ressources accordées font partie du résultat.
Le rapport technique ARC Prize 2024 décrit également la recherche de programmes parmi les approches explorées sur ARC. Il distingue l’induction d’une procédure de la prédiction directe d’une sortie et rapporte l’intérêt de leur combinaison dans cette édition.
Ces résultats historiques documentent des méthodes, pas l’état des classements d’octobre 2026. Pour lire un résultat récent, l’article sur les benchmarks et leurs conditions de comparaison aide à examiner le protocole plutôt que le seul score.
Le lien avec l’intelligence selon François Chollet
Dans On the Measure of Intelligence, publié en novembre 2019, François Chollet propose de caractériser l’intelligence par l’efficacité d’acquisition de compétences. Son analyse demande de considérer les connaissances préalables et l’expérience : une performance élevée peut refléter une préparation abondante plutôt qu’une forte capacité d’adaptation.
La synthèse de programmes intéresse cette perspective parce qu’elle permet de formuler une règle à partir d’observations limitées. Mais elle n’efface pas les connaissances préalables. Le langage de recherche, les composants disponibles et le modèle de guidage encodent déjà des choix et des apprentissages.
Prenons un exercice où il faut déplacer un objet jusqu’à une bordure. Si le système possède déjà une opération dédiée à ce déplacement, la découverte est facilitée. S’il doit construire cette opération depuis des manipulations élémentaires, la difficulté change. Une évaluation doit tenir compte de cet écart.
L’article On the Measure of Intelligence expliqué simplement développe cette distinction entre compétence et efficacité d’apprentissage. Elle évite d’assimiler automatiquement une réussite visible à une intelligence plus générale.
La synthèse n’est donc pas une preuve d’AGI. Elle offre un cadre pour étudier comment un système découvre et réutilise des procédures. Établir une portée générale exige ensuite de mesurer le transfert, les ressources nécessaires et la dépendance aux représentations préparées.
Ce qu’ARC peut mesurer et ce qui reste à démontrer
Dans les tâches de grilles d’ARC, des exemples montrent une transformation et le système doit produire une sortie pour une nouvelle entrée. Une approche par synthèse cherche une procédure compatible avec les démonstrations, puis l’applique au cas demandé.
Les notes techniques publiées par ARC Prize en octobre 2024 exposent cette piste combinant apprentissage profond et recherche de programmes. Elles présentent une orientation technique ; elles ne constituent pas une démonstration que toute intelligence peut être réduite à ce dispositif.
Dans un exemple fictif, les démonstrations pourraient suggérer de conserver l’objet le plus grand. Une procédure peut réussir ces exemples tout en échouant si deux objets ont la même taille. Elle peut aussi exploiter accidentellement une couleur commune aux démonstrations. Le programme est exécutable et inspectable, mais son interprétation reste à vérifier.
Passer de ces exercices à des problèmes ouverts ajoute d’autres difficultés :
- les observations peuvent être incomplètes ou bruitées ;
- le résultat correct peut être difficile à vérifier automatiquement ;
- les objectifs peuvent rester ambigus ;
- une action peut modifier l’environnement avant que l’hypothèse soit validée.
Ces obstacles expliquent pourquoi le succès sur un benchmark doit être replacé dans son périmètre. Pour comprendre les familles d’épreuves et leurs limites, la page consacrée aux benchmarks AGI fournit le cadre complémentaire. Un programme qui explique des exemples ne prouve ni que la règle est unique ni qu’elle restera valable ailleurs.
Comment juger les progrès annoncés
Pour suivre cette recherche dans notre dossier sur l’AGI, le critère utile est la capacité démontrée à résoudre des tâches nouvelles dans des conditions documentées. Une annonce d’architecture décrit un moyen envisagé ; une évaluation doit montrer ce qu’il permet effectivement d’obtenir.
Il faut notamment demander quels composants étaient disponibles avant le test, quel calcul a servi à chercher et combien de candidats ont été exécutés. Les échecs comptent aussi : un système peut réussir certaines familles et rester incapable de formuler une solution dans une autre représentation.
Une progression convaincante devrait également distinguer l’apport de chaque mécanisme. Le guidage réduit-il la recherche nécessaire ? Les abstractions apprises servent-elles sur des tâches nouvelles ? Le résultat reste-t-il valable avec un budget comparable ? Ces questions permettent d’évaluer la combinaison sans attribuer tout gain à une seule idée.
À retenir
- La synthèse de programmes cherche une procédure exécutable à partir d’un comportement attendu.
- Ndea propose de guider cette recherche par apprentissage profond ; sa portée vers l’AGI reste une hypothèse à évaluer.
- Des travaux publiés montrent comment apprendre un guidage et des composants réutilisables dans des cadres définis.
- Réussir les exemples ne garantit pas la généralisation : protocole, ressources et cas nouveaux déterminent la portée du résultat.
Questions fréquentes
La synthèse de programmes nécessite-t-elle un modèle de langage ?
Non. Un système peut explorer un langage limité avec des méthodes de recherche ou des solveurs logiques. Un réseau neuronal peut l'aider à sélectionner les pistes prometteuses, mais ce guidage n'est pas une condition de la définition.
Quelle différence entre synthèse de programmes et compilation ?
Un compilateur traduit un programme déjà décrit dans un autre langage tout en préservant son comportement. La synthèse doit découvrir le programme à partir de ce que l'utilisateur attend, ce qui laisse souvent plusieurs solutions possibles.
Peut-on prouver qu'un programme synthétisé est correct ?
Dans certains cadres formels, une preuve peut établir qu'il respecte une spécification donnée. Cette garantie dépend toutefois des hypothèses et de la spécification retenues. Réussir des exemples ne constitue pas à lui seul une telle preuve.
La piste de Ndea signifie-t-elle que l'AGI est proche ?
Une orientation de recherche ne fournit pas de calendrier fiable. Pour juger les progrès, il faut examiner des évaluations reproductibles, les ressources utilisées et le transfert vers des problèmes nouveaux. L'ambition affichée d'un laboratoire ne remplace pas ces éléments.