Magicoder: Il Codice Sorgente È Tutto Ciò di Cui Hai Bisogno
Magicoder: Source Code Is All You Need
December 4, 2023
Autori: Yuxiang Wei, Zhe Wang, Jiawei Liu, Yifeng Ding, Lingming Zhang
cs.AI
Abstract
Presentiamo Magicoder, una serie di modelli linguistici di grandi dimensioni (LLM) per il codice completamente open-source (codice, pesi e dati) che riduce significativamente il divario con i migliori modelli per il codice pur avendo non più di 7 miliardi di parametri. I modelli Magicoder sono addestrati su 75.000 dati di istruzioni sintetiche utilizzando OSS-Instruct, un approccio innovativo che sfrutta snippet di codice open-source per illuminare gli LLM e generare dati di istruzioni di alta qualità per il codice. La nostra motivazione principale è mitigare il bias intrinseco dei dati sintetici generati dagli LLM, dotandoli di un'ampia gamma di riferimenti open-source per produrre dati più diversificati, realistici e controllabili. L'ortogonalità di OSS-Instruct rispetto ad altri metodi di generazione dati come Evol-Instruct ci consente inoltre di costruire un MagicoderS potenziato. Sia Magicoder che MagicoderS superano sostanzialmente i modelli per il codice all'avanguardia di dimensioni simili o persino maggiori in un'ampia gamma di benchmark di programmazione, tra cui la generazione di codice da testo in Python, la programmazione multilingue e il completamento di programmi di data science. In particolare, MagicoderS-CL-7B basato su CodeLlama supera persino il noto ChatGPT su HumanEval+ (66,5 contro 65,9 in pass@1). Nel complesso, OSS-Instruct apre una nuova direzione per il tuning delle istruzioni a basso bias e di alta qualità utilizzando abbondanti riferimenti open-source.
English
We introduce Magicoder, a series of fully open-source (code, weights, and
data) Large Language Models (LLMs) for code that significantly closes the gap
with top code models while having no more than 7B parameters. Magicoder models
are trained on 75K synthetic instruction data using OSS-Instruct, a novel
approach to enlightening LLMs with open-source code snippets to generate
high-quality instruction data for code. Our main motivation is to mitigate the
inherent bias of the synthetic data generated by LLMs by empowering them with a
wealth of open-source references for the production of more diverse, realistic,
and controllable data. The orthogonality of OSS-Instruct and other data
generation methods like Evol-Instruct further enables us to build an enhanced
MagicoderS. Both Magicoder and MagicoderS substantially outperform
state-of-the-art code models with similar or even larger sizes on a wide range
of coding benchmarks, including Python text-to-code generation, multilingual
coding, and data-science program completion. Notably, MagicoderS-CL-7B based on
CodeLlama even surpasses the prominent ChatGPT on HumanEval+ (66.5 vs. 65.9 in
pass@1). Overall, OSS-Instruct opens a new direction for low-bias and
high-quality instruction tuning using abundant open-source references.