GitHub Copilot contro Amazon CodeWhisperer
La battaglia per il miglior assistente di programmazione basato sull'intelligenza artificiale è ufficialmente iniziata!
GitHub Copilot e Amazon CodeWhisperer sono assistenti di codifica basati sull'intelligenza artificiale che portano il completamento automatico a un livello completamente nuovo. Nel migliore dei casi, possono scrivere blocchi completi di codice funzionante basandosi solo su un piccolo testo descrittivo fornito dallo sviluppatore. Questo può renderti più efficiente come sviluppatore
e, secondo me, rende lo sviluppo molto più divertente!✨
Quindi, senza ulteriori indugi, iniziamo!
Che cos'è un assistente di codifica basato sull'intelligenza artificiale?
GitHub Copilot e Amazon CodeWhisperer sono servizi che si integrano con il tuo editor di codice e ti aiutano a scrivere il codice più velocemente. Ma a differenza dei comuni strumenti di completamento automatico come ad esempio "IntelliSense", Copilot e CodeWhisperer utilizzano modelli di apprendimento automatico che sono stati addestrati sia sul codice sorgente che sul linguaggio naturale, consentendo loro di comprendere sia la programmazione che i linguaggi umani. Ciò consente loro di comprendere i commenti scritti in un inglese semplice, generare codice basato sull'intento dello sviluppatore e abbinare i modelli e lo stile dello sviluppatore. Durante la digitazione, forniscono anche consigli per completare il commento iniziale stesso. Puoi accettare la raccomandazione principale, visualizzare più raccomandazioni o semplicemente continuare a scrivere il tuo codice.
Dedica meno tempo alla creazione di standard e modelli di codice ripetitivi e più tempo a ciò che conta: creare software eccezionale (GitHub Copilot)
Cos'è GitHub Copilot?
GitHub Copilot è stato sviluppato da GitHub e OpenAI. È alimentato dal modello Codex di OpenAI, che è stato addestrato sul codice sorgente pubblicamente disponibile, inclusi i repository pubblici su GitHub. Copilot è stato ufficialmente annunciato "fuori dall'anteprima tecnica" nel giugno 2022.
Copilot è molto facile da usare e offre un'integrazione semplificata con tutti i principali editor di codice. GitHub Copilot è ottimizzato per i sette principali linguaggi di programmazione (vedere la tabella di seguito per i dettagli), ma è anche in grado di generare suggerimenti in altri linguaggi e in un'ampia varietà di framework.
Copilot è stato gratuito durante la fase di anteprima, ma GitHub ha recentemente annunciato che passeranno a un modello basato su abbonamento. Puoi ancora ottenere una prova gratuita di 60 giorni e rimarrà gratuita per studenti verificati e manutentori di popolari progetti open source.
Cos'è Amazon CodeWhisperer?
Amazon CodeWhisper è stato sviluppato da Amazon. I suoi modelli ML vengono addestrati su varie fonti di dati, tra cui il codice interno di Amazon e il codice open source.
CodeWhisperer è ancora in anteprima e supporta un minor numero di lingue e meno dei principali editor di codice rispetto a GitHub Copilot. Tuttavia, un ampio supporto linguistico e IDE non sono la sua principale attrazione. Invece, CodeWhisperer si concentra sulla fornitura di un supporto di prima classe per le API AWS che fornisce consigli sul codice per le API AWS attraverso i servizi più popolari, tra cui Amazon Elastic Compute Cloud (EC2), AWS Lambda e Amazon Simple Storage Service (S3). Qualità più che quantità?
Secondo questo post sul blog di Amazon, un utente dovrebbe essere in grado di scrivere "carica un file su S3" e CodeWhisperer determinerà automaticamente quali servizi cloud e librerie pubbliche sono più adatti per l'attività specificata, creerà il codice specifico al volo, e consigliare i frammenti di codice generati direttamente nell'IDE.
Durante il periodo di anteprima, gli sviluppatori possono utilizzare CodeWhisperer gratuitamente registrandosi qui .
Confronto
Qual è più popolare?
Data la breve durata di CodeWhisperer (rilasciato il mese scorso), non sono riuscito a trovare alcun dato relativo al numero di utenti. Tuttavia, è probabilmente corretto affermare che GitHub Copilot, con il suo vantaggio di un anno, è attualmente il giocatore dominante. Secondo lo stesso GitHub , più di 1,2 milioni di sviluppatori hanno utilizzato l'anteprima tecnica di Copilot negli ultimi 12 mesi. La loro ricerca mostra che gli utenti hanno accettato in media il 26% di tutti i completamenti mostrati da GitHub Copilot e fino al 40% dei file di codice degli sviluppatori sono stati generati da GitHub Copilot.
E la privacy?
Per migliorare le proprie prestazioni, sia Copilot che CodeWhisperer raccolgono dati dai propri utenti. Stai mettendo a rischio la base di codice o i dati della tua organizzazione utilizzando questi strumenti al lavoro? Questa è una domanda importante e un potenziale rompicapo per la maggior parte delle aziende.
Per fornire suggerimenti sul codice, GitHub Copilot invia il codice e i commenti al servizio GitHub Copilot. Questo servizio si basa su contenuti di file simili al contesto, sia nel file che stai modificando, sia nei file adiacenti o correlati all'interno di un progetto. Può anche raccogliere gli URL dei repository o i percorsi dei file per identificare il contesto pertinente. Parti della raccolta dati possono essere disabilitate nelle impostazioni di telemetria. Altre parti, come le informazioni sull'utilizzo, sono necessarie per l'utilizzo di Copilot e non possono essere disattivate. Ciò può includere dati personali, come indicato nell'Informativa sulla privacy di GitHub .
GitHub afferma inoltre che dai loro test interni, hanno scoperto che era raro che i suggerimenti di GitHub Copilot includessero i dati personali alla lettera dal set di addestramento ("raro"..? ). Tuttavia, alcuni di questi suggerimenti potrebbero sembrare solo dati personali (indirizzi e-mail, numeri di telefono, ecc.), ma in realtà sono informazioni fittizie sintetizzate da schemi nei dati di addestramento.
Amazon CodeWhisperer raccoglie anche determinate informazioni come informazioni contestuali (incluso il contenuto dei file), feedback, parametri di telemetria e informazioni sull'ambiente dell'utente. Nei loro Termini di servizio, Amazon afferma che durante la fase di anteprima, potrebbero offrirti la possibilità di attivare o disattivare la condivisione dei contenuti.
E i rischi e le vulnerabilità?
Entrambi gli assistenti sono addestrati sul codice pubblico che può contenere schemi di codifica non sicuri, bug o riferimenti ad API o idiomi obsoleti. Lo studio “Addormentato alla tastiera? Assessing the Security of GitHub Copilot's Code Contributions ” ha rilevato che fino al 40% dei loro scenari di test che utilizzavano Copilot contenevano codice vulnerabile.
GitHub ammette che a volte Copilot può suggerire usi vecchi o obsoleti di librerie e linguaggi e che può sintetizzare codice che contiene schemi indesiderati. Per mitigare questo, suggeriscono di utilizzare il loro prodotto in combinazione con strumenti come GitHub Actions, Dependabot e CodeQL per migliorare la qualità del codice.
Lo stesso vale per Amazon, anche se a loro merito, Amazon ha adottato grandi misure per contrastare ciò fornendo scansioni di sicurezza per rilevare vulnerabilità nei progetti Java e Python.
Detto questo, dovresti sempre utilizzare i tuoi assistenti di codifica basati sull'intelligenza artificiale insieme a test adeguati, buone pratiche di revisione del codice e strumenti di sicurezza affidabili, oltre al tuo giudizio!
E l'uso (scorretto) del codice pubblico?
È stata accresciuta la consapevolezza riguardo all'uso sostanziale del codice pubblico nel set di formazione. Idealmente, un assistente dovrebbe generare costantemente un codice che non è mai stato visto prima. Se invece l'assistente recita il codice direttamente dal set di formazione, potrebbe potenzialmente squalificarlo dall'essere considerato fair use e potrebbe violare il copyright del proprietario originale.
Per mitigare questo problema, Copilot dispone di un filtro integrato che tenta di rilevare e sopprimere le istanze in cui un suggerimento di GitHub Copilot contiene codice che corrisponde al codice pubblico su GitHub. Questo filtro è facoltativo e può essere disattivato. Secondo gli stessi GitHub, Copilot produrrà frammenti di codice letterale più lunghi di ~ 150 caratteri circa l'1% delle volte. Danno la colpa ai casi in cui GitHub Copilot non è in grado di raccogliere un contesto sufficiente dal codice che stai scrivendo o quando esiste una soluzione comune, forse persino universale, al problema.
Simile a Copilot, CodeWhisperer include anche un tracker di riferimento in grado di rilevare quando gli output generati possono essere simili a particolari dati di addestramento. Per quanto riguarda la raccolta del codice scritto dall'utente, Amazon afferma che non utilizzerà alcun codice scritto dallo sviluppatore per addestrare ulteriormente i suoi modelli durante la fase di anteprima. Tuttavia, CodeWhisperer memorizza i dati sull'attività dell'utente relativi alle risposte degli sviluppatori alle raccomandazioni sul codice, come l'accettazione o il rifiuto di una raccomandazione. Il servizio utilizza questo feedback per rendere i suoi modelli ML più accurati in modo che CodeWhisperer possa migliorare i consigli futuri.
Il vincitore è..?
GitHub Copilot è il vincitore quando si tratta di supporto linguistico e IDE. Inoltre è in circolazione da più tempo ed è ufficialmente fuori anteprima, dando ai suoi sviluppatori più tempo per correggere bug e appianare i dossi sulla strada. Il suo utilizzo richiede un piccolo investimento finanziario, ma si ottiene un prodotto perfettamente funzionante pronto all'uso.
Tuttavia, se lavori nell'ambiente AWS, Amazon CodeWhisperer fa probabilmente al caso tuo. Ammiro molto lo sforzo di Amazon di essere il primo fornitore di servizi cloud a offrire un assistente di codifica intelligente che si rivolge in gran parte al proprio prodotto e spero che altri fornitori seguano l'esempio (ti sto guardando, Azure!). Inoltre, il loro rilevamento integrato delle vulnerabilità potrebbe anche essere un buon motivo per prenderlo in considerazione. Infine, il fatto che sia attualmente gratuito è un forte incentivo a provarlo almeno mentre è in anteprima. Ciò richiederà, tuttavia, di registrarsi e attendere pazientemente il proprio turno. ⏳
Infine, prendiamoci un momento per apprezzare fino a che punto è arrivata la tecnologia e quali straordinari strumenti siamo ora in grado di utilizzare come sviluppatori! Sia GitHub Copilot che Amazon CodeWhisperer sono tecnologie straordinarie che prevedo saranno uno strumento indispensabile per tutti gli sviluppatori seri in un futuro non così lontano. E poiché altri attori come Google e Salesforce stanno iniziando a immergere le dita dei piedi nell'acqua, sembra certamente che presto entreremo in una nuova era per quanto riguarda lo sviluppo del codice.
Spero che tu abbia trovato utile questo articolo. Grazie per aver letto!
Nota dell'editore:
GitHub Copilot è stato estremamente prezioso nel mio lavoro di data scientist. Fare analisi dei dati spesso mi richiede di testare rapidamente le ipotesi. Poiché generalmente non so in anticipo quale sarà il risultato, spesso finisco per scrivere un sacco di codice quasi identico che eseguirò solo una volta, per confermare o rifiutare la mia ipotesi. GitHub Copilot è stato un ottimo strumento per accelerare questo processo e si integra bene anche con tutti gli IDE preferiti dai data scientist, vale a dire Jupyter Notebook (in VS Code) !
RIFERIMENTI
- GitHub, il tuo programmatore di coppia AI (2022), github.com
- Amazon, compagno di codifica basato su ML — Amazon CodeWhisperer — Amazon Web Services (2022), aws.amazon.com
- Amazon, AWS annuncia Amazon CodeWhisperer (Anteprima) (2022), aws.amazon.com
- A. Desai e A. Deo, Presentazione di Amazon CodeWhisperer, il compagno di codifica basato sul ML (2022), AWS Machine Learning Blog
- S. Bhattacharyya, Battle of AI-coding assistants: GitHub Copilot vs Amazon CodeWhisperer (2022), analyticsindiamag.com
- B. Dickson, GitHub Copilot è ora pubblico: ecco cosa devi sapere (2022), venturebeat.com
- F. Lardinois, Amazon lancia CodeWhisperer, uno strumento di programmazione di coppie AI simile a GitHub Copilot (2022), techcrunch.com
- D. Gershgorn, lo strumento di codifica automatica di GitHub si basa su un terreno legale non testato (2021), theverge.com

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































