IA vs. développeurs
Les avancées d’AlphaCode ne devraient-elles pas être précédées d’avancées significatives sur les outils actuels de “Code Generation” ?
IA versus développeurs
Les avancées d’AlphaCode ne devraient-elles pas être précédées d’avancées significatives dans les outils actuels de “Code Generation” et autres outils d’aide au développement ?
DeepMind a présenté la semaine dernière son nouveau projet, “AlphaCode”, une IA dont le but est de se mesurer aux humains dans les compétitions de code informatique. La promesse à terme est de remplacer une partie du travail des développeurs en générant du code source.
Le modèle d’AlphaCode base son apprentissage sur 1To de codes source issus d’un site de problème de code en ligne, et les résultats sont bluffants.
En prenant un peu de recul, une IA a donc appris, sur la base de spécifications (énoncé du problème et correspondance input/output) à générer une solution à un problème avec des performances encourageantes.
Il s’agit là des prémices de ce que l’on pourrait appeler du TDAD (Test Driven Automated Development), qui pourrait bien être la norme dans un avenir pas si lointain. Les développeurs seraient remplacés par des “spécificateurs” qui décriraient dans un méta-langage suffisamment expressif les tâches à réaliser, puis laisseraient à l’IA le soin de produire une première mouture du code. On pourrait imaginer un gain de 50 à 75% de temps sur le développement des applications.
Cet avenir radieux suppose néanmoins l’existence de standards qui permettent d’exprimer les contraintes et attendus, et bien sûr de données suffisamment propres pour donner des performances intéressantes. Ces données finiront bien par exister sur Github, mais comment faire le tri ?
Pourtant, avant de plonger la tête la première dans la science-fiction, ne devrait-on pas mettre davantage d’efforts pour développer l’intelligence des outils actuels de “code generation”? Générer un CRUD correct en python fastapi selon des modèles SQLAlchemy n’est déjà pas proprement faisable, et c’est pourtant le pain quotidien d’un bon nombre de développeurs !
L’amélioration des “linters” et autres programmes d’aide au développement est également, me semble-t-il une priorité. Et dans ce domaine, il est étonnant de constater que les approches classiques de “code generation” n’ont pour l’instant pas bénéficier de façon impactante des avancées de l’IA. Et c’est bien dommage !
Alors OUI à la science fiction, mais étape par étape sans perdre de vue les enjeux du présent.
Quelques liens :
- L’article de DeepMind sur AlphaCode
- Le preprint de DeepMind sur AlphaCode
- Un lien permettant de mieux comprendre sur quelles données AlphaCode se base pour générer des solutions