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 !

Les assistants de programmation basés sur l'IA incitent à repenser l'enseignement de l'informatique
Selon des chercheurs

Le , par Bruno

21PARTAGES

10  0 
Brett A. Becker, professeur adjoint à l'University College Dublin en Irlande, a fourni des copies de prépublication de deux articles de recherche explorant les risques et les opportunités pédagogiques des outils d'IA pour générer du code de programmation. Selon les experts, les enseignants doivent faire face aux opportunités et aux risques liés à l'utilisation des assistants de programmation basés sur l'IA.

Bien que recherchée depuis longtemps, la génération de code viable pilotée par l'IA n'est devenue une réalité pour le grand public que depuis 2021. Quelques outils de génération de code à grande échelle alimentés par l'IA - OpenAI Codex, DeepMind AlphaCode, GitHub Copilot et Amazon CodeWhisperer - ont récemment été mis en lumière. Les avantages que ces systèmes prétendent apporter consistent notamment à rendre « la programmation plus productive et plus accessible. » Ils présentent également plusieurs défis.


Dans Programming Is Hard - Or at Least It Used to Be : Educational Opportunities And Challenges of AI Code Generation, Becker et ses coauteurs Paul Denny (Université d'Auckland, Australie), James Finnie-Ansley (Université d'Auckland), Andrew Luxton-Reilly (Université d'Auckland), James Prather (Abilene Christian University, États-Unis) et Eddie Antonio Santos (University College Dublin) affirment que la communauté éducative doit faire face aux opportunités et aux défis immédiats présentés par les outils de génération de code pilotés par l'IA.

Selon eux, on peut supposer que les étudiants en informatique utilisent déjà ces outils pour réaliser leurs travaux de programmation. Par conséquent, les politiques et les pratiques qui reflètent la nouvelle réalité doivent être élaborées le plus tôt possible.

Codex OpenAI

En septembre 2021, le New York Times a publié un article intitulé « L'I.A. peut maintenant écrire son propre code informatique. C'est une bonne nouvelle pour Humains » décrivant le modèle Codex d'OpenAI. OpenAI est un laboratoire de recherche en intelligence artificielle (IA) composé de la société à but lucratif OpenAI LP et de sa société mère, la société à but non lucratif OpenAI Inc. L'entreprise, considérée comme un concurrent de DeepMind (entreprise spécialisée dans l'intelligence artificielle appartenant à Google), mène des recherches dans le domaine de l'IA avec l'objectif déclaré de promouvoir et de développer une IA conviviale d'une manière qui profite à l'humanité dans son ensemble.

Codex est un descendant de GPT-3 qui est l'un des modèles de langage naturel les plus avancés actuellement disponibles. Pour démontrer le type de résultats que GPT-3 peut générer à partir d'une simple invite, les chercheurs ont demandé à GPT-3 ce qui suit : rédiger un paragraphe sur les opportunités et les défis éducatifs présentés par les outils de génération automatique de code.

Sa réponse a été la suivante :

Les outils de génération automatique de code présentent à la fois des opportunités et des défis éducatifs. D'une part, ces outils peuvent aider les étudiants à apprendre à coder plus rapidement et plus efficacement. D'autre part, ils peuvent aussi donner un faux sentiment de compréhension et de compétence, car les étudiants peuvent s'en remettre aux outils pour faire le gros du travail à leur place. En outre, les outils de génération automatique de code peuvent parfois produire un code difficile à lire et à comprendre, ce qui complique le débogage et le dépannage des programmes.

Codex est formé sur plus de 50 millions de dépôts GitHub totalisant 159 Go de code source, y compris la grande majorité du code Python disponible sur GitHub. Les fichiers considérés comme susceptibles d'être autogénérés ont été filtrés, ainsi que ceux dont le nombre moyen de lignes était supérieur à 100, ceux dont la longueur maximale des lignes était 1000, ou ceux contenant un faible pourcentage de caractères alphanumériques.

Codex peut prendre des invites en anglais et générer du code dans plusieurs langages de programmation, notamment JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript et shell, mais il serait « plus performant » en Python.

DeepMind AlphaCode

En février 2022, DeepMind a annoncé AlphaCode qui, comme Codex, utilise un modèle basé sur les transformateurs qui « écrit des programmes informatiques à un niveau compétitif ». Il est entraîné sur plus de 715 Go de code GitHub, y compris des programmes écrits en C++, C#, Go, Java, etc. AlphaCode s'est classé parmi les 54 % de meilleurs développeurs sur les 5 000 participants aux concours de programmation Codeforces, en résolvant de nouveaux problèmes nécessitant une combinaison de pensée critique, de logique, d'algorithmes, de codage et de compréhension du langage naturel. AlphaCode n'est pas actuellement disponible sous forme d'API ou autre.

Amazon CodeWhisperer

Amazon CodeWhisperer a été annoncé en juin 2022. Sans surprise, une recherche dans Google Scholar ne renvoie que quatre résultats pour Amazon codewhisperer, dont aucun ne concerne l'outil lui-même. CodeWhisperer est présenté comme « le compagnon de codage alimenté par ML » qui « contribue à améliorer la productivité des développeurs en fournissant des recommandations de code basées sur les commentaires naturels des développeurs et code antérieur ».

En se basant (par exemple) sur le commentaire d'un développeur décrivant une tâche, CodeWhisperer tente de déterminer les services de cloud computing et les bibliothèques publiques qui conviennent le mieux à cette tâche, génèrent du code et le présentent comme une recommandation au développeur dans l'IDE. Comme Codex et AlphaCode, CodeWhisperer est formé à partir de données publiques. Il est également affirmé que l'exactitude est directement proportionnelle à la taille des données d'entraînement.

Autres produits de génération de code d'IA

Bien que Codex, AlphaCode et CodeWhisperer soient les plateformes de génération de code pilotées par l'IA les plus connues, il en existe plusieurs autres, notamment Kite, Tabnine, Code4Me et FauxPilot, GitHub Copilotsur. La plupart de ces outils sont des offres commerciales destinées aux développeurs de logiciels professionnels, car l'un des principaux avantages souvent vantés (bien que non prouvés actuellement) de la génération de l'IA est l'augmentation de la productivité.

Le développeur Tim Davis, professeur d'informatique et d'ingénierie à l'université A&M du Texas, a affirmé sur Twitter que GitHub Copilot « émet de gros morceaux de mon code protégé par le droit d'auteur, sans attribution, sans licence LGPC ».

Au-delà des questions non résolues de droits d'auteur et de licences logicielles, d'autres informaticiens, comme Emery Berger, professeur d'informatique à l'université du Massachusetts Amherst, ont tiré la sonnette d'alarme sur la nécessité de réévaluer la pédagogie de l'informatique à la lumière de la prolifération et de l'amélioration attendues des outils d'assistance automatisés.

« Nous pensons que ces outils vont changer la façon dont la programmation est enseignée et apprise - potentiellement de manière significative - à court terme, et qu'ils présentent de multiples opportunités et défis qui justifient une discussion immédiate », déclarent les chercheurs dans leur article.

Source : Pre-publication copies of two research papers exploring the educational risks and opportunities of AI tools for generating programming code, Brett A. Becker, assistant professor at University College Dublin in Ireland

Et vous ?

Trouvez-vous cette étude pertinente ?

Quel est votre avis sur le sujet ?

Voir aussi :

GitHub Copilot, l'assistant de programmation basé sur l'IA, sous le feu des critiques, un développeur affirme qu'il émet de nombreux bouts de son code protégé par le droit d'auteur

Copilot, l'outil d'IA commercial de GitHub, est critiqué par la communauté du logiciel open source, pour sa reproduction aveugle des blocs de code

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

Avatar de Shalien
Nouveau membre du Club https://www.developpez.com
Le 04/11/2022 à 9:25
Citation Envoyé par yahiko Voir le message
En même temps, ceux qui développent en Open Source ne devraient pas s'étonner de voir leur code "pillé". C'est très naïf sinon.
Je ne comprends pas trop cette remarque, open source ne veux pas forcément dire libre. Par exemple, certains de mes codes sur GitHub sont soumis à une licence interdisant leur usage dans un produit commercial sans mon accord écrit.

Oui le pillage est existant et se fait aussi bien au niveau des grands groupes que des petits développeurs mais de là à dire que c'est "normal" et "naïf" de croire que les gens vont respecter les licences je trouve ça aberrant.

En appliquant cette logique aux logiciels commerciaux, ça revient à dire que le piratage est ok ou alors peut être que ça ne s'applique qu'aux produits opensource parce que ils sont open source ?
12  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 23/10/2022 à 16:10
La génération de code existe depuis longtemps. On n'a pas attendu d'avoir des IA pour en faire. Rappelez-vous les éditeurs de code WYSIWYG : on place des blocs dans une fenêtre (champs, boutons, etc.) et il génère le code qui permet de créer ces objets avec ce layout. Un code imbuvable mais qui fait le job.

La génération de code a toujours eu ce soucis de maintenabilité : du code écrit pour la machine doit être maintenu par la machine. Pour que ce soit maintenu par un humain, ce doit être écrit pour un humain. Ce n'est pas juste le résultat qui doit être pour l'humain, mais le code aussi. Les solutions d'IA permettent de faire un pas de plus dans ce sens, car elles permettent de reproduire des pratiques humaines, mais sans régler le problème : elles n'ont pas la logique humaine qui permet de composer tous ces bouts de code pris à droite à gauche. Elles peuvent reproduire un résultat (syntaxe) mais sans en reproduire le raisonnement (sémantique). Il s'agit donc de juger de la pertinence d'une suggestion sur la forme et non sur le fond. On se contente de reproduire ce qu'on a vu, y compris ses erreurs, sans pouvoir faire le tri. C'est là toute la limite des outils d'IA.

Bref, rien de nouveau sous le soleil : la génération de code a toujours les même problèmes, on vient juste combler quelques trous pour que ça se voit moins.
5  0 
Avatar de kain_tn
Expert éminent https://www.developpez.com
Le 04/11/2022 à 9:30
Citation Envoyé par yahiko Voir le message
En même temps, ceux qui développent en Open Source ne devraient pas s'étonner de voir leur code "pillé". C'est très naïf sinon.
Tu as quand même une licence autour.

C'est comme pour les peintures ou les photos: tout le monde peut les voir, les prendre en photo, mais les modifier pour faire des thunes dessus dans un contexte autre que le "fair-use", c'est un illégal.

Mais dans le fond, tu as raison: c'est naïf de croire que tout le monde respecte les licences, en commençant par les GAFAM.
4  0 
Avatar de Zefling
Expert confirmé https://www.developpez.com
Le 04/11/2022 à 10:03
Open Source ne veut pas dire libre non plus. Par exemple, le code de l'Unreal Engine est open source, mais il est tout sauf libre. Et je pense pas que Epic soit d'accord pour qu'on y récupère quoi que soit.

Quoi qu'il en soit, s'il y a des licences c'est pas pour rien. Sinon autant rentre tout code libre et sans licences. Mais je suis pas sur que les logiciels en sources fermés sur Github soit ok pour que leurs repos privés ne le soit plus.
3  0 
Avatar de onilink_
Membre chevronné https://www.developpez.com
Le 04/11/2022 à 13:48
Un truc qui m’énerve beaucoup avec le machine learning, c'est que si tu n'es pas d'accord pour être inclus dans leurs bases de données, tu n'as aucun recours, ou juste aucun moyen de le faire savoir.
Ça serait bien d'avoir des licences qui interdisent explicitement du contenu d'être utilisées en tant que données d’entraînement. Ou un équivalent des robots.txt pour spécifier certaines contraintes.

Puis comme toujours, qui c'est que ça avantage? Qui est capable d’entraîner des modèles titanesques? Certainement pas de petites entreprises avec un budget limité.
Les petits se font toujours piller par les gros, et ce n'est pas près de s'arrêter avec l'IA, bien au contraire...
3  0 
Avatar de Galet
Membre averti https://www.developpez.com
Le 23/10/2022 à 9:47
Quand les correcteurs seront aussi issue de l'IA, peut-être se reconnaitront-elles ?
D'ailleurs lorsque ces programmes serviront à nourrir des machines, la mixture "artificielle" sera parfaitement digérée et la boucle sera bouclée ...
2  0 
Avatar de Dymmm
Membre habitué https://www.developpez.com
Le 04/11/2022 à 12:22
Citation Envoyé par micka132 Voir le message
Mais est-on dans ce cas là? Ici on est sur des bouts de code, qui probablement ressorte s'ils existent en n exemplaires.
Par exemple une simple boucle for, ou un bout de code que tout le monde utilise pour aller lire un fichier.
J'imagine que la licence ne peut pas s'appliquer à des bouts de codes non fonctionnel en l'état. Sinon on peut tout aussi bien arrêter de coder car il y a forcement un code "for(int i=0;i<table.length;i++) qui est sous une licence quelque part.

Dans le cas de bout de code plus conséquent, le problème est probablement plus réel, même si sans être une seconde hypocrite, 99.99% des devs vont récupérer, à un moment ou un autre, des bouts de code plus ou moins conséquent à droite à gauche en faisant un simple copier coller sans se poser la question de la licence. Peut-être est-ce un tord, mais dans la majorité des cas la licence ne se pose que lorsqu'on utilise un logiciel ou une bibliothèque, et dans une minorité même les gens s'assoient littéralement dessus.
Dans le cas de Copilot je peux certifier que, moyennant une description correcte, il est capable de te sortir une fonction complète. Ce n'est plus des bout de code, mais des implémentations d'algorithme entier. La moindre des choses serait de ne piocher que dans les projets qui autorise la réutilisation de code sans limitation.
2  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 04/11/2022 à 14:27
Pour ma part, tous mes codes sont en CC0, donc n'importe qui peut faire ce qu'il veut avec. Des licences comme ça il y en a d'autres. Ils pourraient tout à fait se limiter à exploiter des codes qui ont ce type de licence pour éviter tout problème. Donc la critique me semble justifiée, même d'un point de vue pratique.
2  0 
Avatar de defZero
Membre extrêmement actif https://www.developpez.com
Le 10/11/2022 à 22:45
... Bref, c'est un peu du foutage de gueule.
onilink_
Oui, complètement, mais pas plus que le système de brevets ou la notion de propriété intellectuelle si l'on y réfléchit.
Pour le système de brevet, je veut bien concevoir que l'on accorde une sorte de rémunération, pour un temps donné, à un inventeur mais actuellement, le système en place ne respect pas ce principe (cf. les brevets de design sur les bords arrondies et autres).
En ce qui concerne la propriété intellectuelle, c''est encore pire, puisque l'on veut attribué une pensée à quelques un et les rémunérer parce qu'ils se déclares les premiers à l'avoir eu.
Vous avouerez qu'en y réfléchissant, c'est quand même très con, non ?
2  0 
Avatar de archqt
Membre chevronné https://www.developpez.com
Le 21/10/2022 à 16:36
Une fois le code compilé, comment tu fais pour savoir si une partie n'est pas une copie d'un code GPL ? pas possible
1  0