PolyCoder vs OpenAi Codex: un confronto tra questi strumenti di generazione di codice
PolyCoder ha fornito prestazioni superiori rispetto a GPT-Neo 2.7B di dimensioni simili in C, JavaScript, Rust, Scala e TypeScript.
 
L’intersezione di strumenti di generazione del codice e modelli di linguaggio di grandi dimensioni (LLM) sta spingendo le frontiere dell’intelligenza artificiale. Sebbene i giganti della tecnologia abbiano escogitato modelli all’avanguardia come BERT, Codex, ecc., l’accesso a tali modelli è stato limitato. L’anno scorso, i ricercatori della Carnegie Mellon University hanno sviluppato PolyCoder, un modello basato su GPT-2 di OpenAI e addestrato su 249 GB di codice in 12 linguaggi di programmazione. Il core di Polycode è scritto in C++. Tutte le funzionalità specifiche della piattaforma sono astratte in un core multipiattaforma e implementate in modo nativo su ciascuna piattaforma, quindi lo stesso codice C++ verrà compilato immediatamente su ciascuna piattaforma supportata. Ma in che modo PolyCoder si confronta con modelli linguistici di grandi dimensioni come Codex e GPT-Neox-20B ?

PolyCoder vs Codex: open source vs proprietario
PolyCoder è stato testato rispetto a vari modelli linguistici come modelli linguistici mascherati, modelli codificatore-decodificatore e modelli auto-regressivi da sinistra a destra. Mentre alcuni modelli sono preaddestrati su codice GitHub esclusivo , altri sono addestrati su “The Pile”, un grande repository costituito da una fusione di testi in linguaggio naturale, codice di vari linguaggi e documentazioni software. 

 

I motori di intelligenza artificiale sono stati testati su una serie di valutazioni basate sui loro valori estrinseci e intrinseci. 

Valutazione estrinseca: uno dei modi più comuni per testare un modello è provare a generare codice basato su prompt in linguaggio naturale. Tutti i modelli vengono valutati sul set di dati HumanEval che consiste in 164 prompt con descrizione sotto forma di codice, commenti, ecc. Per valutare ciascun motore è stato preso un campione casuale di 100 esempi.

 

Valutazione intrinseca: la perplessità di ciascun modello di linguaggio viene confrontata utilizzando un repository GitHub sconosciuto per valutarne le prestazioni intrinseche. Le caratteristiche del set di dati vengono rese sconosciute per evitare la fuga di dati dal training al set di test. Per garantire l’accuratezza, viene utilizzato un campione di 100 file casuali per ciascuno dei 12 linguaggi di codifica nel set di dati di valutazione. La perplessità tra i diversi metodi di tokenizzazione viene confrontata utilizzando Pigmenti per normalizzare equamente la somma della probabilità logaritmica di ciascun modello.

 

Rispetto a GPT-Neo (2.7B), PolyCoder mostra meno token Python, ma maggiori token di codice in altri linguaggi di programmazione. PolyCoder è un candidato migliore per la transizione da altri linguaggi a Python. Il significato, in futuro il linguaggio naturale così come il codice di linguaggi diversi, può essere utilizzato come stimolo per lo sviluppo. Nella valutazione intrinseca, PolyCoder ha superato Codex e tutti gli altri modelli nel linguaggio C. Ha fornito prestazioni superiori rispetto a GPT-Neo 2.7B di dimensioni simili in C, JavaScript, Rust, Scala e TypeScript.

Codice
L’anno scorso, OpenAI ha rilasciato una versione migliorata di Codex, un sistema di intelligenza artificiale che traduce il linguaggio naturale in codice. Codex alimenta il programmatore di coppie AI GitHub Copilot ed è esperto in più di una dozzina di linguaggi di programmazione. Il sistema di intelligenza artificiale può interpretare semplici comandi in linguaggio naturale ed eseguirli per conto dell’utente.

Futuro di PolyCoder
Deepmind ha recentemente lanciato AlphaCode con 41,4 miliardi di parametri ed è tra i primi motori basati sull’intelligenza artificiale in grado di generare codice a livello competitivo. AlphaCode ha dimostrato le sue capacità nei concorsi di programmazione ospitati da Codeforces ottenendo un punteggio di 54,3 percentile superiore contro i programmatori umani. Tuttavia, AlphaCode non è open source. I ricercatori della Carnegie Mellon University sperano che i loro sforzi con PolyCoder incoraggerebbero i giganti a seguire l’esempio e fungere da catalizzatore per la ricerca sull’IA e la democratizzazione dei LLM.

Le prestazioni degli LLM si basano generalmente sul tempo di formazione e sulle dimensioni del modello. I risultati hanno mostrato che la formazione sul linguaggio naturale e il linguaggio di codifica migliora le prestazioni di GPT-Neo rispetto a PolyCoder. Tuttavia, rispetto al linguaggio di programmazione C, PolyCoder ha mostrato un livello di perplessità inferiore rispetto a tutti i modelli, incluso Codex.

Di ihal