![](https://www.developpez.com/images/logos/loi.png)
GitHub Copilot, qu'est-ce que c'est ?
Copilot a été lancé en fin juin 2021 dans le cadre d'une Preview technique sur invitation uniquement, promettant de faire gagner du temps en répondant au code des utilisateurs par ses propres suggestions intelligentes. Ces suggestions sont basées sur des milliards de lignes de code public dont les utilisateurs ont publiquement contribué à GitHub, en utilisant un système d'IA appelé Codex de la société de recherche OpenAI.
GitHub décrit Copilot comme l'équivalent IA de la « programmation en paire », dans laquelle deux développeurs travaillent ensemble sur un seul ordinateur. L'idée est qu'un développeur peut apporter de nouvelles idées ou repérer des problèmes que l'autre développeur aurait pu manquer, même si cela nécessite plus d'heures de travail.
Dans la pratique, cependant, Copilot est plutôt un outil utilitaire de gain de temps, qui intègre les ressources que les développeurs devraient autrement chercher ailleurs. Lorsque les utilisateurs saisissent des données dans Copilot, l'outil leur suggère des extraits de code à ajouter en cliquant sur un bouton. Ainsi, ils n'ont pas à passer du temps à chercher dans la documentation de l'API ou à rechercher des exemples de code sur des sites spécialisés.
Quel est le problème avec Copilot ?
Peu après le lancement de la Preview de Copilot en 2021, certains développeurs ont commencé à s'alarmer de l'utilisation d'un code public pour entraîner l'IA de l'outil. L'une des préoccupations est que si Copilot reproduit des parties suffisamment importantes du code existant, il puisse violer les droits d'auteur ou blanchir le code open source dans des utilisations commerciales sans licence appropriée. L'outil peut également reproduire des informations personnelles que les développeurs ont publiées, et dans un cas, il a reproduit le code largement cité du jeu PC Quake III Arena de 1999, y compris le commentaire du développeur John Carmack.
L’utilisateur Hogan a aussi ajouté dans son fil de discussion : « Ce qui serait vraiment drôle, c'est que les gens qui maintiennent des dépôts populaires commençaient à mettre du mauvais code exprès ».
GitHub affirme que les dérapages de Copilot sont rares. Mais un autre utilisateur de Twitter, répondant au post de Ronacher, a écrit : « Et ici nous avons la preuve directe que GitHub reproduit directement un morceau de code sous GPL, ce qui prouve que c'est un outil vraiment dangereux à utiliser dans des environnements commerciaux ». Dans une autre réponse, on peut lire : « Lol, c'est du blanchiment de code… »
Selon le développeur et avocat Matthieu Butterick, Copilot soulève des questions juridiques relatives à la fois à la formation du système et à l'utilisation du système.
Après avoir mené une enquête avec ses confrères, il a décidé en novembre 2022 de porter plainte, décrivant la solution de Microsoft comme un produit d'IA qui « s'appuie sur un piratage de logiciels open source sans précédent » :
Aujourd'hui, nous avons déposé un recours collectif devant le tribunal fédéral américain de San Francisco, en Californie, au nom d'un groupe proposé de millions d'utilisateurs de GitHub. Nous contestons la légalité de GitHub Copilot (et d'un produit connexe, OpenAI Codex, qui alimente Copilot). La poursuite a été déposée contre un ensemble de défendeurs qui comprend GitHub, Microsoft (propriétaire de GitHub) et OpenAI.
En formant leurs systèmes d'IA sur des référentiels publics GitHub (bien que basés sur leurs déclarations publiques, peut-être bien plus), nous soutenons que les accusés ont violé les droits légaux d'un grand nombre de créateurs qui ont publié du code ou d'autres travaux sous certaines licences open source sur GitHub. Quelles licences ? Un ensemble de 11 licences open source populaires qui nécessitent toutes l'attribution du nom de l'auteur et des droits d'auteur, y compris la licence MIT, la GPL et la licence Apache. (Celles-ci sont énumérées dans l'annexe à la plainte.)
En plus d'avoir enfreint les exigences d'attribution de ces licences, nous soutenons que les défendeurs ont enfreint :
En formant leurs systèmes d'IA sur des référentiels publics GitHub (bien que basés sur leurs déclarations publiques, peut-être bien plus), nous soutenons que les accusés ont violé les droits légaux d'un grand nombre de créateurs qui ont publié du code ou d'autres travaux sous certaines licences open source sur GitHub. Quelles licences ? Un ensemble de 11 licences open source populaires qui nécessitent toutes l'attribution du nom de l'auteur et des droits d'auteur, y compris la licence MIT, la GPL et la licence Apache. (Celles-ci sont énumérées dans l'annexe à la plainte.)
En plus d'avoir enfreint les exigences d'attribution de ces licences, nous soutenons que les défendeurs ont enfreint :
- les conditions d'utilisation et les politiques de confidentialité de GitHub ;
- le DMCA § 1202, qui interdit la suppression des informations de gestion des droits d'auteur ;
- la loi californienne sur la protection de la vie privée des consommateurs ;
- et d'autres lois donnant lieu à des réclamations légales connexes.
Microsoft possède GitHub et utilise la technologie générative d'apprentissage automatique d'OpenAI pour alimenter Copilot, qui complète automatiquement le code source pour les ingénieurs à mesure qu'ils saisissent des commentaires, des définitions de fonctions et d'autres invites.
Les plaignants sont donc mécontents que, selon eux, des parties de leur code source libre protégé par le droit d'auteur puissent être fournies - copiées, plutôt - par Copilot à d'autres développeurs pour qu'ils les utilisent, sans qu'ils soient dûment crédités et sans que les autres exigences des licences d'origine soient respectées.
L'affaire a débuté avec un total de 22 plaintes, qui ont été réduites au fur et à mesure que les sociétés défenderesses demandaient à ce que les accusations soient rejetées par le tribunal, demandes que le juge Jon Tigar a pour la plupart acceptées.
Dans une ordonnance rendue publique le vendredi 5 juillet, le juge Tigar a statué sur une nouvelle série de plaintes des plaignants et, dans l'ensemble, il a donné gain de cause à GitHub, à Microsoft et à OpenAI. Trois plaintes ont été rejetées et une seule a été maintenue. D'après le décompte des avocats de Microsoft et de GitHub, il ne reste plus que deux allégations au total.
Les plaintes les plus récemment rejetées étaient relativement importantes, l'une d'entre elles portant sur une infraction au Digital Millennium Copyright Act (DMCA), section 1202(b), qui stipule essentiellement que vous ne devez pas supprimer sans permission des informations cruciales relatives à la « gestion des droits d'auteur », telles que, dans ce contexte, l'identité de l'auteur du code et les conditions d'utilisation, comme les licences tendent à l'exiger. Dans le cadre de l'action collective, il a été avancé que Copilot supprimait ces informations lorsqu'il proposait des extraits de code des projets des utilisateurs, ce qui, selon eux, constituait une violation de l'article 1202(b).
Le juge n'a toutefois pas été d'accord, estimant que le code proposé par Copilot n'était pas suffisamment identique au travail des développeurs, protégé par le droit d'auteur, et que l'article 1202(b) ne s'appliquait donc pas. En effet, l'année dernière, GitHub aurait réglé son assistant de programmation pour qu'il génère de légères variations du code de formation ingéré, afin d'éviter que son résultat ne soit accusé d'être une copie exacte d'un logiciel sous licence.
Les plaignants ne seront pas en mesure de présenter une nouvelle plainte au titre de l'article 1202(b) du DMCA, le juge Tigar ayant rejeté l'allégation avec préjudice.
Les développeurs ont insisté à plusieurs reprises sur le fait que Copilot pouvait générer, et générerait, du code identique à ce qu'ils avaient eux-mêmes écrit, ce qui constitue un pilier essentiel de leur action en justice puisque leur plainte en vertu de la loi sur le droit d'auteur (DMCA) est subordonnée à une exigence d'identité. Toutefois, le juge Tigar a estimé que les plaignants n'avaient pas démontré l'existence d'un tel cas, ce qui a entraîné le rejet de la plainte avec la possibilité de la modifier.
La plainte modifiée soutenait que la copie illégale de code était inévitable si les utilisateurs désactivaient l'interrupteur de sécurité anti-duplication de Copilot, et citait également une étude sur le code généré par l'IA pour tenter d'étayer leur position selon laquelle Copilot plagiait les sources, mais une fois de plus, le juge n'a pas été convaincu que le système de Microsoft volait le travail des gens de manière significative.
Plus précisément, le juge a cité l'observation de l'étude selon laquelle Copilot « émet rarement du code mémorisé dans des situations bénignes, et la plupart de la mémorisation ne se produit que lorsque le modèle a été invité avec de longs extraits de code qui sont très similaires aux données d'entraînement ».
« En conséquence, l'appui des plaignants sur une étude qui, tout au plus, affirme que Copilot peut théoriquement être incité par un utilisateur à générer une correspondance avec le code de quelqu'un d'autre n'est pas convaincant », conclut-il.
Implications
Cette décision a des implications majeures :
- Légitimité de l’IA dans le développement : La décision renforce l’utilisation de l’IA pour accélérer le développement logiciel. Cependant, elle soulève également des questions sur la responsabilité et la transparence.
- Licences open source : La communauté des développeurs doit réfléchir à la manière dont les licences open source sont respectées par les outils d’IA comme Copilot. Devrions-nous exiger un crédit explicite pour le code généré ?
- Équilibre entre innovation et droits d’auteur : Comment pouvons-nous encourager l’innovation tout en protégeant les droits d’auteur des créateurs ? Cette affaire met en lumière ce dilemme.
En fin de compte, la décision du juge a des répercussions sur l’avenir de l’IA dans le développement logiciel. La communauté des développeurs doit continuer à débattre et à trouver des solutions équilibrées pour le bien de tous.
Sources : décision de justice (au format PDF), Quantifying Memorization Across Neural Language Models
Et vous ?
![:fleche:](https://www.developpez.net/forums/images/smilies/fleche.gif)
![:fleche:](https://www.developpez.net/forums/images/smilies/fleche.gif)
![:fleche:](https://www.developpez.net/forums/images/smilies/fleche.gif)
![:fleche:](https://www.developpez.net/forums/images/smilies/fleche.gif)