Les informaticiens de l'Université Rice (de gauche à droite) Vijay Murali, Chris Jermaine, Swarat Chaudhuri et Letao Qi ont créé une application de codage logiciel appelée Bayou qui peut aider les programmeurs humains en écrivant des morceaux de code en réponse à des mots-clés. Crédit :Jeff Fitlow/Université Rice
Les informaticiens de l'Université Rice ont créé un système d'apprentissage en profondeur, application de codage logiciel qui peut aider les programmeurs humains à naviguer dans la multitude croissante d'interfaces de programmation d'applications souvent non documentées, ou API.
Connu sous le nom de Bayou, l'application Rice a été créée grâce à une initiative financée par la Defense Advanced Research Projects Agency visant à extraire des connaissances à partir de référentiels de code source en ligne comme GitHub. Un article sur Bayou sera présenté le 1er mai à Vancouver, Colombie britannique, à la sixième Conférence internationale sur les représentations de l'apprentissage, un débouché de premier ordre pour la recherche en apprentissage en profondeur. Les utilisateurs peuvent l'essayer sur askbayou.com.
Concevoir des applications capables de programmer des ordinateurs est un graal longtemps recherché de la branche de l'informatique appelée intelligence artificielle (IA).
"Les gens ont essayé pendant 60 ans de construire des systèmes capables d'écrire du code, mais le problème est que ces méthodes ne sont pas si bonnes avec l'ambiguïté, " a déclaré le co-créateur de Bayou Swarat Chaudhuri, professeur agrégé d'informatique à Rice. « Vous devez généralement donner beaucoup de détails sur ce que fait le programme cible, et écrire ces détails peut être autant de travail que de simplement écrire le code.
"Bayou est une amélioration considérable, " a-t-il dit. " Un développeur peut donner à Bayou une très petite quantité d'informations - juste quelques mots-clés ou invites, vraiment, et Bayou essaiera de lire dans l'esprit du programmeur et de prédire le programme qu'il veut."
Chaudhuri a déclaré que Bayou s'était entraîné en étudiant des millions de lignes de code Java écrites par l'homme. "Il a essentiellement tout étudié sur GitHub, et il s'en sert pour écrire son propre code."
Le co-créateur de Bayou Chris Jermaine, un professeur d'informatique qui co-dirige le Laboratoire de systèmes logiciels intelligents de Rice avec Chaudhuri, ledit Bayou est particulièrement utile pour synthétiser des exemples de code pour des API logicielles spécifiques.
"La programmation d'aujourd'hui est très différente de ce qu'elle était il y a 30 ou 40 ans, " a déclaré Jermaine. " Les ordinateurs d'aujourd'hui sont dans nos poches, à nos poignets et dans des milliards d'appareils électroménagers, véhicules et autres appareils. L'époque où un programmeur pouvait écrire du code à partir de zéro est révolue depuis longtemps."
Bayou architecte Vijay Murali, un chercheur au laboratoire, mentionné, « Le développement de logiciels modernes concerne uniquement les API. Ce sont des règles spécifiques au système, outils, des définitions et des protocoles qui permettent à un morceau de code d'interagir avec un système d'exploitation spécifique, base de données, plate-forme matérielle ou un autre système logiciel. Il existe des centaines d'API, et leur navigation est très difficile pour les développeurs. Ils passent beaucoup de temps sur des sites de questions-réponses comme Stack Overflow à demander de l'aide à d'autres développeurs."
Murali a déclaré que les développeurs peuvent maintenant commencer à poser certaines de ces questions à Bayou, qui donnera une réponse immédiate.
"Ce retour immédiat pourrait résoudre le problème tout de suite, et si ce n'est pas le cas, L'exemple de code de Bayou devrait conduire à une question plus éclairée pour leurs pairs humains, ", a déclaré Murali.
Jermaine a déclaré que l'objectif principal de l'équipe est d'amener les développeurs à essayer d'étendre Bayou, qui a été publié sous une licence open source permissive.
"Plus nous avons d'informations sur ce que les gens attendent d'un système comme Bayou, mieux nous pouvons le faire, " a-t-il dit. " Nous voulons que le plus de personnes possible l'utilisent. " Bayou est basé sur une méthode appelée apprentissage des croquis neuronaux, qui entraîne un réseau de neurones artificiels à reconnaître des modèles de haut niveau dans des centaines de milliers de programmes Java. Pour ce faire, il crée une "esquisse" pour chaque programme qu'il lit, puis associe cette esquisse à "l'intention" qui se cache derrière le programme.
Lorsqu'un utilisateur pose des questions à Bayou, le système porte un jugement sur le programme qu'on lui demande d'écrire. Il crée ensuite des esquisses pour plusieurs des programmes candidats les plus probables que l'utilisateur pourrait souhaiter.
« Sur la base de cette supposition, une partie distincte du Bayou, un module qui comprend les détails de bas niveau de Java et peut faire un raisonnement logique automatique, va générer quatre ou cinq morceaux de code différents, " a déclaré Jermaine. " Il va les présenter à l'utilisateur comme des résultats sur une recherche sur le Web. 'Celui-ci est probablement la bonne réponse, mais en voici trois autres qui pourraient être ce que vous recherchez.'"