Aller au contenu

GitHub Copilot

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 26 mars 2023 à 15:31 et modifiée en dernier par Lulucmy (discuter | contributions) (Créé en traduisant la page « GitHub Copilot »). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
GitHub Copilot
Description de l'image GitHub Copilot logo.svg.

Informations
Développé par OpenAI, GitHub
Première version Voir et modifier les données sur Wikidata
Système d'exploitation Microsoft Windows, Linux et macOSVoir et modifier les données sur Wikidata
Type Logiciel en tant que serviceVoir et modifier les données sur Wikidata
Site web github.com/features/copilotVoir et modifier les données sur Wikidata

GitHub Copilot est une extension d'environnement de développement intégré (IDE) basé sur l'intelligence artificielle et développé par GitHub et OpenAI pour aider les développeurs en complétant automatiquement le code[1].

Disponible par abonnement pour les développeurs individuels et les entreprises, l'outil a été annoncé pour la première fois le 29 juin 2021 et a été entrainé sur un grand nombre de dépôts publiques GitHub[2].

Historique

Le 29 juin 2021, GitHub a annoncé GitHub Copilot pour un aperçu technique dans l'environnement de développement Visual Studio Code[3].

GitHub Copilot a été publié en tant que plugin sur le marché JetBrains le 29 octobre 2021[4].

GitHub a annoncé la disponibilité de Copilot pour l'IDE Visual Studio le 29 mars 2022[5].

Le 21 juin 2022, GitHub a annoncé que Copilot n'était plus en "aperçu technique" et est disponible en tant que service par abonnement pour les développeurs individuels[6].

Caractéristiques

GitHub Copilot est capable de générer un code de solution lorsqu'on lui fournit un problème de programmation en langage naturel. Il est également capable de décrire un code d'entrée en anglais et de traduire ce code dans un langage de programmation différent[7].

L'outil inclut des fonctionnalités d'aide au développement, telles que la conversion des commentaires de code en code exécutable et la saisie semi-automatique de morceaux de code, des sections de code répétitives, des méthodes et fonctions entières[8].

D'après GitHub, la fonctionnalité de saisie semi-automatique de Copilot est précise environ la moitié du temps. En ayant seulement l'en-tête d'une fonction Python, par exemple, Copilot a correctement complété le reste du code de la fonction 43 % du temps au premier essai et 57 % du temps après dix tentatives[9].

GitHub indique que les fonctionnalités de Copilot permettent aux développeurs d'utiliser des framework et des langages de programmation inconnus en réduisant le temps passé à lire la documentation[9].

Mise en œuvre

GitHub Copilot est alimenté par Codex d'OpenAI[10], qui est une version modifiée de Generative Pre-trained Transformer 3 (GPT-3), un modèle de langage utilisant l'apprentissage en profondeur pour produire un texte de type humain. [11] Le modèle Codex est en outre formé sur des gigaoctets de code source dans une douzaine de langages de programmation.

Le modèle Codex de Copilot est entrainé sur une sélection de dépôts publics GitHub et d'autres codes sources accessibles au public[9]. Cela inclut un ensemble de données filtré de 159 gigaoctets de code Python provenant de 54 millions de dépôts GitHub publics[12].

Le modèle GPT-3 d'Open AI est concédé sous licence exclusive à Microsoft, la société mère de GitHub. [13]

Réception

Depuis la sortie de Copilot, il y a eu des inquiétudes quant à son impact sur la sécurité et l'éducation, ainsi qu'une controverse sur les licences entourant le code qu'il produit. [14] [7]

Controverse sur les licences

Alors que le PDG de GitHub, Nat Friedman, a déclaré en juin 2021 que "former les systèmes ML sur les données publiques est un usage loyal ", [15] un recours collectif déposé en novembre 2022 a qualifié cette "pure spéculation", affirmant qu'"aucun tribunal n'a examiné la question de savoir si "la formation des systèmes de ML sur les données publiques est une utilisation équitable". " [16] Le procès du cabinet d'avocats Joseph Saveri, LLP conteste la légalité de Copilot sur plusieurs réclamations, allant de la rupture de contrat avec les utilisateurs de GitHub à la violation de la vie privée en vertu du CCPA pour le partage de PII . [17] [16]

