Attualmente, stiamo assistendo a un aumento delle diverse soluzioni che iniziano a essere offerte in relazione alla generazione di codice tramite intelligenza artificiale (IA), e il campo dell'elaborazione del linguaggio naturale (NLP) ha aperto la strada a una serie di IA per la generazione di codice in vari linguaggi di programmazione.
Tra questi, possiamo citare GitHub Copilot, AlphaCode e Codex, e ora possiamo aggiungere una nuova soluzione sviluppata dai ricercatori della Carnegie Mellon University, che hanno recentemente presentato "PolyCoder", un generatore di codice basato sul modello linguistico GPT-2 di OpenAI, addestrato su un database di codice di 249 GB in 12 linguaggi di programmazione.
Informazioni su PolyCoder
Gli autori di PolyCoder affermano che è in grado di scrivere codice C con una precisione superiore a qualsiasi altro modello conosciuto, incluso Codex.
L'intelligenza artificiale generatrice di codice, in grado di scrivere codice sorgente in diversi linguaggi di programmazione a partire da un input, promette di ridurre i costi di sviluppo del software, consentendo al contempo agli sviluppatori di concentrarsi su attività creative e meno ripetitive.
PolyCoder è stato addestrato utilizzando dati provenienti da diversi repository GitHub, che coprono 12 linguaggi di programmazione popolari: C, C#, C++, Go, Java, JavaScript, PHP, Python, Ruby, Rust, Scala e TypeScript.
Il dataset non filtrato ammontava a 631 GB di dati e 38,9 milioni di file. Il team ha affermato di aver scelto di addestrare PolyCoder con GPT-2 a causa di vincoli di budget. PolyCoder è disponibile come software open source e i ricercatori sperano che possa democratizzare la ricerca nel campo della generazione di codice tramite intelligenza artificiale, finora dominato da aziende con ingenti finanziamenti.
I ricercatori ritengono che PolyCoder offra prestazioni migliori rispetto ad altri modelli nella generazione di codice in linguaggio C. Tuttavia, Codex lo ha costantemente superato in altri linguaggi. "PolyCoder supera nettamente Codex e tutti gli altri modelli nel linguaggio C."
"Quando Copilot è uscito su GitHub la scorsa estate, è diventato chiaro che questi modelli di codice linguistico molto grandi possono essere molto utili per aiutare gli sviluppatori e aumentare la loro produttività. Ma nessun modello nemmeno vicino a quella scala era disponibile pubblicamente", hanno detto i ricercatori a VentureBeat via e-mail. "Così [PolyCoder] ha iniziato con Vincent che cercava di capire quale fosse il modello più grande che poteva essere addestrato sul nostro server di laboratorio, che ha finito per essere 2700 miliardi di parametri... e quel modello era un campionato più avanti di altri modelli orientati al codice che avevamo all'epoca erano pubblicamente disponibili.
" Confrontando solo i modelli open-source, PolyCoder supera il modello GPT-Neo 2.7B di dimensioni simili in C, JavaScript, Rust, Scala e TypeScript", osservano. "Negli altri 11 linguaggi, tutti gli altri modelli open-source, incluso il nostro, sono significativamente peggiori (maggiore perplessità) rispetto a Codex", hanno aggiunto i ricercatori della CMU.
Con questo, PolyCoder si posiziona come una soluzione molto interessante, poiché mentre laboratori di ricerca come OpenAI di Elon Musk e DeepMind di Alphabet hanno sviluppato una potente IA per la generazione di codice, molti dei sistemi di maggior successo non sono disponibili in open source. Le aziende a basso reddito non vi hanno accesso e questa situazione limita la loro ricerca sul campo.
Ad esempio, i dati di addestramento del codice OpenAI, che alimenta la funzione Copilot di GitHub, non sono stati resi pubblici, impedendo ai ricercatori di perfezionare il modello AI o studiarne alcuni aspetti, come l'interoperabilità.
"Le grandi aziende tecnologiche non stanno rilasciando pubblicamente i loro modelli, il che sta davvero frenando la ricerca scientifica e la democratizzazione di modelli di codice linguistico così grandi", hanno affermato i ricercatori. “In una certa misura, speriamo che i nostri sforzi nell'open source convincano gli altri a fare lo stesso. Ma il quadro generale è che la comunità dovrebbe essere in grado di formare questi modelli da sola. Il nostro modello ha superato il limite di ciò che è possibile addestrare su un singolo server: qualsiasi cosa più grande richiede un pool di server, il che aumenta notevolmente i costi".
Infine, se siete interessati ad approfondire l'argomento , potete trovare maggiori dettagli al seguente link.