En collaboration avec les chercheurs de l’université de Cambridge, Microsoft a développé une intelligence artificielle baptisé DeepCoder qui peut créer de nouveaux programmes grâce au machine learning en assemblant des bouts de codes récupérés dans des programmes existants. DeepCoder peut prendre en compte les exigences définies par le développeur, parcourir une large base de données contenant des snippets de code et livrer les lignes de code nécessaire pour résoudre le problème défini par le développeur.
« L’approche consiste à entraîner un réseau de neurones à prédire des propriétés du programme qui a généré les sorties suite à des entrées. Nous utilisons les prédictions du réseau de neurones pour augmenter les techniques de recherche de la communauté de langages de programmation, y compris la recherche énumérative et un solveur SMT », ont expliqué les chercheurs.
Plus loin, ils avancent que « concevoir un système IPS (Inductive Program Synthesis) nécessite de résoudre deux problèmes. Tout d'abord, le problème de recherche: pour trouver des programmes cohérents, nous devons rechercher sur un ensemble approprié de programmes possibles. Nous devons définir l'ensemble (c'est-à-dire, l'espace de programme) et la procédure de recherche. Deuxièmement, le problème de classement: s'il y a plusieurs programmes cohérents avec les exemples d'entrées-sorties, lesquels devrions-nous retourner ? Ces deux problèmes dépendent des spécificités de la formulation du problème. Ainsi, la première décision importante dans la formulation d'une approche de synthèse de programme est le choix d'un langage spécifique au domaine ».
Le système s’améliore au fur et à mesure qu’il s’exerce, déterminant quels fragments de code fonctionnent mieux ensemble et quand utiliser un fragment de code à la place d’un autre. Parce qu’il « apprend », le système peut retourner des résultats de plus en plus vite.
« Le potentiel d'automatisation que ce type de technologie offre pourrait vraiment apporter une énorme réduction des efforts nécessaires pour développer un code », a estimé Armando Solar-Lezama du Massachusetts Institute of Technology, qui n'a pas été impliqué dans ce projet. « Tout à coup, les gens pourraient être beaucoup plus productifs. Ils pourraient concevoir des systèmes qu'ils n’auraient pas pu concevoir auparavant », a-t-il espéré.
De plus, cette approche pourrait permettre aux non-codeurs de simplement décrire une idée de programme et laisser le système se charger de la conception, a estimé Marc Brockschmidt, l'un des créateurs de DeepCoder de Microsoft Research à Cambridge.
Ce type de système pourrait avoir de nombreuses applications. En 2015, les chercheurs du MIT ont créé un programme qui a automatiquement corrigé les bogues logiciels en remplaçant les lignes de code défectueuses par des lignes de code qui fonctionnaient pour d’autres programmes. Brockschmidt a assuré que les futures versions pourraient faciliter le développement de programmes de routine qui puisent des informations sur des sites Web, ou le développement de programmes permettant de catégoriser automatiquement des photos de Facebook, par exemple, sans que le développeur n’ait à écrire une seule ligne de code.
Quant à savoir si ces systèmes mettront les développeurs au chômage, Solar-Lezama n’y croit pas. Selon lui, étant donné que la synthèse automatisée de programmes pourrait s’occuper des parties les plus fastidieuses de la programmation, les développeurs seront alors en mesure de se consacrer à une partie plus sophistiquée.
À l'heure actuelle, DeepCoder n’est capable que de résoudre des problèmes de programmation impliquant environ cinq lignes de code. « Générer une grosse portion de code tout d’un coup est difficile et potentiellement irréaliste », a-t-il assuré. « Toutefois, les grosses portions de code sont obtenues en mettant ensemble plusieurs portions plus modestes de code ».
Source : article (au format PDF)
Et vous ?
Que pensez-vous de DeepCoder ?
Voir aussi :
L'unité de Microsoft dédiée à l'IA apporte aux développeurs des API, pour faire de la modération de contenu et améliorer la reconnaissance vocale
Jeu de poker : l'IA de l'université Carnegie Mellon terrasse ses quatre adversaires humains, une victoire historique face à des joueurs de haut niveau
Microsoft acquiert Maluuba, l'entreprise spécialisée dans la recherche IA pour rendre les machines capables de penser et communiquer comme les hommes
DeepCoder : l'IA développée par Microsoft Research capable de coder
En assemblant des bouts de codes récupérés dans des programmes existants
DeepCoder : l'IA développée par Microsoft Research capable de coder
En assemblant des bouts de codes récupérés dans des programmes existants
Le , par Stéphane le calme
Une erreur dans cette actualité ? Signalez-nous-la !