GitHub admet qu'une petite proportion de la sortie de l'outil peut être copiée textuellement, ce qui fait craindre que le code de sortie ne soit pas suffisamment transformateur pour être classé comme usage loyal et puisse enfreindre le droit d'auteur du propriétaire d'origine. [14] En juin 2022, le Software Freedom Conservancy a annoncé qu'il mettrait fin à toutes les utilisations de GitHub dans ses propres projets, [18] accusant Copilot d'ignorer les licences de code utilisées dans les données de formation. [19] Dans un message d'assistance à la clientèle, GitHub a déclaré que "la formation de modèles d'apprentissage automatique sur des données accessibles au public est considérée comme une utilisation équitable dans l'ensemble de la communauté d'apprentissage automatique",  mais le recours collectif a qualifié cela de "faux" et a en outre noté que "quel que soit le niveau d'acceptation de ce concept dans" la communauté de l'apprentissage automatique ", en vertu de la loi fédérale, il est illégal". [16]

Livres blancs de la FSF

Le 28 juillet 2021, la Free Software Foundation (FSF) a publié un appel à livres blancs financé sur des questions philosophiques et juridiques autour de Copilot. [20] Donald Robertson, responsable des licences et de la conformité de la FSF, a déclaré que "Copilot soulève de nombreuses [...] questions qui nécessitent un examen plus approfondi". [20] Le 24 février 2022, la FSF a annoncé avoir reçu 22 articles sur le sujet et, à l'aide d'un processus d'examen anonyme, a choisi 5 articles à mettre en évidence. [21]

Problèmes de confidentialité

Le service Copilot est basé sur le cloud et nécessite une communication continue avec les serveurs GitHub Copilot. [22] Cette architecture opaque a alimenté les inquiétudes concernant la télémétrie et l'exploration de données des frappes individuelles. [23] [24]

Problèmes de sécurité

