IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Que vaut vraiment ChatGPT en matière de codage informatique ? Une étude confirme que les entreprises exagèrent sur les capacités de l'IA
Et surtout sur son aptitude à remplacer les humains dans la filière

Le , par Patrick Ruiz

48PARTAGES

4  0 
Une remarque clé ressort de cette étude : ChatGPT peut s’avérer très bon à résoudre des problèmes de codage qui existaient sur la plateforme LeetCode avant 2021. Passé cette période, ChatGPT fait montre de piètres performances en raison de la qualité du jeu de données d’entraînement. Grosso modo, l’étude permet d’arriver à la conclusion que l’intelligence artificielle reste un outil à utiliser avec des pincettes. Pourtant elle atterrit dans un contexte de battage médiatique autour de l’intelligence et de sa capacité à remplacer les humains dans la filière du développement de logiciels.


En effet, après ChatGPT, c’était au tour de l’IA d’ingénierie logicielle dénommée Devin de secouer la filière du développement de logiciels en raison de son aptitude annoncée à remplacer les humains dans la filière. Sa présentation faisait suite à celle de l’intelligence artificielle dénommée Magic.dev et annoncée au public comme un « ingénieur logiciel superhumain. ».

Magic.dev et Devin partagent un dénominateur commun : une proposition de valeur qui passe par une présentation musclée ; « ingénieur logiciel superhumain » ou encore « première IA d’ingénierie logicielle entièrement autonome. » Les retours à ce sujet font néanmoins état de ce que toutes ces IA, dans leur forme actuelle, sont plutôt des assistants de codage.

Une récente étude est en effet arrivée à la conclusion que l’IA générative ne remplacera pas les développeurs de sitôt. Des chercheurs de l'université de Princeton ont développé un cadre d'évaluation basé sur près de 2300 problèmes courants de génie logiciel montés à partir de rapports de bogues et de feature requests soumis sur GitHub afin de tester la performance de divers modèles de grands langages (LLM).

Les chercheurs ont fourni à différents modèles de langage le problème à résoudre et le code du dépôt. Ils ont ensuite demandé au modèle de produire un correctif réalisable. Ce dernier a ensuite fait l’objet de tests pour s'assurer qu'il était correct. Mais le LLM n'a généré une solution efficace que dans 4 % des cas.


Leur modèle spécialement entraîné, SWE-Llama, n'a pu résoudre que les problèmes d'ingénierie les plus simples présentés sur GitHub, alors que les LLM classiques tels que Claude 2 d'Anthropic et GPT-4 d'OpenAI n'ont pu résoudre que 4,8 % et 1,7 % des problèmes, de façon respective.

Et l’équipe de recherche de conclure : « le génie logiciel n’est pas simple dans la pratique. La correction d'un bogue peut nécessiter de naviguer dans un grand référentiel, comprendre l'interaction entre des fonctions dans différents fichiers ou repérer une petite erreur dans du code alambiqué. Cela va bien au-delà des tâches de complétion de code. »

C’est la raison pour laquelle Linux Torvalds a tenu à se désolidariser de tout le battage médiatique autour de l’intelligence artificielle. Il la considère comme un outil au stade actuel de son évolution. Il suggère d’ailleurs la révision de code comme domaine d’application de l’intelligence artificielle. La capacité de l’intelligence artificielle à « deviner » l’intention du développeur lui sera utile pour obtenir du code fiable en un temps réduit. Une condition demeurera toutefois nécessaire : le développeur devra à son tour examiner ce que l’intelligence artificielle lui propose.

Malgré les avancées de l'IA, la vigilance humaine reste indispensable

L’erreur de ChatGPT qui a coûté 10 000 dollars à une startup est un rappel que, malgré les avancées de l’IA, la vigilance humaine reste indispensable. Les outils d’IA sont puissants, mais ils ne remplacent pas le jugement critique et l’expertise des développeurs. En fin de compte, c’est la responsabilité des équipes humaines de s’assurer que la technologie qu’elles utilisent est sûre et fiable.

