Vai al contenuto

GitHub Copilot

Da Wikipedia, l'enciclopedia libera.
GitHub Copilot
software
Logo
Logo
Genereautocompletamento del codice sorgente (non in lista)
SviluppatoreGitHub, OpenAI
Data prima versione27 ottobre 2021
Ultima versione1.29.6152
Sistema operativoMicrosoft Windows
Licenza(licenza libera)
Sito webcopilot.github.com/


GitHub Copilot è un programma dell'intelligenza artificiale operante nel cloud e sviluppato da GitHub e OpenAI per assistere gli utenti degli ambienti di sviluppo integrato (IDE) di Visual Studio Code, Visual Studio, Neovim e JetBrains mediante l'autocompletamento del codice.[1] Disponibile su abbonamento per singoli sviluppatori, fu annunciato per la prima volta da GitHub il 29 giugno 2021 ed è ottimizzato per i linguaggi di programmazione Python, JavaScript, TypeScript, Ruby e Go.[2]

Il 29 giugno 2021 GitHub annunciò il lancio di GitHub Copilot per l'anteprima tecnica nell'ambiente di sviluppo di Visual Studio Code.[1][3] Il 29 ottobre 2021 GitHub Copilot fu rilasciato come plug-in nel negozio elettronico di JetBrains.[4] Il 27 ottobre 2021 GitHub pubblicò il plug-in GitHub Copilot Neovim come repository pubblico.[5] Il 29 marzo 2022 fu annunciata la versione per Visual Studio.[6] Il 21 giugno 2022 GitHub dichiarò che Copilot non era più nella fase di "anteprima tecnica" e che era disponibile come servizio in abbonamento per sviluppatori singoli.[7]

Caratteristiche

[modifica | modifica wikitesto]

Codex è in grado di generare codice risolutivo di problemi di programmazione viene formulati in linguaggio naturale.[8] È anche in grado di documentare il codice sorgente in inglese e di tradurlo in linguaggi di programmazione differenti.[8]

Secondo il sito web, GitHub Copilot include funzionalità di supporto per i programmatori, come la possibilità di convertire i commenti del codice in codice eseguibile e il completamento automatico per blocchi di codice, sezioni ripetitive di codice e interi metodi e/o funzioni.[2][9] GitHub riferisce che la funzione di completamento automatico di Copilot è accurata al 50%; ad esempio, con un codice di intestazione di una funzione in Python, Copilot ha completato correttamente in automatico il resto del codice del corpo della funzione il 43% delle volte al primo tentativo e il 57% delle volte dopo dieci tentativi.[2]

GitHub afferma che le funzionalità di Copilot consentono ai programmatori di navigare al'interno di framework e linguaggi di codifica sconosciuti, riducendo la quantità di tempo dedicata alla lettura della documentazione.[2]

Implementazione

[modifica | modifica wikitesto]

GitHub Copilot è alimentato da OpenAI Codex[10], una versione di produzione modificata del Generative Pre-addestrato Transformer 3 (GPT-3), un modello linguistico che utilizza il deep learning per produrre testo simile a quello umano.[11]

Il modello Codex è inoltre addestrato su gigabyte di codice sorgente in una dozzina di linguaggi di programmazione diversi. Esso è addestrato su una selezione di lingua inglese, attingendo a repository di GitHub pubblici e ad altro codice sorgente pubblicamente disponibile.[2] In particolare, è incluso un dataset filtrato di 159 gigabyte di codice Python proveniente da 54 milioni di repository GitHub pubblici.[12] GPT-3 di Open AI è concesso in licenza esclusivamente a Microsoft, la casa madre di GitHub.[13]

Fin dal rilascio di Copilot ci sono state preoccupazioni per il suo impatto sulla sicurezza e sull'istruzione, nonché controversie sulla licenza relativa al codice da esso generato.[8][14][15]

Controversie sulla licenza

[modifica | modifica wikitesto]

Nel giugno 2021 l'amministratore delegato di GitHub Nat Friedman affermò che "addestrare i sistemi ML sui dati pubblici rientra nel fair use".[16] Una causa legale collettiva intentata nel novembre 2022 replicò che si trattava di "pura speculazione", asserendo che "nessun tribunale ha considerato la questione del fatto che "addestrare i sistemi di ML sui dati pubblici sia una forma di fair use".[17] La causa intentata dallo studio legale Joseph Saveri contesta diversi aspetti legali, che vanno dalla violazione del contratto con gli utenti di GitHub alla violazione della privacy ai sensi del California Consumer Privacy Act per quanto atiene alla condivisione dei dati personali.[17][18]

