AI based GitHub copilot
https://copilot.github.com/ Come ogni altro strumento estremamente sofisticato, nelle mani dei bravi professionisti sarà enormemente utile, mentre in quelle dei dilettanti temo che condurrà a problemi senza fine. E ciò che secondo me rende la situazione ancora peggiore è che in quest'ambito la differenza tra quelli bravi (senza andare sui geni) e quelli mediocri (senza andare sulla capre) è data da un fattore intorno a 10 (con tutte le incertezze legate ad una stima di questo genere. Per approfondire ecco un link https://softwareengineering.stackexchange.com/questions/179616/a-good-progra... ) -- EN ===================================================================== Prof. Enrico Nardelli Dipartimento di Matematica - Universita' di Roma "Tor Vergata" Via della Ricerca Scientifica snc - 00133 Roma tel: +39 06 7259.4204 fax: +39 06 7259.4699 mobile: +39 335 590.2331 e-mail: nardelli@mat.uniroma2.it home page: http://www.mat.uniroma2.it/~nardelli blog: http://www.ilfattoquotidiano.it/blog/enardelli/ http://link-and-think.blogspot.it/ ===================================================================== --
Ho qualche curiosità (che immagino si potrà soddisfare col tempo): - copilot migliora la produttività di uno sviluppatore? - se si, migliora più la produttività di uno sviluppatore bravo o quella di uno mediocre? m.c. In data giovedì 1 luglio 2021 16:55:58 CEST, Enrico Nardelli ha scritto:
Come ogni altro strumento estremamente sofisticato, nelle mani dei bravi professionisti sarà enormemente utile, mentre in quelle dei dilettanti temo che condurrà a problemi senza fine.
E ciò che secondo me rende la situazione ancora peggiore è che in quest'ambito la differenza tra quelli bravi (senza andare sui geni) e quelli mediocri (senza andare sulla capre) è data da un fattore intorno a 10 (con tutte le incertezze legate ad una stima di questo genere. Per approfondire ecco un link https://softwareengineering.stackexchange.com/questions/179616/a-good-progr ammer-can-be-as-10x-times-more-productive-than-a-mediocre-one )
-- EN
===================================================================== Prof. Enrico Nardelli Dipartimento di Matematica - Universita' di Roma "Tor Vergata" Via della Ricerca Scientifica snc - 00133 Roma tel: +39 06 7259.4204 fax: +39 06 7259.4699 mobile: +39 335 590.2331 e-mail: nardelli@mat.uniroma2.it home page: http://www.mat.uniroma2.it/~nardelli blog: http://www.ilfattoquotidiano.it/blog/enardelli/ http://link-and-think.blogspot.it/ =====================================================================
secondo me nulla eguaglierà mai il cut'n paste da Stack Overflow :-)) G. On Thu, 1 Jul 2021 at 17:16, Marco Ciurcina <ciurcina@studiolegale.it> wrote:
Ho qualche curiosità (che immagino si potrà soddisfare col tempo): - copilot migliora la produttività di uno sviluppatore? - se si, migliora più la produttività di uno sviluppatore bravo o quella di uno mediocre? m.c.
In data giovedì 1 luglio 2021 16:55:58 CEST, Enrico Nardelli ha scritto:
Come ogni altro strumento estremamente sofisticato, nelle mani dei bravi professionisti sarà enormemente utile, mentre in quelle dei dilettanti temo che condurrà a problemi senza fine.
E ciò che secondo me rende la situazione ancora peggiore è che in quest'ambito la differenza tra quelli bravi (senza andare sui geni) e quelli mediocri (senza andare sulla capre) è data da un fattore intorno a 10 (con tutte le incertezze legate ad una stima di questo genere. Per approfondire ecco un link
https://softwareengineering.stackexchange.com/questions/179616/a-good-progr
ammer-can-be-as-10x-times-more-productive-than-a-mediocre-one )
-- EN
===================================================================== Prof. Enrico Nardelli Dipartimento di Matematica - Universita' di Roma "Tor Vergata" Via della Ricerca Scientifica snc - 00133 Roma tel: +39 06 7259.4204 fax: +39 06 7259.4699 mobile: +39 335 590.2331 e-mail: nardelli@mat.uniroma2.it home page: http://www.mat.uniroma2.it/~nardelli blog: http://www.ilfattoquotidiano.it/blog/enardelli/ http://link-and-think.blogspot.it/ =====================================================================
_______________________________________________ nexa mailing list nexa@server-nexa.polito.it https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa
Guido Vetere <vetere.guido@gmail.com> writes:
secondo me nulla eguaglierà mai il cut'n paste da Stack Overflow :-))
è da cinque minuti che rido - con i lacrimomi agli occhi - come un deficiente davanti allo schermo... meno male che sono solo adesso sennò mi piglierebbero per matto. Grazie! Un po' di leggerezza è estremamente salutare :-D [...] Saluti. P.S.: ...e no, io non li prenderei troppo sul serio quelli di copilot.github.com: a fare i programmi bacati siamo capaci benissimo da soli, non c'è bisogno di AI. P.P.S.: ...e sì, i programmi fatti con lo stampino suonano più o meno come la musica generata dall'AI: un insieme di suoni/simboli senza nessun senso (musicale o informatico); suonano male dall'inizio alla fine senza interrompersi. -- 380° (Giovanni Biscuolo public alter ego) «Noi, incompetenti come siamo, non abbiamo alcun titolo per suggerire alcunché» Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>.
secondo me nulla eguaglierà mai il cut'n paste da Stack Overflow :-))
Ho installato il plugin di copilot per vscode dimenticando di averlo fatto anche perché, al tempo, ero in lista di attesa. Settimana scorsa avevo necessità di scrivere del codice python abbastanza noioso (uno scraper html e json) Con mia sorpresa vedo vscode che oltre a farmi il solito lavoro di completamento dei metodi degli oggetti mi suggerisce pezzi di codice come cicli et simila ... in pratica mi è sembrato di fare il copia incolla da stack overflow senza dover aprire il browser. A quel punto ho costruito un commento di una funzione come se fosse la descrizione di una richiesta a stack overflow, e mi è apparso il codice della funzione. In poco tempo però ho trovato la cosa irritante visto che era un continuo "attento a non accettare che poi ti tocca correggere quello che arriva" arrivando quindi ad evitare di commettare le funzioni che scrivevo. Ammetto di essere un pessimo developer My2cents -- -- Le informazioni contenute nella presente comunicazione sono di natura privata e come tali sono da considerarsi riservate ed indirizzate esclusivamente ai destinatari indicati e per le finalità strettamente legate al relativo contenuto. Se avete ricevuto questo messaggio per errore, vi preghiamo di eliminarlo e di inviare una comunicazione all’indirizzo e-mail del mittente. -- The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. If you received this in error, please contact the sender and delete the material.
Ciao Marco, On Thu, 01 Jul 2021 17:15:55 +0200 Marco Ciurcina wrote:
Ho qualche curiosità (che immagino si potrà soddisfare col tempo): - copilot migliora la produttività di uno sviluppatore?
Di programmi che producono codice ce ne sono diversi. Io stesso ne ho scritti diversi negli anni e di solito aumentano la tua produttività su quelle attività che sono estremamente ripetitive. Quanto aumentino la produttività dipende, oltre che dalla definizione di produttività di uno sviluppatore, dalla percentuale di tempo dedicata a tale attività. Calcolare il tradeoff fra aumento di produttività e costo di sviluppo richiede discreta esperienza [1]. D'altro canto, ci sono moltissimi linguaggi fondati sulla metaprogrammazione[2]. Naturalmente GitHub Copilot ha una applicabilità molto generale: generare snippets di codice dall'interpretazione del contesto esistente. Anche la ridotta dimensione degli snippets aiuta.
- se si, migliora più la produttività di uno sviluppatore bravo o quella di uno mediocre?
Come la misuriamo? In righe di codice all'ora? Bug all'ora? Scommetterei che secondo entrambe le metriche, i neofiti ed i programmatori mediocri trarranno un maggiore aumento di produttività. Potrebbe però diminuire nettamente la produttività dei programmatori più esperti. Anzittutto capire COSA scrivere richiede spesso molto più tempo che scrivere il codice stesso: un po' come nello scrivere un romanzo od un saggio filosofico il tempo di battitura non è rilevante Inoltre è sempre ai più esperti che tocca debuggare gli errori propri ed altrui e da GitHub/Microsoft mettono già le mani avanti: ``` There’s a lot of public code in the world with insecure coding patterns, bugs, or references to outdated APIs or idioms. When GitHub Copilot synthesizes code suggestions based on this data, it can also synthesize code that contains these undesirable patterns. This is something we care a lot about at GitHub, and in recent years we’ve provided tools such as Actions, Dependabot, and CodeQL to open source projects to help improve code quality. Similarly, as GitHub Copilot improves, we will work to exclude insecure or low-quality code from the training set. Of course, you should always use GitHub Copilot together with testing practices and security tools, as well as your own judgment. ``` https://copilot.github.com/ Cioè si chiede di adottare quel giudizio che manca inevitabilmente ai neofiti, che però costituiscono coloro che trarranno maggiore "beneficio" (in termini di righe di codice prodotte all'ora) da questo tool. I bug riprodotti massivamente su scala globale, in pratica, saranno una esternalità da scaricare sulla collettività. E poi ovviamente chi potrà prendersela con GitHub se una volta ogni tanto, una vulnerabilità finisse nel codice usato da qualche nemico della Patria? Giacomo [1] un'idea di massima la trovi sul classico https://xkcd.com/1205/ ma le cose non sono mai così semplici purtroppo. [2] http://wiki.c2.com/?MetaProgramming
In data giovedì 1 luglio 2021 16:55:58 CEST, Enrico Nardelli ha scritto:
Come ogni altro strumento estremamente sofisticato, nelle mani dei bravi professionisti sarà enormemente utile, mentre in quelle dei dilettanti temo che condurrà a problemi senza fine.
E ciò che secondo me rende la situazione ancora peggiore è che in quest'ambito la differenza tra quelli bravi (senza andare sui geni) e quelli mediocri (senza andare sulla capre) è data da un fattore intorno a 10 (con tutte le incertezze legate ad una stima di questo genere. Per approfondire ecco un link https://softwareengineering.stackexchange.com/questions/179616/a-good-progr ammer-can-be-as-10x-times-more-productive-than-a-mediocre-one )
-- EN
===================================================================== Prof. Enrico Nardelli Dipartimento di Matematica - Universita' di Roma "Tor Vergata" Via della Ricerca Scientifica snc - 00133 Roma tel: +39 06 7259.4204 fax: +39 06 7259.4699 mobile: +39 335 590.2331 e-mail: nardelli@mat.uniroma2.it home page: http://www.mat.uniroma2.it/~nardelli blog: http://www.ilfattoquotidiano.it/blog/enardelli/ http://link-and-think.blogspot.it/ =====================================================================
_______________________________________________ nexa mailing list nexa@server-nexa.polito.it https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa
Ciao Enrico, grazie della segnalazione. On Thu, 1 Jul 2021 16:55:58 +0200 Enrico Nardelli wrote:
Come ogni altro strumento estremamente sofisticato, nelle mani dei bravi professionisti sarà enormemente utile
Non preoccuparti: in Microsoft sono professionisti! https://copilot.github.com/diagram.png In sintesi: 1. il tuo editor manda a GitHub/Microsoft il tuo file sorgente 2. GitHub/Microsoft lo salva 3. lo passa ad OpenAI che produce dei suggerimenti 4. te li invia e tu li correggi nel tuo editor 5. il tuo editor manda a GitHub/Microsoft informazioni telemetriche 6. GitHub/Microsoft migliora il modello attraverso il feedback. In pratica, spionaggio industriale automatizzato e lavoro altamente qualificato di classificazione dei dataset non pagato INSIEME! :-D Si pone però un problema interessantissimo: il modello di OpenAI è stato alimentato con il codice presente su GitHub. Questo include una valanga di software sotto copyleft AGPLv3. Dunque il modello di OpenAI è un opera derivata "algoritmicamente" anche da quel codice sotto copyleft (insieme a tanto altro). Come tale, DEVE essere reso accessibile agli utenti. Non solo: per la stessa ragione, tutto il codice prodotto automaticamente da Copilot, dovrebbe essere licenziato sotto AGPLv3, perché opera derivata algoritmicamente da un opera derivata algoritmicamente da codice AGPLv3. E la AGPLv3 è virale: tutto il software che include codice AGPLv3 deve essere rilasciato come AGPLv3! Che RMS sia riuscito a convertire Microsoft con il suo talk di qualche tempo fa? Che Microsoft abbia deciso di diffondere l'infenzione che un tempo definiva come "un cancro"? No. Semplicemente, fanno finta di niente. ``` Training machine learning models on publicly available data is considered fair use across the machine learning community. The models gain insight and accuracy from the public collective intelligence. But this is a new space, and we are keen to engage in a discussion with developers on these topics and lead the industry in setting appropriate standards for training AI models. ``` Fair use del codice per la comunità del machine learning. Un po' come il fair use delle galline nella comunità delle volpi! Giacomo
On 01/07/21 17:53, Giacomo Tesio wrote: [cut]
tutto il codice prodotto automaticamente da Copilot, dovrebbe essere licenziato sotto AGPLv3, perché opera derivata algoritmicamente da un opera derivata algoritmicamente da codice AGPLv3. E la AGPLv3 è virale: tutto il software che include codice AGPLv3 deve essere rilasciato come AGPLv3!
Molto interessante questo spunto! Si aprirebbe uno squarcio nel "secondo testo" nascosto di cui parla Zuboff[1]. Ma è davvero così? @Marco_Ciurcina, che ne dici? D. [1] Un testo ombra, ad accesso riservato ai capitalisti della sorveglianza, frutto dell'esproprio perpetrato ai nostri danni (pag. 199 dell'edizione italiana de "Il capitalismo della sorveglianza")
In data venerdì 2 luglio 2021 11:54:16 CEST, D. Davide Lamanna ha scritto:
On 01/07/21 17:53, Giacomo Tesio wrote: [cut]
tutto il codice prodotto automaticamente da Copilot, dovrebbe essere licenziato sotto AGPLv3, perché opera derivata algoritmicamente da un opera derivata algoritmicamente da codice AGPLv3. E la AGPLv3 è virale: tutto il software che include codice AGPLv3 deve essere rilasciato come AGPLv3!
Molto interessante questo spunto! Si aprirebbe uno squarcio nel "secondo testo" nascosto di cui parla Zuboff[1].
Ma è davvero così? @Marco_Ciurcina, che ne dici? Allo stato non è elementi per escluderlo con certezza. Mi dicono che l'output può include snippet del sw di training.
In ogni caso la risposta dipende (oltre che dalla legge applicabile, che cambia da paese a paese) dal codice usato per il training e da altre variabili. Siamo sicuri che il sw di training includa sw con licenza AGPLv3? Immagino che in MS abbiano ragionato con attenzione sui profili legali della cosa. m.c.
D.
[1] Un testo ombra, ad accesso riservato ai capitalisti della sorveglianza, frutto dell'esproprio perpetrato ai nostri danni (pag. 199 dell'edizione italiana de "Il capitalismo della sorveglianza")
_______________________________________________ nexa mailing list nexa@server-nexa.polito.it https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa
Ciao Marco, On July 2, 2021 4:34:37 PM UTC, Marco Ciurcina wrote:
Allo stato non è elementi per escluderlo con certezza. Mi dicono che l'output può include snippet del sw di training.
https://mobile.twitter.com/MaxALittle/status/1410939808382394370 Qui ha sparato fuori (ovvero distribuito), senza attribuzione, ma con tanto di commenti e licenza (sbagliata), il codice GPLv2 di Quake III Arena tratto da https://github.com/id-Software/Quake-III-Arena Il che termina istantaneamente la loro licenza e costituisce una violazione del copyright anche solo per la mancata attribuzione che è prevista anche dalle licenze più permissive.
In ogni caso la risposta dipende (oltre che dalla legge applicabile, che cambia da paese a paese) dal codice usato per il training e da altre variabili.
Non mi è chiaro cosa hai in mente. Il modello è dichiaratamente un'opera derivata (algoritmicamente) del codice su GitHub. Il suo output anche. Possiamo discutere se Microsoft detenga un diritto d'autore sul "modello" di OpenAI (oltre che, ovviamente, sul software che lo esegue) o se la natura "algoritmica" della derivazione non la renda opera creativa. In tal caso, come credo, GitHub non potrebbe vantare alcun copyright sul modello o sull'output esattamente come se tu compili un software che scrivo io, non puoi vantare un copyright sul binario o sull'output del software stesso. Tuttavia se creo un archivio zip di un opera sotto copyright, questo non elimina il copyright ma lo estende all'archivio come opera derivata. Ed il modello AI di copilot può essere anche visto come un archivio un po' più complicato dei sorgenti iniziali da cui vengono estratti selettivamente dei pezzi da copilot. Dunque il modello AI e l'output prodotto sono opere derivate soggette al copyright di tutti gli utenti GitHub.
Siamo sicuri che il sw di training includa sw con licenza AGPLv3?
Sì. Il problema è come dimostrarlo. In Microsoft stanno gia correndo ai ripari e fargli sputare fuori codice così riconoscibile diventerà a breve molto più difficile.
Immagino che in MS abbiano ragionato con attenzione sui profili legali della cosa.
Si direbbe di no. Credo contino che comunque nessuno gli farà causa. E di poter circuire il Giudice straparlando di intelligenza artificiale, nell'eventualità. Giacomo
Buongiorno Marco, Giacomo e Nexiane a me /pare/ che Copilot di GitHub sia poco (tanto?) più di un motore di ricerca ala Google o Amazon Marketplace (o comediavolo si chiama) che spara fuori pezzi di altri programmi un po' come i suggerimenti dei cugini. Sono pronto a scommettere che Google sta studiando un fork del plugin di VScode che faccia la stessa cosa sol suo motore di ricerca anziché con OpenAI. Giacomo Tesio <giacomo@tesio.it> writes:
Ciao Marco,
On July 2, 2021 4:34:37 PM UTC, Marco Ciurcina wrote:
Allo stato non è elementi per escluderlo con certezza. Mi dicono che l'output può include snippet del sw di training.
https://mobile.twitter.com/MaxALittle/status/1410939808382394370
A onor di archivio, il testo del Tweet dice: --8<---------------cut here---------------start------------->8--- It didn't take long to discover egregious cases where OpenAI/GitHub's CoPilot regurgitates famous source code verbatim from the training data, and cannot properly attribute it. --8<---------------cut here---------------end--------------->8--- e l'animazione del tweet in risposta di Armin Ronacher illustra in modo plastico e lampante tutta la DISPERATA problematicità di utilizzare Copilot: https://mobile.twitter.com/mitsuhiko/status/1410886329924194309
Qui ha sparato fuori (ovvero distribuito), senza attribuzione,
a me pare anche con attribuzione... sbagliata
ma con tanto di commenti e licenza (sbagliata), il codice GPLv2 di Quake III Arena tratto da
confermo, non che fosse necessario ma forse aiuta: il codice è di 12 righe ed è (quasi) identico a questo: https://github.com/id-Software/Quake-III-Arena/blob/dbe4ddb10315479fc00086f0... nell'animazione sopra citata il codice viene attribuito con "Copyright (c) 2015 V. Petkov" e viene inserita una licenza NON copyleft (permettetemi la leggerezza, non ho voglia di verificare quale versione esattamente) SE il codice originale (ma non ho ragione di credere altrimenti) è quello di Quake II Arena il cui link è riportato sopra allora l'attribuzione è "Copyright (C) 1999-2005 Id Software, Inc." e la licenza è GNU GPL v2+
https://github.com/id-Software/Quake-III-Arena
Il che termina istantaneamente la loro licenza e costituisce una violazione del copyright anche solo per la mancata attribuzione che è prevista anche dalle licenze più permissive.
Esatto. Ecco perché usare il codice sparato fuori da Copilot è un DELIRIO dal punto di vista legale: mica per Microsoft (proprietaria di GitHub, che sono pronto a scommettere un caffè troverà sempre il modo di pararsi il...) ma per l'organizzazione o il singolo che usa quel codice. Io non userò MAI Copilot ma da quello che vedo e intuisco quel COSO non sarà mai in grado di fornire la TRACCIABILITÁ al codice proposto e QUINDI di assistere nel mantenere un INVENTARIO del codice riutilizzato, che OVVIAMENTE deve comprendere anche le licenze. Non starò qui a raccontarvi la rava e la fava sugli obblighi derivanti dalle licenze, vi dico SOLO che uno di quelli prevede che chi distribuisce il binario sia OBBLIGATO a fornire a chi riceve tale binario anche una copia ESATTA (versioni comprese) di TUTTO il codice sorgente, librerie comprese. Questo problema mica "lo scopriamo" con Copilot: i bundle binari Docker (coi loro layer a Matrioska la cui tracciabilità del sorgente è... problematica) sono un altro esempio di delirio nella gestione del licensing. Sarà anche sconvolgente per alcuni (molti?) programmatori, ma quando di programma è necessario tenere presente ANCHE gli aspetti del copyright, sai che si tratti di software proprietario che di software libero. Chiudo dicendo che molti semplicemente se ne fregano di questi aspetti e aspettano che qualcuno chieda loro veramente i sorgenti (o li citi in tribunale nel caso di sospetti di riutilizzo illegittimo di software proprietario)... e a quel punto AUGURI! [...]
Ed il modello AI di copilot può essere anche visto come un archivio un po' più complicato dei sorgenti iniziali da cui vengono estratti selettivamente dei pezzi da copilot.
...senza tenere minimamente traccia del copyright dei sorgenti iniziali: io sento puzza di copyright infringment ...a meno che Copilot venga volutamente limitato a sparare fuori massimo 5 (o attorno a quel valore, dipende dalle giurisdizioni) righe di codice, che sarebbe un "trivial use" (sbaglio?)
Dunque il modello AI e l'output prodotto sono opere derivate soggette al copyright di tutti gli utenti GitHub.
La promessa (da marinaio?) di Copilot è quella di generare codice originale... ma secondo me è un'allucinazione collettiva.
Siamo sicuri che il sw di training includa sw con licenza AGPLv3?
Beh, per adesso siamo sicuri che include software in GPLv2+ Però io mi concentrerei di più "lato utente": la responsabilità dell'utilizzo del codice sparato fuori da Copilot è di chi lo ingloba nel proprio, oltre che rendersi responsabile del fatto che sia adatto allo scopo e di verificare non introduca bug chi lo usa si rende responsabile anche della verifica di quali sono i termini con i quali può farlo. AFAIU Copilot non aiuta per nulla a tenere traccia della licenza, cercare di verificare SE si tratta di una copia verbatim (come nel caso in oggetto) e nel caso quale licenza lo accompagna è un DELIRIO. [...]
Immagino che in MS abbiano ragionato con attenzione sui profili legali della cosa.
Si direbbe di no.
Sicuro Giacomo? Siamo sicuri che i termini d'uso di GitHub non includano clausole che consentano a Microsoft (e eventuali terzi) di utilizzare il codice ivi caricato per utilizzarlo come dati di training del loro OpenAI (GPT-3)?
Credo contino che comunque nessuno gli farà causa.
E di poter circuire il Giudice straparlando di intelligenza artificiale, nell'eventualità.
Giacomo _______________________________________________ nexa mailing list nexa@server-nexa.polito.it https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa
-- 380° (Giovanni Biscuolo public alter ego) «Noi, incompetenti come siamo, non abbiamo alcun titolo per suggerire alcunché» Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>.
scusate, adesso la smetto ma ho un'ultima info da aggiungere 380° <g380@biscuolo.net> writes: [...]
Immagino che in MS abbiano ragionato con attenzione sui profili legali della cosa.
Si direbbe di no.
Sicuro Giacomo? Siamo sicuri che i termini d'uso di GitHub non includano clausole che consentano a Microsoft (e eventuali terzi) di utilizzare il codice ivi caricato per utilizzarlo come dati di training del loro OpenAI (GPT-3)?
https://docs.github.com/en/github/site-policy/github-terms-of-service#4-lice... dice: --8<---------------cut here---------------start------------->8--- This license includes the right to do things like copy it to our database and make backups; show it to you and other users; parse it into a search index or otherwise analyze it on our servers; share it with other users; --8<---------------cut here---------------end--------------->8--- https://docs.github.com/en/github/site-policy/github-terms-of-service#7-mora... --8<---------------cut here---------------start------------->8--- However, you waive these rights and agree not to assert them against us, to enable us to reasonably exercise the rights granted in Section D.4, but not otherwise. To the extent this agreement is not enforceable by applicable law, you grant GitHub the rights we need to use Your Content without attribution and to make reasonable adaptations of Your Content as necessary to render the Website and provide the Service. --8<---------------cut here---------------end--------------->8--- Quindi (IANAL) Copilot analizza lo "user-generated content" (codice sorgente compreso ovviamente), PUÓ ignorare l'attribuzione (diritto morale) e condividere il codice con gli altri utenti attraverso il plugin VSCode: è sufficiente per permettere loro di addestrare la rete neurale e "fregarsene" del fatto che il modello risultante possa essere opera derivata? In questo articolo https://fosspost.org/github-copilot/ «Should GitHub Be Sued For Training Copilot on GPL Code?» leggo: --8<---------------cut here---------------start------------->8--- That’s why we see that regardless of whether US courts see it as fair use or not, it is OK from an ethical point to use publicly available data to everyone to train a computational model to provide a service to users, whether for free or profit. Since this data is normally accessible to the everyday end-user then there should be nothing that prevents a computational AI or bot from accessing it as well. --8<---------------cut here---------------end--------------->8--- Quindi il ragionamento è: siccome POTENZIALMENTE potrebbero farlo tutti noi non vediamo cosa ci sia di male. Un indizio ve lo do io: il TRACKING dell'utente attraverso il plugin VScode E il fatto che il tutto sia SaaS (con tanto di termini d'uso e di privacy), ENTRAMBI indispensabili per usare il servizio e attraverso il quale GitHub arricchisce la già enorme mole di dati che estorce... ehrm acquisisce dai propri utenti. Cioè: non stiamo parlando di una "appliance" da acquistare e "mettersi in casa" per farsi aiutare a trovare gli snippet di codice (ammesso e non concesso sia una roba utile), stiamo parlando - ANCORA - di regalare un sacco di dati ai soliti noti. In altre parole: OK mettere in discussione la liceità di ciò che fa GitHub in merito alle licenze libere e al copyright, ma per favore non tralasciamo quello che a mio modesto avviso è il VERO nocciolo della questione. [...] Saluti, 380° -- 380° (Giovanni Biscuolo public alter ego) «Noi, incompetenti come siamo, non abbiamo alcun titolo per suggerire alcunché» Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>.
Scusa Giovanni, naturalmente avevo risposto alla tua prima email senza vedere la seconda. Sui ToS di GitHub: non si può sostenere che Copilot costituisca un miglioramento del servizio offerto da GitHub: è proprio una cosa diversa che non ha nulla a che vedere con la gestione di repository git. È un nuovo servizio offerto dalla stessa azienda e dunque NON autorizzato dai ToS. Tant'è che Microsoft giustifica il proprio uso dei sorgenti come fair use, non come diritto previsto dal ToS. La questione comunque è semplice: il "modello" calcolato da Microsoft è un opera derivata dal codice usato, _nella_sua_interezza_, per produrlo. Poiché è anche incluso codice AGPLv3, Microsoft ha 30 giorni per fornirlo agli utenti. Il codice prodotto deriva da un "modello" sotto AGPLv3 e dunque va trattato come tale, con tutto ciò che comporta. On July 3, 2021 11:26:01 AM UTC, "380°" wrote:
In questo articolo https://fosspost.org/github-copilot/ «Should GitHub Be Sued For Training Copilot on GPL Code?» leggo:
--8<---------------cut here---------------start------------->8---
That’s why we see that regardless of whether US courts see it as fair use or not, it is OK from an ethical point to use publicly available data to everyone to train a computational model to provide a service to users, whether for free or profit. Since this data is normally accessible to the everyday end-user then there should be nothing that prevents a computational AI or bot from accessing it as well.
--8<---------------cut here---------------end--------------->8---
Quindi il ragionamento è: siccome POTENZIALMENTE potrebbero farlo tutti noi non vediamo cosa ci sia di male.
Si tratta della posizione di Microsoft lì riportata come se fosse di altri. (il "don't care" group, cui l'autore attribuisce l'argomento senza però il coraggio di sottoscriverlo esplicitamente o la capacità di attribuirlo con una citazione esplicita come invece fa con @eevee) Insomma, la solita propaganda pro-corporate open-washed. Per altro propaganda facile da smentire: non è vero che chiunque potrebbe fare lo stesso. Solo pochissime aziende al mondo potrebbero. Tutte USA. E dubito, comunque, che tu possa scaricare TUTTO GitHub senza preventivo accordo con Microsoft/GitHub. (Ma su questo Stefano Zacchiroli potrebbe correggermi con la sua esperienza in SH).
In altre parole: OK mettere in discussione la liceità di ciò che fa GitHub in merito alle licenze libere e al copyright, ma per favore non tralasciamo quello che a mio modesto avviso è il VERO nocciolo della questione.
Per carità! Sono entrambe questioni importantissime. E strettamente legate. Ma chiarire se un'opera derivata algorirmicamente da un'opera di terze parti preserva i diritti di queste ultime è molto importante. Quale che sia il responso. Se si stabilisse che non è vero, rippare un DVD farebbe cessare i diritti del produttore. Decompilare Windows farebbe cessare i diritti di Microsoft. E se non è vero oggi, non lo è mai stato. Insomma, sarebbe un esito... interessante! :-D Giacomo
Ciao Giovanni On July 3, 2021 10:32:11 AM UTC, "380°" wrote:
Sicuro Giacomo? Siamo sicuri che i termini d'uso di GitHub non includano clausole che consentano a Microsoft (e eventuali terzi) di utilizzare il codice ivi caricato per utilizzarlo come dati di training del loro OpenAI (GPT-3)?
I termini di servizio recitano: ``` 4. License Grant to Us We need the legal right to do things like host Your Content, publish it, and share it. You grant us and our legal successors the right to store, archive, parse, and display Your Content, and make incidental copies, as necessary to provide the Service, including improving the Service over time. This license includes the right to do things like copy it to our database and make backups; show it to you and other users; parse it into a search index or otherwise analyze it on our servers; share it with other users; and perform it, in case Your Content is something like music or video. This license does not grant GitHub the right to sell Your Content. It also does not grant GitHub the right to otherwise distribute or use Your Content outside of our provision of the Service, except that as part of the right to archive Your Content, GitHub may permit our partners to store and archive Your Content in public repositories in connection with the GitHub Arctic Code Vault and GitHub Archive Program. ``` https://docs.github.com/en/github/site-policy/github-terms-of-service#d-user... Io non vedo il diritto di creare e distribuire opere derivate.
Dunque il modello AI e l'output prodotto sono opere derivate soggette al copyright di tutti gli utenti GitHub.
La promessa (da marinaio?) di Copilot è quella di generare codice originale... ma secondo me è un'allucinazione collettiva.
"Allucinazione collettiva" descrive bene il mercato della "intelligenza artificiale"/"machine learning". Tuttavia anche se il codice generato da Copilot fosse originale (nel senso di inedito, mai scritto uguale in precedenza) comunque: 1) sarebbe codice derivato algoritmicamente da quello scritto da altri 2) difficilmente si potrebbe sostenere che copilot apporti un contributo creativo Il primo punto è quello fondamentale: se scrivo una videogioco su Harry Potter è sicuramente un opera originale e creativa, ma oltre al mio diritto d'autore, il gioco sarà soggetto anche a quello della Rowling. Giacomo
Giacomo Tesio <giacomo@tesio.it> writes: [...]
https://copilot.github.com/diagram.png
In sintesi:
1. il tuo editor manda a GitHub/Microsoft il tuo file sorgente 2. GitHub/Microsoft lo salva 3. lo passa ad OpenAI che produce dei suggerimenti 4. te li invia e tu li correggi nel tuo editor
No: Copilot (ancora in "tech preview", è la frase markettara per dire "pre-alha": usatelo a vostro rischio l'importante è che ci forniate il VOSTRO codice e la telemetria) esiste come estensione solo per MS Visual Studio Code --8<---------------cut here---------------start------------->8--- GitHub Copilot is available today as a Visual Studio Code extension. It works wherever Visual Studio Code works — on your machine or in the cloud on GitHub Codespaces. --8<---------------cut here---------------end--------------->8---
5. il tuo editor manda a GitHub/Microsoft informazioni telemetriche
Le informazioni inviate e come sono utilizzate è descritto qui: https://docs.github.com/en/github/copilot/about-github-copilot-telemetry Non so se coloro che usano MS Visual Studio Code (anche senza Copilot) se ne rendono conto, io conosco DUE persone alle quali ho dovuto spiegare io che la telemetria di quel COSO è parecchio invasiva. Tip: per chi proprio non può fare a meno di quel robo almeno valuti https://vscodium.com/ ...se non proprio di usare un ALTRO editor/IDE per programmare.
6. GitHub/Microsoft migliora il modello attraverso il feedback.
In pratica, spionaggio industriale automatizzato e lavoro altamente qualificato di classificazione dei dataset non pagato INSIEME! :-D
è la prima cosa che ho pensato senza manco vedere il diagramma di flusso (o in questo caso si chiama "diagramma del fesso"?!?): non solo telemetria A MANETTA senza il minimo pudore, ma pure analisi (e ovviamente acquisizione pro bono loro... in FAIR USE) del codice che si sta scrivendo, pure se è PRIVATO. è il completamento perfetto del mirabolante strumento di Google [1] che custodisce le chiavi private usate per la firma dei pacchetti distribuiti su Google Play, direi!
Si pone però un problema interessantissimo: il modello di OpenAI è stato alimentato con il codice presente su GitHub.
Questo include una valanga di software sotto copyleft AGPLv3.
Dunque il modello di OpenAI è un opera derivata "algoritmicamente" anche da quel codice sotto copyleft (insieme a tanto altro).
Come tale, DEVE essere reso accessibile agli utenti.
Mavà, com'è quel detto: "quello che è mio è mio e quello che è tuo è... MIO"? :-O [...]
``` Training machine learning models on publicly available data is considered fair use across the machine learning community. The models gain insight and accuracy from the public collective intelligence. But this is a new space, and we are keen to engage in a discussion with developers on these topics and lead the industry in setting appropriate standards for training AI models. ```
La mitica copertina del 8 Aprile 1991 di Cuore [2] è adatta anche a questo caso, direi... anche a distanza di vent'anni: un sempreverde!
Fair use del codice per la comunità del machine learning. Un po' come il fair use delle galline nella comunità delle volpi!
sono davvero tempi MOLTO curiosi, asinstoticamente tendenti al distopico andante Saluti, 380° [1] https://server-nexa.polito.it/pipermail/nexa/2021-June/021837.html [2] https://www.flickr.com/photos/saverioluzzi/6335177675/ -- 380° (Giovanni Biscuolo public alter ego) «Noi, incompetenti come siamo, non abbiamo alcun titolo per suggerire alcunché» Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>.
participants (7)
-
380° -
D. Davide Lamanna -
Enrico Nardelli -
Giacomo Tesio -
Guido Vetere -
Marco Ciurcina -
Maurizio Napolitano