D'ailleurs, l'erreur ne saurait être imputable entièrement à ChatGPT : les développeurs auraient du prendre la peine d'analyser le code au lieu de se limiter à quelques tests avant la copie. Ils semblent le reconnaitre lorsqu'ils déclarent :

« Je voudrais commencer par dire que les pratiques en question sont très mauvaises et embarrassantes (et nous avons depuis ajouté des tests unitaires et d'intégration robustes ainsi que des alertes et des enregistrements), qu'elles auraient pu et dû être évitées, qu'il s'agissait d'erreurs humaines au-delà de tout, et qu'elles sont très évidentes avec le recul.

« Cela s'est passé à une autre époque, avec d'importantes contraintes de temps, aux tout premiers stades (premières semaines) de la création d'une entreprise. Je partage surtout cette histoire comme une anecdote amusante avec des circonstances uniques entourant la reproductibilité des bogues en prod (encore une fois à cause de notre propre stupidité) ».

Quoi qu'il en soit, tout est bien qui finit bien : « Rétrospectivement, aussi pénibles qu'aient été ces cinq jours, c'est l'un de ces moments de la vie d'une startup que nous n'oublierons jamais. Comme toutes les startups, nous avons fait une tonne d'erreurs tout au long de notre parcours, celle-ci étant peut-être la pire. J'évoquerai peut-être les autres plus tard. Nous sommes simplement heureux de pouvoir regarder ces jours-là en arrière et d'en rire. Oui, nous aurions dû faire plus de tests. Oui, nous n'aurions pas dû copier-coller du code. Oui, nous n'aurions pas dû passer directement à l'application principale. Quoi qu'il en soit, je ne regrette pas cette expérience ».

Source : Etude

Et vous ?

Comment voyez-vous l'intelligence artificielle dans 5 à 10 ans ? Comme un outil ou comme un danger pour votre poste de développeur ?
Quelle est votre opinion sur la fiabilité de l’intelligence artificielle dans les processus critiques d’entreprise ?
Avez-vous des expériences personnelles où l’IA a joué un rôle crucial, positivement ou négativement, dans votre travail ?
Comment pensez-vous que les entreprises peuvent équilibrer l’innovation technologique avec les risques potentiels associés à l’automatisation ?
Selon vous, quelles mesures de sécurité devraient être mises en place lors de l’intégration de solutions d’IA dans les systèmes d’entreprise ?
Pensez-vous que l’erreur mentionnée est un cas isolé ou révélateur d’un problème plus large dans l’industrie de l’IA ?
Quelles stratégies votre entreprise a-t-elle adoptées pour prévenir les erreurs coûteuses liées à l’IA ?
En tant que développeur ou utilisateur d’IA, comment assurez-vous la qualité et la précision du code généré par l’IA ?
Quel rôle les tests et la validation jouent-ils dans votre utilisation de l’IA, et comment ces processus pourraient-ils être améliorés ?

Voir aussi :

La conduite autonome serait-elle à ce jour qu'une vision futuriste chez Tesla Motors ? L'entreprise vient de changer les objectifs de son Autopilot
La SEC demande à Musk de renoncer à son poste de président de Tesla et exige une amende de 40 millions $ US pour un règlement à l'amiable
Tesla annonce que le nouvel ordinateur pour une conduite entièrement autonome de ses véhicules est en production et fera ses preuves ce mois-ci
Les actions Tesla chutent après que son système d'autopilote soit impliqué dans un accident et l'annonce des batteries de ses véhicules prenant feu

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de VBurel
Membre averti https://www.developpez.com
Le 12/07/2024 à 9:26
Vérifier que la machine a bien fait son job... c'est un métier d'avenir!
1  0 
Avatar de OuftiBoy
Membre éprouvé https://www.developpez.com
Le 08/10/2024 à 17:28


Pensez-vous que la capacité de Canvas à traduire du code entre différentes langages de programmation pourrait transformer l’industrie du développement logiciel ? Pourquoi ou pourquoi pas ?
La première question à se poser, c'est l'utilité de réécrire un logiciel dans un autre langage ? Si ce logiciel a des bugs, l'IA, quand elle sera à un niveau acceptable, au mieux reproduira les bugs, au pire en ajoutera d'autres. Si c'est "l'architecture" qu'il faut "refactoriser", il faut une bonne dose de confiance (ou d'inconscience) pour confier cela à une IA. Un exemple que j'utilise souvent, c'est l'utilisation du COBOL dans le domaine banquaire. Il y a eu des tentatives de réécrire tout cela en Java, et ça n'a jamais aboutit. Pourquoi ? Parce qu'au fil du temps, pleins de "petits détails" ont été introduits dans le code, sont nécessaires, mais il faut les détecter et les reproduire. Résultat, tout le système banquaire repose toujours sur le COBOL.

Réécrire un logiciel, même à la main, produit généralement les mêmes qualités et défauts de l'original. S'il faut réécrire, et qu'on repart sur les même bases, cela produira le même résultat. Il faut "repenser" le logiciel et son architecture.

Quels pourraient être les obstacles à l’adoption de Canvas par les développeurs ? Comment OpenAI pourrait-elle surmonter ces défis ?
Les IA d'aide au "codage" arrivent de partout. En quoi "Canvas" apporterait-il un plus par rapport à d'autres solutions ? Les "vieux développeurs" ont vu passer sous leurs yeux toute une floppée de "solutions miracles", dont il ne reste pas grand chose. Un développeur aime développer, et n'être que le surveillant d'une IA aura vite fait de le mettre en dépression. Et petit à petit, la qualité des "développeurs" s'en resentira, et il n'y aura plus personnes d'assez compétent pour surveiller l'IA. C'est un cercle vicieux.

Quels sont les enjeux éthiques liés à l’utilisation d’une AI pour traduire et réviser du code ? Y a-t-il des risques de dépendance excessive ou de perte de compétences chez les développeurs ?
Je ne vois pas ce que vient faire "l'éthique" dans la discution ? Sauf a accepter que l'IA a un biais dès le départ. Pour la "traduction du code", la réponse aussi répond déjà à cette question. Pour la révision, c'est assez discutable. Si l'IA ne fait pas un travail correct, pourquoi penser qu'une IA pourrait aider à réviser une base de code ? Que pourrait apporter cette IA ?

Quels sont vos préoccupations concernant la sécurité et la confidentialité des données lors de l’utilisation de Canvas ? Comment OpenAI pourrait-elle améliorer ces aspects ?
Faire confiance ? C'est de l'humour j'espère ?

BàV et Peace & Love.
1  0 
Avatar de OuftiBoy
Membre éprouvé https://www.developpez.com
Le 04/10/2024 à 19:38
Bonjour à tous,

Il y a maintenant un peu de recul sur l'usage de L'IA comme aide au codage. Il est donc peut-être temps de ne plus avoir la tête dans le guidon, mais de regarder un peu plus loin que le virage suivant.

Si nous reprenons les points suivant soulevés par l'article.

Citation Envoyé par Mathis Lucas Voir le message

  • réviser le code : ChatGPT fournit des suggestions en ligne pour améliorer votre code ;
  • ajouter des journaux : insère des instructions d'impression pour vous aider à déboguer et à comprendre votre code ;
  • ajouter des commentaires : ajoute des commentaires au code pour le rendre plus facile à comprendre ;
  • corriger les bogues : détecte et réécrit le code problématique pour résoudre les erreurs ;
  • portage vers un langage : traduit votre code en JavaScript, TypeScript, Python, Java, C++ ou PHP.
Réviser le code : ChatGPT fournit des suggestions en ligne pour améliorer votre code ;
C'est une méthode qui est trop intrusive. Lorsque l'on en est à phase de "codage", c'est que l'on a déjà "pensé" ce qu'on voulait coder. Le développeur se met dans sa bulle, rassemble le contexte nécessaire dans cette bulle, et chaque interruption fait exploser cette bulle. C'est un moment où le développeur n'aime pas être dérangé (que ce soit par un humain ou une IA). Les suggestions "en ligne" de l'IA peuvent donc être assez mal vécues. Ces suggestions devraient plutôt être décalées après l'écriture du code par le développeur, et sur demande de ce dernier. L'IA pourrait faire une analyse des modifications, et indiquer s'il y a des erreurs qui ont été commises.

ajouter des journaux : insère des instructions d'impression pour vous aider à déboguer et à comprendre votre code ;
Je pense qu'il serait plus opportun que l'IA génére un "rapport" sur le code ajouté et/ou modifié par le développeur. Si c'est c'est l'IA qui a produit le code à déboguer, je vois mal comment elle pourrait aider à comprendre et à déboguer un code créer par elle-même.

ajouter des commentaires : ajoute des commentaires au code pour le rendre plus facile à comprendre ;
Je ne suis pas un adepte des commentaires "dans le code". Le code est sensé réssoudre une problématique décrite par ailleurs, et un document expliquant pourquoi et comment le problème a été résolu me semble plus pertinent. Un code bien écrit devrait être le plus facilement lisible, et les commentaires être très peu nombreux, car non nécessaires. Il faut aussi vérifier que ces commentaires soient mis à jour lorsque le code est modifié. L'IA peut-elle être utile dans ce scénario ? C'est en tout cas un point a vérifier. Si l'IA peut produire du code "buggé", elle va aussi surement ajouter des "commentaires buggés".

corriger les bogues : détecte et réécrit le code problématique pour résoudre les erreurs ;
Là, l'IA pourrait être utile, sauf si c'est elle qui a produit le code. Car comment pourrait-elle détecter un code comme étant problématique, et corriger ce code, si c'est elle même qui l'a produit ? Peut-être que l'utilisation d'une autre IA pourrait trouver des erreurs dans le code généré par la première IA. C'est peut-être possible, mais cela allongera le temps de développement. Et un développeur débutant serait certainement très perturbé par des informations contradictoires venant de 2 IA.

portage vers un langage : traduit votre code en JavaScript, TypeScript, Python, Java, C++ ou PHP.
Un langage n'est pas simplement une syntaxe. Des idîomes viennent avec chaque langage. On utilise pas le C ou Python de la même manière. Traduire une application vers un autre langage, c'est aussi remanier l'architechture du code, l'adapter à différents outils, générer des projets et/ou solutions qu'un IDE où le compilateur du second langage pourra prendre en charge. De plus, réécrire un projet dans un autre langage a-t-il souvent du sens ? Si le langage d'origine a été choisi, c'est certainement pour de bonne raison, et pas au hazard.

Citation Envoyé par Mathis Lucas Voir le message
Par ailleurs, Canvas est lancé à un moment où l'impact des assistants d'IA de codage sur la productivité des développeurs fait l'objet d'un grand débat. Un récent rapport suggère que les outils d'IA de codage n'augmentent pas la vitesse de codage, mais augmentent significativement le taux de bogues. En outre, les développeurs débutants ont souvent du mal à égaler l'efficacité des développeurs confirmés, même lorsqu'ils se font aider par les assistants d'IA.
C'est un peux la double peine. Si l'IA produit plus de bogues sans améliorer la vitesse de codage, on doit se poser la question de pourquoi utiliser l'IA. Et ce n'est certainement pas de cette manière qu'un développeur débutant pourra "apprendre" mieux. Si un développeur débutant à du mal avec un concept, le mieux est d'expliquer ce problème à un développeur plus expérimenté qui pourra comprendre le soucis du débutant, et lui expliquer comment réssoudre son problème, où du moins le mettre sur la bonne piste.

Citation Envoyé par Mathis Lucas Voir le message
Les outils de codage ont été un cas d'utilisation précoce évident dans la ruée vers l'IA générative. Cependant, une étude publiée récemment par la société d'analyse Uplevel indique que les améliorations de productivité promises sont loin d'être au rendez-vous, si tant est qu'elles existent. Uplevel, qui fournit des informations sur les données de codage et de collaboration, rapporte que l'utilisation de GitHub Copilot a introduit 41 % de bogues supplémentaires.
On ne parle pas ici de qlq %, mais de 40% de bogue en plus. Le débogogage d'un code prend souvent plus de temps que l'écriture de la solution elle même. Je ne vois pas ici un quelconque avantage à l'IA.

Citation Envoyé par Mathis Lucas Voir le message
« Cela suggère que Copilot peut avoir un impact négatif sur la qualité du code. Les responsables de l'ingénierie peuvent souhaiter creuser davantage pour trouver les PR avec des bogues et mettre en place des garde-fous pour l'utilisation responsable de l'IA générative », indique le rapport intitulé "Can Generative AI Improve Developer Productivity". Certains disent avoir constaté un gain de production, mais le temps passé à examiner le code généré par l'IA est élevé.
Si le gain est minimum (pour autant qu'il y ait un gain), mais que le développeur devient plus un chasseur de bogue qu'un créatif en produisant du code, cela enlève ce qui fait le sel du métier. Le développeur débutant ne progressera pas, et le déceloppeur plus expérimenté sera fatigué de faire la chasse aux bogues. Personne ne gagne grand chose...

Citation Envoyé par Mathis Lucas Voir le message
L'étude a mesuré le temps de cycle des demandes de fusion (pull request - PR), c'est-à-dire le temps nécessaire pour fusionner le code dans un dépôt, et le débit des PR, c'est-à-dire le nombre de demandes de fusion fusionnées. Elle n'a révélé aucune amélioration significative pour les développeurs utilisant GitHub Copilot. Ce résultat est l'un des trois énumérés par l'entreprise, qui a déclaré avoir mené la recherche pour répondre à trois questions :

  • l'accès à GitHub Copilot aide-t-il les développeurs à produire du code plus rapidement ?
  • GitHub Copilot aide-t-il les développeurs à produire un code de meilleure qualité ?
  • GitHub Copilot atténue-t-il l'impact de l'épuisement des développeurs ?


Cette année, une startup a rapporté qu'une simple erreur de ChatGPT lui a coûté plus de 10 000 dollars. Elle avait activé la monétisation de son service, mais avait rapidement été confrontée à un problème majeur : les utilisateurs ne pouvaient pas s’abonner, entraînant de nombreuses plaintes et la perte potentielle de clients. L’erreur a été retracée jusqu’à une seule ligne de code qui provoquait des collisions d’ID uniques pendant le processus d’abonnement.

Les outils d’IA sont puissants, mais ils ne remplacent pas le jugement critique et l’expertise des développeurs. En fin de compte, c’est la responsabilité des équipes humaines de s’assurer que la technologie qu’elles utilisent est sûre et fiable. D'ailleurs, l'erreur ne saurait être imputable entièrement à ChatGPT : les développeurs auraient dû prendre la peine d'analyser le code au lieu de se limiter à quelques tests avant la copie. Ces derniers ont reconnu leur faute dans l'affaire.

Source : OpenAI

Et vous ?
En matière de codage, je pense que l'IA dans l'état actuel de son développement, n'offre pas assez d'avantage par rapport aux problèmes qu'elle apporte. Il faut certainement laisser mûrir encore l'IA, et peut-être que l'approche actuelle (LLM) n'est pas la bonne méthode, du moins si on parle de développement.

BàV et Peace & Love.
0  0 
Avatar de ericb2
Membre averti https://www.developpez.com
Le 07/10/2024 à 8:40
" l'accès à GitHub Copilot aide-t-il les développeurs à produire du code plus rapidement ?"

Je n'utilise plus github depuis que Microsoft l'a racheté. Je sais que la visibilité n'est plus la même, mais c'est un choix personnel.

" GitHub Copilot aide-t-il les développeurs à produire un code de meilleure qualité ?"

NON. Microsoft pille le code des petits développeurs.

"GitHub Copilot atténue-t-il l'impact de l'épuisement des développeurs ?"

Il contribue surtout à produire beaucoup en quantité. En qualité, c'est apparemment discutable, et le temps nous en dira plus.

En attendant, je préfère réfléchir avec mon cerveau et tenter d'améliorer ma méthode de travail. J'ai aussi remarqué qu'il est de plus en plus difficile de trouver des réponses aux questions liées à une API. Pour ne citer qu'un exemple, je suis bloqué depuis près d'un an avec l'API (C++ de ffmpeg) et il n'y a pas de réponse claire, y compris sur les forum devs de ffmpeg. Les réponses apportées (probablement par l'IA) ne fonctionnent pas et sont remplies de bugs.
0  0