Un article accepté pour publication dans le Symposium de l'IEEE sur la sécurité et la confidentialité en 2022 a évalué la sécurité du code généré par Copilot pour les 25 principales énumérations de faiblesses de code du MITRE (par exemple, les scripts intersites, la traversée de chemin) dans 89 scénarios différents et 1 689 programmes. [25] Cela a été fait selon les axes de la diversité des faiblesses (sa capacité à répondre à des scénarios pouvant conduire à diverses faiblesses du code), la diversité des invites (sa capacité à répondre à la même faiblesse du code avec une variation subtile) et la diversité des domaines (sa capacité à générer des spécifications matérielles au niveau du transfert de registre dans Verilog ). [25] L'étude a révélé que sur ces axes dans plusieurs langues, 39,33 % des meilleures suggestions et 40,73 % du total des suggestions entraînaient des vulnérabilités de code. De plus, ils ont constaté que de petites modifications non sémantiques (c'est-à-dire des commentaires) apportées au code pouvaient avoir un impact sur la sécurité du code. [25]

Problèmes d'éducation

Un article de février 2022 publié par l' Association for Computing Machinery évalue l'impact que Codex, la technologie utilisée par Github Copilot, peut avoir sur la formation des programmeurs novices. [7] L'étude utilise des questions d'évaluation d'un cours d'introduction à la programmation à l'Université d'Auckland et compare les réponses du Codex avec les performances des étudiants. [7] Les chercheurs ont constaté que Codex, en moyenne, avait de meilleurs résultats que la plupart des étudiants ; cependant, ses performances ont diminué sur les questions qui limitaient les fonctionnalités pouvant être utilisées dans la solution (par exemple, les conditions, les collections et les boucles ). [7] Compte tenu de ce type de problème, "seulement deux des 10 solutions [du Codex] ont produit le résultat correct, mais les deux [...] ont violé [la] contrainte". Le document conclut que le Codex peut être utile pour fournir une variété de solutions aux apprenants, mais peut également conduire à une dépendance excessive et au plagiat. [7]

Voir également

 

Références

  1. « GitHub met l'intelligence artificielle au service des développeurs », sur Les Echos, (consulté le )
  2. Alexandra Patard, « GitHub Copilot : ce que reprochent les développeurs à l’assistant de programmation », sur BDM, (consulté le )
  3. Gershgorn, « GitHub and OpenAI launch a new AI tool that generates its own code », The Verge, (consulté le )
  4. « GitHub Copilot - IntelliJ IDEs Plugin | Marketplace », JetBrains Marketplace (consulté le )
  5. (en-US) « GitHub Copilot now available for Visual Studio 2022 », The GitHub Blog, (consulté le )
  6. Par Mary Jo Foley |, « GitHub Copilot se lance et dévoile ses prix », sur ZDNet France (consulté le )
  7. a b c d e et f Finnie-Ansley, Denny, Becker et Luxton-Reilly, « The Robots Are Coming: Exploring the Implications of OpenAI Codex on Introductory Programming », Australasian Computing Education Conference, New York, NY, USA, Association for Computing Machinery, aCE '22,‎ , p. 10–19 (ISBN 978-1-4503-9643-1, DOI 10.1145/3511861.3511863, S2CID 246681316) Erreur de référence : Balise <ref> incorrecte : le nom « :1 » est défini plusieurs fois avec des contenus différents.
  8. Sobania, Schweim et Rothlauf, « A Comprehensive Survey on Program Synthesis with Evolutionary Algorithms », IEEE Transactions on Evolutionary Computation, vol. 27,‎ , p. 82–97 (ISSN 1941-0026, DOI 10.1109/TEVC.2022.3162324, S2CID 247721793, lire en ligne)
  9. a b et c « GitHub Copilot · Your AI pair programmer », GitHub Copilot (consulté le ) Erreur de référence : Balise <ref> incorrecte : le nom « :2 » est défini plusieurs fois avec des contenus différents.
  10. (en) Krill, « OpenAI offers API for GitHub Copilot AI model », InfoWorld, (consulté le )
  11. (en-US) « OpenAI Releases GPT-3, The Largest Model So Far », Analytics India Magazine, (consulté le )
  12. (en) « OpenAI Announces 12 Billion Parameter Code-Generation AI Codex », InfoQ (consulté le )
  13. (en) « OpenAI is giving Microsoft exclusive access to its GPT-3 language model », MIT Technology Review (consulté le )
  14. (en) « In general: (1) training ML systems on public data is fair use » [archive du ], sur Twitter (consulté le )Paramètre user manquant ;Paramètre number manquant;Paramètre date manquant
  15. a b et c Butterick, « GitHub Copilot litigation » [archive du ], githubcopilotlitigation.com, Joseph Saveri Law Firm, (consulté le ) Erreur de référence : Balise <ref> incorrecte : le nom « class action suit » est défini plusieurs fois avec des contenus différents.
  16. (en-US) Vincent, « The lawsuit that could rewrite the rules of AI copyright », The Verge, (consulté le )
  17. (en) « Give Up GitHub: The Time Has Come! », Software Freedom Conservancy (consulté le )
  18. (en) « If Software is My Copilot, Who Programmed My Software? », Software Freedom Conservancy (consulté le )
  19. a et b « FSF-funded call for white papers on philosophical and legal questions around Copilot », Free Software Foundation, (consulté le )
  20. « Publication of the FSF-funded white papers on questions around Copilot », Free Software Foundation,
  21. « GitHub Copilot - Your AI pair programmer », GitHub (consulté le )
  22. « CoPilot: Privacy & DataMining », GitHub (consulté le )
  23. « Who does that server really serve? », gnu.org (consulté le )
  24. a b et c (en) Auteur inconnu, « Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions », .
    erreur modèle {{Lien arXiv}} : renseignez un paramètre « |eprint »
    Pearce, Hammond; Ahmad, Baleegh; Tan, Benjamin; Dolan-Gavitt, Brendan; Karri, Ramesh (16 December 2021). "Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions". arXiv:2108.09293 [cs.CR].

Liens externes