Des fonctions entières, des API et des lignes de codes : c’est ce que promet d’écrire tout seul Copilot, l’intelligence artificielle de Github et d’OpenAI. Dévoilée la semaine dernière, Copilot est présentée comme le futur de l’informatique par ses créateurs, un outil de « programmation en binôme avec une intelligence artificielle » qui permettrait de réduire le temps de programmation. La promesse de Copilot est immense : le logiciel comprendrait le contexte du code et s’adapterait même au style des développeurs qui l’utilisent.
Pourtant, à peine annoncée, l’arrivée de Copilot crée déjà des remous et alimente de nombreux débats dans la communauté des codeurs. De la députée européenne Julia Reda aux innombrables publications de blog, lives Twitch, vidéos YouTube ou encore sujets de forum, sur Internet, de nombreux experts ou testeurs s’épanchent sur le sujet. Pas assez fiable, pleine d’erreurs, manque de compréhension, de réflexion, problèmes de licence, ou encore fin de l’inventivité dans le code : la liste des défauts et des reproches adressés au logiciel est longue. Mais pourquoi en veut-on autant à Copilot ?
Les promesses impressionnantes de Copilot
Qu’est-ce que Copilot ? Développée par la plateforme Github et par OpenAI, une entreprise spécialisée dans la conception d’intelligences artificielles, Copilot est présentée comme une fonctionnalité révolutionnaire. Dévoilé le 29 juin par Github, Copilot promet d’aider les développeurs et développeuses à écrire plus vite, notamment en leur proposant des bouts de code, voire des fonctions entières, et ainsi d’automatiser toute une partie du processus.
Sur son site, Github Copilot se vante de pouvoir automatiser certaines tâches répétitives, de proposer du code basé sur les commentaires des développeurs, de comprendre le contexte d’un projet afin de s’adapter, d’apprendre le style des développeurs afin de s’ajuster à leur façon de travailler, ou encore de savoir quoi proposer aux utilisateurs qui seraient bloqués.
Copilot fonctionne sur l’intelligence artificielle Codex, développée par OpenAI et entraînée sur plusieurs milliards de lignes de code en open source, est-il expliqué sur le site dédié. Le logiciel saurait même écrire en plusieurs langages, comme le Python, le JavaScript, le TypeScript, le Ruby, et le Go, toujours selon les concepteurs de Copilot.
Bref, les promesses de Copilot sont particulièrement impressionnantes. Pour l’instant, cependant, le logiciel n’est pas encore disponible pour le grand public : seuls quelques développeurs inscrits à la technical preview ont pu mettre leur main sur l’outil, et commencent à faire part de leurs impressions, petit à petit. Si beaucoup sont d’accord pour dire que Copilot va beaucoup changer de choses dans le domaine de l’informatique, tous ne s’accordent pas sur un point en particulier : est-ce pour le meilleur, ou pour le pire ?
Résoudre des « problèmes de niche »
La première question à laquelle il faut répondre est : Copilot remplit-il ses promesses ? Le logiciel permet-il d’écrire mieux, plus vite ? Suggère-t-il des fonctions et des bouts de codes pertinents pour le projet, comprend-il le contexte ?
Pour les développeurs et développeuses que nous avons interrogés, les réponses varient. Copilot est d’ores et déjà un outil qui a une certaine utilité. « Copilot est très bon pour trouver des solutions à des problèmes universels, ou pour résoudre certains problèmes de niche — comme ce qu’on fait sur Stack Overflow », explique Kyle, un développeur américain qui a pu avoir accès à la technical preview, et avec qui Numerama a échangé. Sur internet, ils sont nombreux à partager son avis. « Je trouve qu’il marche vraiment très bien en tant qu’outil d’autocompletion », estime une personne interviewée par le journal spécialisé Infoworld, « l’outil devient de plus en plus intelligent », reconnait InfoQ, « il peut vraiment vous aider à écrire des passages répétitifs », raconte un autre testeur sur son blog.
« Mais au final, Copilot ne va pas pouvoir faire beaucoup plus, et tout cela ne vous mènera à rien si vous ne comprenez pas le code qu’il suggère », complète Kyle. Copilot est, pour l’instant, un outil trop limité. « Il n’est pas du tout fiable pour le moment. Copilot est capable d’utiliser des attributs de votre codebase et de vraies méthodes, mais il lui arrive aussi régulièrement de faire des choses qui n’ont pas de sens », continue Kyle.
Bien sûr, il ne faut pas oublier que Copilot est encore dans sa phase de technical preview, une étape justement dédiée aux tests et aux dernières améliorations à amener au produit. Sans compter sur le fait que plus l’IA s’entraînera avec des codeurs et des développeurs, plus elle sera pertinente. Il y a de fortes chances pour que les erreurs les plus banales qui ont pour l’instant été repérées ne soient plus reproduites.
Mais ce n’est pas le seul point noir de Copilot.
Beaucoup de limitations
Pour l’ingénieur Stanislas Signoud, Copilot fluctue entre un outil « très impressionnant et presque dangereux par moment ». « Quand on regarde les suggestions que Copilot fait, je me demande si c’est responsable de fournir un outil aux gens sans vraiment les informer de la faible qualité du rendu », assène-t-il. Une opinion particulièrement sévère, mais qui est partagée par plusieurs autres ingénieurs ou spécialistes.
Tout d’abord, parce qu’il existe des exemples flagrants où Copilot ne marche pas du tout, alors que ce sont des problèmes simples. Stanislas Signoud a ainsi repéré de nombreuses erreurs. « Sur l’un des exemples donnés par Github sur le fonctionnement de Copilot, j’ai remarqué qu’une URL avait mal été construite pour une API. C’était quelque chose de pas du tout fonctionnel, je me suis dit que ce n’était pas possible d’appliquer ça », regrette-t-il.
Les conséquences de ces mauvaises écritures peuvent se retrouver dans de très nombreuses lignes de codes, ce qui pourrait, in fine, rallonger le travail des programmeurs plus qu’autre chose. Au final, avec Copilot « les bugs se transmettent plus vite que la pensée », estime le média spécialisé dans l’informatique InfoQ.
« L’autre limite technique à prendre en compte, c’est que si on utilise autre chose que du Python ou du Java, il se peut que ça ne soit pas optimal. Copilot n’a pas eu le corpus nécessaire pour que ça marche », explique Stanislas Signoud. Même son de cloche chez Kyle, qui travaille sur Rust : « J’ai essayé Copilot sur Rust, mais j’ai trouvé à chaque fois que le code qu’il proposait était très mauvais ».
Ce n’est pas vraiment une surprise : Github a reconnu de lui-même que Copilot marchait mieux sur les langages très utilisés, ceux sur lesquels il a pu, logiquement, le plus s’entrainer. Mais ce manque d’entrainement sur certains langages pourrait avoir une conséquence directe sur de nombreux projets dans le futur : « Cela risque de pousser les développeurs à rester sur des langages très communs, donc ça pourrait avoir plein d’impacts qu’on ne mesure pas encore », continue Stanislas Signoud.
Des lignes de code en copyleft ?
Un autre reproche qui est fait à Copilot concerne la provenance du code qu’il propose à ses utilisateurs. Et cela représente l’un des plus épineux problèmes auquel la plateforme doit faire face. La raison à tout cela est pourtant due à ce qui fait la force de Copilot : le fait que l’intelligence artificielle se soient entrainée avec les milliards de lignes de codes en open source, dont certains repositories (des dépôts où l’on stocke les données d’un projet et les fichiers partagés) hébergés publiquement sur Github.
Contrairement à ce à quoi on aurait pu s’attendre, c’est bien le caractère open source qui pose problème ici. En effet, un code mis en open source est accessible à tout le monde gratuitement. Cependant, l’utilisation qui peut en être faite est contrôlée. C’est notamment le cas pour des logiciels sous licence copyleft : leur code est accessible gratuitement, et peut être réutilisé, mais seulement à condition que le produit pour lequel il est utilisé soit, à la fin, accessible lui aussi gratuitement.
«Le coeur du problème, c’est les données utilisées par Copilot »
Or, le problème avec Copilot, c’est qu’on ne peut pas savoir si les bouts de code ou les fonctions qu’il propose sont des créations originales, ou bien des copiés-collés de codes trouvés dans les archives open source — et donc potentiellement sous copyleft.
« Le cœur du problème, ce sont les données utilisées par Copilot, et comment elles sont traitées », nous explique Me Bérénice Ferrand, avocate spécialisée dans le droit de la propriété intellectuelle. « Est-ce que Copilot produit des lignes de codes originales ? Ou bien se contente-t-il de recracher, telles quelles, des lignes et des fonctions sur lesquelles il s’est entraîné et qu’il a recopiées ? ».
Contacté, Github nous a précisé qu’ils ne répondaient pas aux questions pour l’instant, mais qu’ils allaient rendre disponibles plus d’informations au sujet de la conception de l’intelligence artificielle « au cours des prochains mois ». Pour le moment, impossible de savoir d’où proviennent les lignes de code suggérées par Copilot. Et, à moins de faire des comparaison manuelles, il n’y a pas vraiment de façon de savoir pour sûr si elles sont bien originales.
Le fait que Copilot puisse, un jour, devenir payant, rajoute un autre problème à ce casse tête juridique : que faire si les utilisateurs se sont servis, sans le savoir, d’extraits de code sous licence copyleft ? Si Copilot leur a proposé un copié collé d’une fonctionnalité sous copyleft, et qu’une développeuse s’en sert sur un projet qui n’est pas en open source, comment régler ce problème juridiquement ?
Pas de cadre légal
Surtout, pour l’instant, il n’y a pas encore de cadre légal en France qui puisse protéger les utilisateurs ou les concepteurs d’un logiciel tel que Copilot. « Il existe pour l’instant une directive de l’Union européenne qui autorise le data mining, donc la recherche et l’analyse de données », indique Me Ferrand. Cette directive offre un cadre légal pour les entreprises qui utiliseraient Copilot, « qui permet d’avoir une approche sereine », complète-t-elle.
Mais, pour l’instant, cette directive n’existe pas encore juridiquement. « L’état actuel du droit français ne protège pas totalement les utilisateurs de logiciels comme Copilot », explique-t-elle. Même si le data mining (analyser un large nombre de données pour en extraire des informations intéressantes) n’est techniquement pas autorisé par la loi sur la propriété intellectuelle, il y a indulgence. « Mais étant donné qu’il n’y a pour l’instant aucune information sur comment Copilot compile ces lignes de codes, ni sur l’origine des lignes sur lesquelles il s’est entrainé, il y a tout de même un risque pour les utilisateurs. Il est vraiment difficile de savoir ce que cela pourrait impliquer. »
Ce manque de cadre légal ne sera cependant peut-être pas un problème sur le long terme : la France doit transposer dans son corpus législatif la directive de l’Union européenne. Il n’y a pour l’instant pas encore de date définie pour la transposition de la directive, même si Me Ferrand pense que cela pourrait arriver prochainement. Mais le flou juridique n’incite pas vraiment la confiance.
Quel futur pour Copilot ?
En dehors de toutes les limites techniques et juridiques, le dernier frein que rencontre Copilot, c’est surtout les craintes et les avis des développeurs eux-mêmes. Loin d’être enthousiastes à l’idée de pouvoir être assistés par une intelligence artificielle, certains se montrent vraiment réticents. Stanislas Signoud est catégorique : « Les intelligences artificielles ne pourront jamais remplacer les développeurs, il n’y a pas à avoir peur de ça.»
D’autres encore critiquent le fait que Github « se fout » de toute la culture du libre, en prenant pour exemple les problèmes autour du copyleft et les libertés qu’ils ont pris en entrainant leur IA sur les codes open sources des utilisateurs de la plateforme. « Je trouve ça un peu casse-gueule de la part de Github de prendre des données qui sont ouvertes à tout le monde pour en faire un service qu’il va facturer pour régurgiter des données qu’ils ont eues gratuitement », continue Stanislas.
Mais, qu’on soit d’accord ou pas avec les méthodes de Github et la façon d’utiliser Copilot, il y a de plus en plus de logiciels d’assistance à la programmation, et ils gagnent toujours plus en popularité. Cela fait déjà quelques années que l’outil IntelliCode de Microsoft est sorti, et il repose un peu sur le même fonctionnement, en suggérant des bouts de code aux développeurs. Pour l’instant, Stanislas Signoud estime que Copilot restera certainement un logiciel niche, et peu utilisé pendant les 5 ou 10 prochaines années. «Tant qu’il y aura de gros problèmes au niveau du code, cela ne sera pas adopté en masse. Mais on peut déjà imaginer un outil qui pourrait chercher pour nous des réponses sur Stack Overflow, ça ferait gagner beaucoup de temps », explique-t-il.
Quoi qu’il en soit, le mouvement est déjà en marche depuis des années, et ne va certainement pas s’arrêter là : Copilot est peut-être la première intelligence artificielle d’assistance à la programmation, mais ne sera certainement pas la dernière.
+ rapide, + pratique, + exclusif
Zéro publicité, fonctions avancées de lecture, articles résumés par l'I.A, contenus exclusifs et plus encore.
Découvrez les nombreux avantages de Numerama+.
Vous avez lu 0 articles sur Numerama ce mois-ci
Tout le monde n'a pas les moyens de payer pour l'information.
C'est pourquoi nous maintenons notre journalisme ouvert à tous.
Mais si vous le pouvez,
voici trois bonnes raisons de soutenir notre travail :
- 1 Numerama+ contribue à offrir une expérience gratuite à tous les lecteurs de Numerama.
- 2 Vous profiterez d'une lecture sans publicité, de nombreuses fonctions avancées de lecture et des contenus exclusifs.
- 3 Aider Numerama dans sa mission : comprendre le présent pour anticiper l'avenir.
Si vous croyez en un web gratuit et à une information de qualité accessible au plus grand nombre, rejoignez Numerama+.
Abonnez-vous à Numerama sur Google News pour ne manquer aucune info !