MultiPL-E: un approccio scalabile e poliglotta al benchmarking della generazione di codice neurale
Author
Venue
IEEE Transactions on Software Engineering (TSE) 2023
Abstract
I modelli linguistici di grandi dimensioni hanno dimostrato la capacità di generare sia testo in linguaggio naturale che in linguaggio di programmazione. Tali modelli aprono la possibilità di generare codice in più lingue: i modelli di generazione di codice potrebbero generalizzare la conoscenza da una lingua all'altra? Sebbene i modelli contemporanei di generazione di codice siano in grado di generare codice Python semanticamente corretto, si sa poco delle loro capacità con altri linguaggi. Proponiamo MultiPL-E, un sistema per tradurre benchmark di generazione di codice basati su test unitari in nuovi linguaggi. Creiamo il primo benchmark di generazione di codice multilingue su larga scala utilizzando MultiPL-E per tradurre due popolari benchmark di generazione di codice Python in 18 linguaggi di programmazione aggiuntivi.
Utilizziamo MultiPL-E per estendere il benchmark HumanEval e il benchmark MBPP a 18 linguaggi che abbracciano una vasta gamma di paradigmi di programmazione e livelli di popolarità. Utilizzando questi nuovi benchmark paralleli, valutiamo le prestazioni multilingue di tre modelli di generazione di codice all'avanguardia: Codex, CodeGen e InCoder. Abbiamo riscontrato che Codex eguaglia o addirittura supera le sue prestazioni su Python per diversi altri linguaggi. La gamma di linguaggi di programmazione rappresentati in MultiPL-E ci permette di esplorare l'impatto della frequenza e delle caratteristiche del linguaggio sulle prestazioni del modello. Infine, l'approccio MultiPL-E di compilare benchmark di generazione di codice per nuovi linguaggi di programmazione è sia scalabile che estensibile, rendendo semplice la valutazione di nuovi modelli, benchmark e linguaggi.