GitHub ha confessato che una piccola parte dell'output può risultare letteralmente copiata, cosa che ha fatto temere che il codice di output non sia sufficientemente trasformativo per essere classificato come fair use e possa violare il copyright del proprietario originale.[14] Nel giugno 2022, la Software Freedom Conservancy notificò il divieto di usare GitHub all'interno dei propri progetti[19], accusando Copilot di ignorare le licenze di rilascio del codice presenti nei dati di addestramento.[20] In un messaggio di assistenza clienti, GitHub sostenne che "l'addestramento di modelli di machine learning su dati pubblicamente disponibili è considerato fair use da parte della comunità del machine learning. L'azione legale collettiva definì ciò "falso", osservando altresì che "indipendentemente dal livello di accettazione di questo concetto nella 'comunità del machine learning', secondo la legge federale, è illegale".[17]

Libri bianchi della FSF

[modifica | modifica wikitesto]

Il 28 luglio 2021, la Free Software Foundation (FSF) pubblicò un bando retribuito per la presentazione di un libro bianco relativo a questioni filosofiche e legali relative a Copilot.[21] Donald Robertson, Licensing and Compliance Manager della FSF, disse che "Copilot solleva molte [...] domande che richiedono un esame più approfondito".[21] Il 24 febbraio 2022, la FSF comunicò di aver ricevuto 22 documenti sull'argomento e di averne selezionato 5 a conclusione di un processo di revisione anonimo.[22]

Problemi di privacy

[modifica | modifica wikitesto]

Il servizio Copilot è basato sul cloud e richiede una comunicazione continua con i server di GitHub Copilot.[23] Questa architettura opaca ha alimentato preoccupazioni circa il rischio di telemetria e estrazione di dati a fronte di eventi asincroni azionati dal mondo esterno e riconosciuti dal programma.[24][25]

Problemi di sicurezza

[modifica | modifica wikitesto]

Un documento accettato per la pubblicazione nell'IEEE Symposium on Security and Privacy nel 2022 ha valutato la sicurezza del codice generato da Copilot per i 25 principali di punti di debolezza del codice enumerati dal protocollo MITRE (ad es. il cross-site scripting, path traversal), nell'ambito di 89 diversi scenari e 1.689 programmi.[15] Ciò fu fatto lungo gli assi della diversità dei punti deboli (la sua capacità di risposta a scenari che possono introdurre vari punti deboli nel codice), diversità dei prompt (la sua capacità di rispondere ad una stessa debolezza del codice con variazioni minime, analisi di sensitività) e diversità di domini (la sua capacità di generare specifiche hardware a livello di trasferimento del registro in Verilog).[15] Lo studio rilevò che attraverso questi assi in molteplici lingue, il 39,33% dei migliori suggerimenti e il 40,73% dei suggerimenti totali avevano condotto a vulnerabilità del codice. Inoltre, rivelarono che anche piccole modifiche non semantiche (ovvero commenti) apportate al codice riuscivano a incidere sulla sicurezza di quest'ultimo.[15]

Problemi relativi al mondo della scuola

[modifica | modifica wikitesto]

Un documento del febbraio 2022 pubblicato dall'Association for Computing Machinery valuta l'impatto che Codex, la tecnologia utilizzata da GitHub Copilot, potrebbe avere sulla formazione dei programmatori alle prime armi. Lo studio utilizza le domande di valutazione di un corso introduttivo di programmazione tenutosi presso l'Università di Auckland e mette a confronto le risposte di Codex con le prestazioni degli studenti.[8] I ricercatori scoprirono che Codex, in media, otteneva risultati migliori di quelli della maggior parte degli studenti; tuttavia, le sue prestazioni erano inferiori su domande che limitavano le funzionalità che potevano essere utilizzate nella soluzione (ad esempio, condizionali, collezioni di dati numerici come liste e grafi, e cicli for).[8] Dato questo tipo di problemi, "solo due delle 10 soluzioni [del Codex] hanno prodotto l'output corretto, ma entrambe [...] hanno violato [il] vincolo". Il documento conclude che Codex può essere utile nel fornire una varietà di soluzioni agli studenti, ma può anche indurre a un abuso della loro fiducia e al plagio.[8]

GitHub Copilot X

[modifica | modifica wikitesto]

