Quand l’IA aide les développeurs à programmer

Programmer = entrer des lignes de code à n'en plus finir ? Une nouvelle méthode utilisant l'intelligence artificielle, mise au point par des chercheurs de Microsoft, pourrait bien changer cela. Explications.

Bien qu’ils soient devenus plus user-friendly ces dernières années, les langages de programmation restent difficiles à maîtriser, et programmer demande toujours d’entrer manuellement de nombreuses lignes de codes. Pour faciliter la tâche des développeurs, les spécialistes de l’IA se penchent depuis longtemps sur des systèmes permettant de transcrire du langage naturel en code informatique.

 

Plusieurs méthodes utilisant les réseaux neuronaux artificiels ont été développées, mais elles souffrent de 3 problèmes récurrents :

  • Elles demandent une grande puissance de calcul et sont difficiles à entraîner.
  • Les modèles doivent justement être entraînés pour chaque tâche, séparément.
  • Il est difficile de vérifier la justesse de leur raisonnement, du fait de la complexité des systèmes de réseaux neuronaux artificiels utilisés.

Pour répondre à ces problématiques, une équipe de chercheurs de Microsoft Research a récemment mis au point une méthode nouvelle pour transcrire des commandes en langage naturel vers une programmation informatique. Les résultats sont impressionnants : le modèle atteint 92% de réussite lors de tests en conditions réelles, contre 34% pour le meilleur modèle utilisant les techniques précédentes.

À lire aussi » Intelligence artificielle : 5 chiffres à connaître

Concrètement, ce système permet d’entraîner très rapidement une IA (ou, plus précisément, un réseau de neurones artificiels) à coder elle-même un programme informatique, à partir de quelques exemples fournissant les inputs et les outputs souhaités en langage naturel. Il peut par exemple s’agir de transformer une liste de nom complets sans majuscules en liste incluant nom et première lettre du prénom, avec majuscules. Le programme comprend ensuite la finalité et la façon de procéder et peut continuer en créant lui-même la règle de développement.

Plus fort encore, le système fournit des programmations solides, y compris lorsque les data en inputs sont altérées (par exemple, par des coquilles, un « bruit » qui perturbe souvent les IA fortement structurées et rigides). La flexibilité de ce système lui permet également de construire des programmes pour des tâches qu’il n’a jamais observées lors de son entraînement.

Ces avancées ouvrent de nouvelles perspectives pour les développeurs. Dans les années à venir, il leur sera ainsi aisé de coder de façon plus intuitive (et moins laborieuse), afin de se concentrer sur les tâches de programmation à plus grande valeur ajoutée.