Ricercatori dell’Università dell’Illinois presentano Magicoder una serie di modelli di linguaggio (LLM) completamente open source per il codice.

I ricercatori dell'Università dell'Illinois presentano Magicoder una serie di modelli di linguaggio (LLM) open source per il codice.

Il team di ricercatori dell’Università dell’Illinois a Urbana Champaign e dell’Università di Tsinghua ha cercato di affrontare la sfida di generare sfide di programmazione di basso bias e di alta qualità da frammenti di codice open-source introducendo Magicoder. Magicoder supera le LLM esistenti su vari benchmark di programmazione, inclusa la generazione di testo-codice in Python, la codifica multilingue e il modello di linguaggio per la scienza dei dati.

Modelli di base prominenti come CodeGen, CodeT5, StarCoder e CODELLAMA hanno stabilito la capacità fondamentale delle LLM nella generazione e comprensione del codice. Si è proposto il tuning delle istruzioni per migliorare le LLM preaddestrate affinandole con coppie di istruzioni-risposta, e sono stati introdotti metodi come SELF-INSTRUCT e Evol-Instruct per generare dati sintetici per la calibrazione delle istruzioni. Benchmark di codice esistenti come HumanEval, MBPP, APPS e CodeContests valutano le LLM nella creazione di programmi a singola funzione da descrizioni in linguaggio naturale.

Magicoder è una serie di LLM totalmente open-source per il codice, addestrate su 75.000 dati sintetici di istruzione utilizzando OSS-INSTRUCT, un approccio per illuminare le LLM con frammenti di codice open-source per generare dati di istruzione di alta qualità per il codice. Questo metodo sollecita le LLM a creare problemi e soluzioni di programmazione basati su frammenti di codice seme da GitHub, garantendo diversità e rilevanza nel mondo reale. La valutazione utilizza benchmark come HumanEval e MBPP, focalizzandosi sulla metrica pass1. INSTRUCTOR viene utilizzato per categorizzare i dati generati da OSS-INSTRUCT in base alla similarità degli embeddment. Tecniche di pulizia dei dati, comprese la decontaminazione e il filtraggio delle richieste, vengono applicate per la robustezza.

Magicoder dimostra una performance competitiva con i modelli di codice top con una dimensione dei parametri modesta non superiore a 7 miliardi. Addestrato su 75.000 dati sintetici di istruzioni utilizzando OSS-INSTRUCT, Magicoder supera i modelli di codice avanzati nella generazione di testo-codice in Python, nella codifica multilingue e nel modello di linguaggio per la scienza dei dati. La versione migliorata, MagicoderS, migliora ulteriormente le performance di generazione del codice, superando altri modelli di dimensioni simili o superiori su vari benchmark. MagicoderS-CL-7B raggiunge contemporaneamente risultati all’avanguardia tra i modelli di codice, dimostrando capacità di generazione del codice robuste e superiori.

In conclusione, lo studio mette in evidenza l’efficacia dell’utilizzo di OSS-INSTRUCT, che utilizza le LLM per generare sfide di programmazione da frammenti di codice open-source. Magicoder, addestrato utilizzando OSS-INSTRUCT, ottiene risultati migliori rispetto ad altre LLM con parametri più ampi su diversi benchmark di codifica. Inoltre, quando combinato con Evol-Instruct, migliora i modelli MagicoderS che mostrano prestazioni impressionanti nei benchmark di HumanEval, simili ai modelli leader come ChatGPT. Lo studio raccomanda di rendere disponibili i pesi del modello, i dati di addestramento e il codice sorgente per supportare future ricerche sulle LLM per il codice e per scalare OSS-INSTRUCT per modelli di base più ampi per generare dati di qualità superiore per lavori futuri.