À la recherche de code
Pour ceux qui ont regardé la première saison de “Westworld” sur HBO, vous vous rappelez que l’un des éléments qui rendait un hôte doté d’intelligence artificielle véritablement intelligent était sa capacité à écrire son propre code. C’est une forme de raisonnement autonome, quelque chose que les technologies d’IA actuelles ne maîtrisent pas encore complètement. Cependant, une entreprise cherche à réduire cet écart en utilisant des algorithmes d’apprentissage profond avec une programmation probabiliste. Récemment, des chercheurs de Microsoft et de l’Université de Cambridge ont travaillé sur un système appelé DeepCoder, qui pourrait nous rapprocher d’une intelligence artificielle capable de coder par elle-même.
DeepCoder est un système d’apprentissage automatique capable de produire son propre code grâce à une méthode appelée synthèse de programmes. En gros, il crée de nouveaux programmes en combinant des lignes de code préexistantes de divers logiciels, à l’image des développeurs humains. En gardant un résultat spécifique en tête, DeepCoder est capable d’identifier les lignes de code qui seront particulièrement utiles.
L’équipe de recherche, dirigée par Alexander Gaunt de Microsoft Research et Matej Balog de Cambridge, explique que leur approche consiste à entraîner un réseau de neurones pour prédire les propriétés du programme qui a généré les résultats à partir des entrées. Grâce à ces prédictions, ils améliorent les techniques de recherche utilisées dans la communauté des langages de programmation, telles que la recherche énumérative et les solveurs basés sur SMT. Leur étude est en cours de révision pour la 5e Conférence internationale sur les représentations d’apprentissage (ICLR 2017) prévue en avril prochain.
La programmation pour tous
DeepCoder a montré une efficacité remarquable dans les défis de programmation basiques que l’on retrouve souvent dans les compétitions. Il peut explorer des lignes de code de manière plus exhaustive qu’un programmeur humain, assemblant des morceaux de code de manière innovante et rapide. En tant qu’algorithme d’apprentissage profond, chaque nouveau problème qu’il rencontre lui permet d’améliorer sa capacité à combiner ces lignes de code.
En fin de compte, cette technologie pourrait rendre la programmation accessible même à ceux qui n’ont aucune expérience en codage, permettant à tout le monde de créer facilement des programmes simples. Le chercheur Marc Brockschmidt, l’un des concepteurs de DeepCoder à Microsoft Research à Cambridge, estime que leur technologie permettra aux non-programmeurs de décrire simplement un programme, laissant le système s’en charger. Cela pourrait vraiment accroître la productivité générale. L’associé professeur au MIT, Armando Solar-Lezama, qui n’était pas impliqué dans la recherche, a déclaré que cela pourrait permettre à beaucoup de construire des systèmes qui étaient auparavant impossibles à réaliser.
Pour l’instant, DeepCoder est limité aux défis de programmation d’environ cinq lignes de code. Brockschmidt a fait savoir que les futures versions pourraient faciliter la création de programmes automatisés capables d’extraire des informations des sites web sans intervention humaine. Selon Solar-Lezama, le potentiel d’automatisation offert par cette technologie pourrait réduire de manière significative le temps et les efforts nécessaires pour développer du code. Bien que cette technologie ne remplace pas les programmeurs, DeepCoder pourrait assumer les tâches fastidieuses, permettant aux développeurs humains de se concentrer sur des travaux plus complexes.
FAQ
Quelles sont les capacités actuelles de DeepCoder ?
DeepCoder peut gérer des défis de programmation simples, souvent limités à environ cinq lignes de code.
Quel impact cette technologie pourrait-elle avoir sur les emplois des programmeurs ?
Bien que DeepCoder puisse faciliter certaines tâches, il est prévu que les programmeurs continuent à jouer un rôle crucial, se concentrant sur des travaux de plus haute valeur qui nécessitent réflexion et créativité.
Quelles innovations pourrait-on attendre de la recherche sur DeepCoder ?
À l’avenir, on pourrait s’attendre à des versions de DeepCoder capables de créer des programmes automatisés plus complexes, notamment pour l’extraction de données web.
Comment fonctionne la synthèse de programmes ?
La synthèse de programmes implique de créer de nouveaux programmes en combinant des lignes de code déjà existantes, une technique que DeepCoder maîtrise grâce à des algorithmes d’apprentissage automatique.
En quoi DeepCoder se distingue-t-il des autres systèmes d’intelligence artificielle ?
DeepCoder se concentre spécifiquement sur la capacité de coder et d’assembler des programmes, contrairement à d’autres systèmes d’IA qui peuvent se concentrer sur des domaines divers comme la vision par ordinateur ou le traitement du langage naturel.