Il 23 marzo 2023 GitHub ha rilasciato Copilot X che integra GPT-4 per automatizzare l'individuazione e la correzione dei bug, le richieste di modifica e unione del codice in un repository centrale ad accesso distribuito, nonché la gestione documentale.

In VS Code e Visual Studio il programma integra una chat simile a ChatGPT, oltre al supporto vocale per la dettatura diretta del codice.[26]

Replit Ghostwriter

[modifica | modifica wikitesto]

Replit Ghostwriter il concorrente diretto di Google che offre funzionalità di testing, software collaborativo e distribuzione delle app.[27]

  1. ^ a b Dave Gershgorn, GitHub and OpenAI launch a new AI tool that generates its own code, su The Verge, 29 giugno 2021.
  2. ^ a b c d e GitHub Copilot · Your AI pair programmer, su copilot.github.com.
  3. ^ (EN) Introducing GitHub Copilot: your AI pair programmer, su github.blog, 29 giugno 2021.
  4. ^ GitHub Copilot - IntelliJ IDEs Plugin - Marketplace, su plugins.jetbrains.com.
  5. ^ Copilot.vim, su github.com, 7 aprile 2022.
  6. ^ (EN) GitHub Copilot now available for Visual Studio 2022, su github.blog, 29 marzo 2022.
  7. ^ (EN) GitHub Copilot is generally available to all developers, su github.blog, 21 giugno 2022.
  8. ^ a b c d e f James Finnie-Ansley, Paul Denny, Brett A. Becker, Andrew Luxton-Reilly e James Prather, The Robots Are Coming: Exploring the Implications of OpenAI Codex on Introductory Programming, in Australasian Computing Education Conference, ACE '22, New York, NY, USA, Association for Computing Machinery, 14 febbraio 2022, pp. 10–19, DOI:10.1145/3511861.3511863, ISBN 978-1-4503-9643-1.
  9. ^ Dominik Sobania, Dirk Schweim e Franz Rothlauf, A Comprehensive Survey on Program Synthesis with Evolutionary Algorithms, in IEEE Transactions on Evolutionary Computation, vol. 27, 2022, pp. 82–97, DOI:10.1109/TEVC.2022.3162324, ISSN 1941-0026 (WC · ACNP).
  10. ^ (EN) Paul Krill, OpenAI offers API for GitHub Copilot AI model, su infoworld.com, 12 agosto 2021.
  11. ^ (EN) OpenAI Releases GPT-3, The Largest Model So Far, su analyticsindiamag.com, 3 giugno 2020.
  12. ^ (EN) OpenAI Announces 12 Billion Parameter Code-Generation AI Codex, su infoq.com.
  13. ^ (EN) OpenAI is giving Microsoft exclusive access to its GPT-3 language model, su technologyreview.com.
  14. ^ a b c d Hammond Pearce, Baleegh Ahmad, Benjamin Tan, Brendan Dolan-Gavitt e Ramesh Karri, Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions, 16 dicembre 2021.
  15. ^ (EN) Nat Friedman [natfriedman], In general: (1) training ML systems on public data is fair use (Tweet), su Twitter, X (archiviato dall'url originale il 30 giugno 2021).
  16. ^ a b c Matthew Butterick, GitHub Copilot litigation, su githubcopilotlitigation.com, 3 novembre 2022 (archiviato dall'url originale il 3 novembre 2022).
  17. ^ (EN) James Vincent, The lawsuit that could rewrite the rules of AI copyright, su theverge.com, 8 novembre 2022.
  18. ^ (EN) Give Up GitHub: The Time Has Come!, su sfconservancy.org.
  19. ^ (EN) If Software is My Copilot, Who Programmed My Software?, su sfconservancy.org.
  20. ^ a b FSF-funded call for white papers on philosophical and legal questions around Copilot, su fsf.org, Free Software Foundation, 28 luglio 2021.
  21. ^ Publication of the FSF-funded white papers on questions around Copilot, su fsf.org, 24 febbraio 2022.
  22. ^ GitHub Copilot - Your AI pair programmer, su github.com.
  23. ^ CoPilot: Privacy & DataMining, su github.com.
  24. ^ Who does that server really serve?, su gnu.org.
  25. ^ GitHub Copilot X: GPT-4 per gli sviluppatori, su punto-informatico.it.
  26. ^ Google si allea con Replit per sfidare GitHub Copilot, su punto-informatico.it.

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica