GitHub lancia il sistema di machine learning Copilot che genera codice

GitHub ha annunciato il completamento dei test dell'assistente intelligente GitHub Copilot, in grado di generare costrutti standard durante la scrittura del codice. Il sistema è stato sviluppato congiuntamente al progetto OpenAI e utilizza la piattaforma di apprendimento automatico OpenAI Codex, addestrata su una vasta gamma di codici sorgente ospitati nei repository pubblici GitHub. Il servizio è gratuito per i manutentori di progetti open source popolari e per gli studenti. Per le altre categorie di utenti, l'accesso a GitHub Copilot è a pagamento ($ 10 al mese o $ 100 all'anno), ma è previsto l'accesso di prova gratuito per 60 giorni.

La generazione del codice è supportata nei linguaggi di programmazione Python, JavaScript, TypeScript, Ruby, Go, C# e C++ utilizzando diversi framework. Sono disponibili moduli per integrare GitHub Copilot con gli ambienti di sviluppo Neovim, JetBrains IDE, Visual Studio e Visual Studio Code. A giudicare dalla telemetria raccolta durante i test, il servizio consente di generare codice di qualità piuttosto elevata: ad esempio, il 26% dei consigli proposti in GitHub Copilot è stato accettato dagli sviluppatori così com'è.

GitHub Copilot si differenzia dai tradizionali sistemi di completamento del codice per la capacità di generare blocchi di codice abbastanza complessi, fino a funzioni già pronte sintetizzate tenendo conto del contesto attuale. GitHub Copilot si adatta al modo in cui lo sviluppatore scrive il codice e tiene conto delle API e dei framework utilizzati nel programma. Ad esempio, se in un commento è presente un esempio di struttura JSON, quando inizi a scrivere una funzione per analizzare questa struttura, GitHub Copilot offrirà codice già pronto e, quando scriverai elenchi di routine di descrizioni ripetute, genererà il resto posizioni.

GitHub lancia il sistema di machine learning Copilot che genera codice

La capacità di GitHub Copilot di generare blocchi di codice già pronti ha portato a controversie legate a potenziali violazioni delle licenze copyleft. Durante la formazione del modello di machine learning, sono stati utilizzati testi originali provenienti da repository di progetti open source situati su GitHub. Molti di questi progetti sono forniti con licenze copyleft, come la GPL, che richiedono che il codice delle opere derivate sia distribuito con una licenza compatibile. Inserendo il codice esistente come suggerito da Copilot, gli sviluppatori potrebbero involontariamente violare la licenza del progetto da cui è stato preso in prestito il codice.

Non è ancora chiaro se il lavoro generato da un sistema di machine learning possa essere considerato derivato. Sorgono anche domande sul fatto se un modello di apprendimento automatico sia soggetto a copyright e, in tal caso, chi detiene questi diritti e come si collegano ai diritti sul codice su cui si basa il modello.

Da un lato i blocchi generati possono ripetere passaggi di testo di progetti esistenti, ma dall'altro il sistema ricrea la struttura del codice invece di copiare il codice stesso. Secondo uno studio di GitHub, solo l'1% delle volte una raccomandazione di Copilot potrebbe includere snippet di codice di progetti esistenti che superano i 150 caratteri. Nella maggior parte delle situazioni, le ripetizioni si verificano quando Copilot non è in grado di determinare correttamente il contesto o di offrire soluzioni standard a un problema.

Per impedire la sostituzione del codice esistente, è stato aggiunto a Copilot un filtro speciale che non consente intersezioni con progetti esistenti. Durante la configurazione, lo sviluppatore può attivare o disattivare questo filtro a sua discrezione. Tra gli altri problemi, esiste la possibilità che il codice sintetizzato possa ripetere errori e vulnerabilità presenti nel codice utilizzato per addestrare il modello.

Fonte: opennet.ru

Aggiungi un commento