Récemment, Max Woolf, data scientist senior chez BuzzFeed, a mené une expérience pour explorer l'effet de demandes répétées d'amélioration de code à une IA. Il a utilisé le modèle linguistique Claude 3.5 et lui a soumis un défi de programmation classique : écrire du code Python pour trouver la différence entre la valeur maximale et la valeur minimale dont la somme est égale à 30 parmi un million de nombres aléatoires.

Code Internet (1)

Source de l'image : Image générée par IA, fournisseur de services d'autorisation d'images Midjourney

Dans la version initiale, le code généré par Claude s'exécutait en 657 millisecondes. Cependant, en répétant simplement l'instruction « écrire un meilleur code (write better code) », le temps d'exécution du code final a été réduit à seulement 6 millisecondes, soit une amélioration de performance de 100 fois. Ce résultat est non seulement remarquable, mais l'IA a également démontré des changements inattendus dans sa définition de « meilleur code ».

À la quatrième demande de « écrire un meilleur code », Claude a inopinément transformé le code en une structure similaire à celle d'une application d'entreprise, ajoutant des caractéristiques typiques des entreprises, sans que Woolf ne le lui demande. Cela suggère que l'IA pourrait associer « meilleur code » à « logiciel d'entreprise », reflétant les connaissances acquises lors de son entraînement.

Le développeur Simon Willison a analysé ce phénomène d'amélioration itérative et estime que le modèle linguistique examine le code sous un angle nouveau à chaque nouvelle demande. Même si chaque demande contient le contexte des conversations précédentes, Claude analyse le code comme s'il le voyait pour la première fois, ce qui lui permet de l'améliorer continuellement.

Cependant, Woolf a constaté lors d'essais avec des demandes plus spécifiques que, bien que cela permette d'obtenir plus rapidement de meilleurs résultats, le code présentait toujours de subtiles erreurs nécessitant une correction humaine. Il souligne donc l'importance cruciale de l'ingénierie des invites. Des instructions simples peuvent améliorer la qualité du code, mais une ingénierie des invites ciblée apporte une amélioration de performance significative, même si les risques augmentent.

Il est à noter que dans cette expérience, Claude a omis des étapes d'optimisation considérées comme évidentes par les développeurs humains, telles que la suppression des doublons ou le tri préalable des nombres. De plus, de subtiles variations dans la formulation des questions peuvent influencer considérablement la sortie de Claude.

Malgré ces améliorations de performance impressionnantes, Woolf rappelle que les développeurs humains restent indispensables pour la validation des solutions et le dépannage. Il souligne que, même si le code généré par l'IA ne peut pas être utilisé directement, ses capacités en matière de créativité et de suggestions d'outils méritent d'être prises en considération.

Points clés :

🌟 L'IA améliore les performances du code grâce à des instructions répétées, passant d'un temps d'exécution de 657 millisecondes à 6 millisecondes.

💡 L'IA ajoute automatiquement des fonctionnalités d'entreprise au code, démontrant sa compréhension unique de « meilleur code ».

🛠️ L'ingénierie des invites reste importante : des demandes précises peuvent accélérer la génération de résultats, mais une validation et une correction humaines restent nécessaires.