Ricercatori di Microsoft e dell’Università di Hong Kong Baptist presentano WizardCoder un LLM di codice evolutivo istruito con codice raffinato.

Microsoft researchers and Hong Kong Baptist University present WizardCoder, an evolutionary code LLM trained with refined code.

I modelli linguistici di grandi dimensioni (LLM) hanno recentemente attirato molto interesse e ottenuto notevoli successi. In particolare, ChatGPT di OpenAI si distingue come un esempio significativo. Questi modelli hanno raggiunto prestazioni di punta (SOTA) senza bisogno di addestramento specifico su varie attività utilizzando un notevole pre-addestramento su grandi quantità di dati provenienti da internet e ulteriori affinamenti con dati di istruzioni precise. Questo schema si osserva anche nella comprensione e creazione di codice. Sono stati proposti molti LLM per il codice per affrontare le difficoltà intrinseche alle attività che utilizzano il codice. Questi LLM per il codice vengono pre-addestrati utilizzando un’ampia quantità di dati sul codice, consentendo loro di avere prestazioni eccellenti in varie attività legate al codice.

È necessario approfondire ulteriormente l’adattamento dettagliato delle istruzioni nel dominio del codice, a differenza della maggior parte dei precedenti LLM per il codice che si concentrano principalmente sulla fase di pre-addestramento. Per migliorare le abilità di generalizzazione dei LLM in varie attività, è stato utilizzato per la prima volta il perfezionamento delle istruzioni. Ad esempio, InstructGPT di OpenAI ha chiesto agli annotatori umani di fornire istruzioni specifiche per verificare la conformità agli obiettivi degli utenti. Alcuni recenti sforzi, come Alpaca, hanno utilizzato ChatGPT per generare i dati di istruzioni utilizzando l’approccio di auto-istruzione. Vicuna ha sfruttato le conversazioni che gli utenti avevano pubblicato su ShareGPT.com. L’approccio Evol-Instruct è stato sviluppato da WizardLM e prevedeva la modifica dei dati di istruzioni attuali per produrre dataset più complessi e variegati.

Tuttavia, è importante notare che queste tecniche avrebbero dovuto prendere in considerazione specificamente il dominio del codice durante la progettazione anziché concentrarsi principalmente sul dominio generale. I ricercatori di Microsoft e della Hong Kong Baptist University in questo progetto, ispirati all’approccio Evol-Instruct, intendono migliorare le capacità del Code LLM open-source StarCoder producendo dati di istruzioni dettagliate per il codice utilizzando Evol-Instruct specifico per il codice. Hanno modificato il processo di prompt evolutivo in diversi modi progettati appositamente per attività che coinvolgono la scrittura del codice per raggiungere questo obiettivo. I prompt evolutivi sono stati semplificati, le istruzioni evolutive sono state migliorate e sono state incluse la correzione del codice e i limiti di complessità spazio-temporale. Il loro approccio viene utilizzato inizialmente per sviluppare i dati di istruzioni fondamentali di Code Alpaca.

Successivamente, utilizzano il loro set di addestramento per seguire le istruzioni di codice appena sviluppato per perfezionare StarCoder e ottenere il loro WizardCoder. Il loro WizardCoder supera tutti gli altri Code LLM open-source, raggiungendo prestazioni di punta (SOTA), secondo i risultati sperimentali ottenuti su quattro benchmark di generazione di codice, tra cui HumanEval, HumanEval+, MBPP e DS-100. Notano un significativo aumento dei punteggi pass@1, in particolare un aumento di +22,3 (57,3 vs 35,0) in HumanEval e un aumento di +8,2 (51,8 vs 43,6) in MBPP. Sorprendentemente, il loro WizardCoder supera persino Claude di Anthropic e Bard di Google in termini di percentuali di superamento in HumanEval e HumanEval+, nonostante sia considerevolmente più piccolo.

Ecco un riassunto dei contributi di questo lavoro:

• Forniamo WizardCoder, che applica Code Evol-Instruct per migliorare le funzionalità del Code LLM open-source, StarCoder.

• WizardCoder supera significativamente tutti gli altri Code LLM open-source, tra cui StarCoder, CodeGen, CodeGee, CodeT5+, InstructCodeT5+, StarCoder-GPTeacher e Instruct-Codegen-16B, in termini di creazione di codice.

• Nonostante le dimensioni notevolmente inferiori, WizardCoder supera i principali LLM closed-source, tra cui Claude, Bard, PaLM, PaLM-2 e LaMDA, in termini di creazione di codice.