Ces dernières années, les capacités de programmation de l'intelligence artificielle (IA) n'ont cessé de progresser, mais elles sont loin d'être parfaites. Récemment, Max Woolf, data scientist senior chez BuzzFeed, a découvert par le biais d'expériences que si l'on fournit continuellement à un grand modèle linguistique (LLM) l'invite « écrire un meilleur code », l'IA peut effectivement générer un code de meilleure qualité. Cette découverte a suscité un vif intérêt, et de célèbres scientifiques de l'IA ont souligné l'importance de l'itération et de la conception des invites.
Dans l'expérience de Woolf, il a utilisé une version du modèle d'IA Claude3.5Sonnet pour une série de tâches de programmation. Initialement, il a posé au modèle un problème de programmation simple : comment trouver la différence entre la valeur minimale et la valeur maximale dont la somme des chiffres est égale à 30 parmi un million d'entiers aléatoires. Claude a généré du code répondant aux exigences, mais Woolf a estimé qu'il pouvait être optimisé.
Ensuite, Woolf a décidé, après chaque génération de code, d'inviter Claude à l'itérer et à l'optimiser en utilisant l'invite « écrire un meilleur code ». Après la première itération, Claude a restructuré le code en une classe Python orientée objet et a réalisé deux optimisations significatives, augmentant la vitesse d'exécution de 2,7 fois. Lors de la deuxième itération, Claude a ajouté le traitement multithreadé et le calcul vectoriel, ce qui a finalement permis d'atteindre une vitesse d'exécution 5,1 fois supérieure à la version de base.
Cependant, à mesure que le nombre d'itérations augmentait, l'amélioration de la qualité du code a commencé à ralentir. Après plusieurs tours d'optimisation, bien que le modèle ait tenté d'utiliser des techniques plus complexes, telles que la compilation JIT et la programmation asynchrone, certaines itérations ont même entraîné une baisse des performances. Finalement, l'expérience de Woolf a révélé le potentiel et les limites des invites itératives, ouvrant de nouvelles perspectives sur l'avenir de la programmation par IA.
Cette recherche met non seulement en lumière le potentiel des applications de l'IA dans le domaine de la programmation, mais rappelle également que, même si l'IA peut améliorer la qualité du code par itération, la manière de concevoir des invites de manière appropriée et d'équilibrer les performances et la complexité reste un sujet qui mérite d'être approfondi dans les applications réelles.