OctoPack: Ottimizzazione delle Istruzioni per Modelli Linguistici di Codice di Grande Dimensione
OctoPack: Instruction Tuning Code Large Language Models
August 14, 2023
Autori: Niklas Muennighoff, Qian Liu, Armel Zebaze, Qinkai Zheng, Binyuan Hui, Terry Yue Zhuo, Swayam Singh, Xiangru Tang, Leandro von Werra, Shayne Longpre
cs.AI
Abstract
Il fine-tuning di grandi modelli linguistici (LLM) su istruzioni porta a significativi miglioramenti delle prestazioni nei compiti di elaborazione del linguaggio naturale. Applichiamo l'instruction tuning utilizzando codice, sfruttando la struttura naturale dei commit Git, che abbinano modifiche al codice a istruzioni umane. Compiliamo CommitPack: 4 terabyte di commit Git in 350 linguaggi di programmazione. Confrontiamo CommitPack con altre istruzioni di codice naturali e sintetiche (xP3x, Self-Instruct, OASST) sul modello StarCoder da 16B parametri, e raggiungiamo prestazioni all'avanguardia tra i modelli non addestrati sugli output di OpenAI, sul benchmark HumanEval Python (46,2% pass@1). Introduciamo inoltre HumanEvalPack, espandendo il benchmark HumanEval a un totale di 3 compiti di codifica (Riparazione del Codice, Spiegazione del Codice, Sintesi del Codice) in 6 linguaggi (Python, JavaScript, Java, Go, C++, Rust). I nostri modelli, OctoCoder e OctoGeeX, raggiungono le migliori prestazioni su HumanEvalPack tra tutti i modelli permissivi, dimostrando i vantaggi di CommitPack nel generalizzare a un insieme più ampio di linguaggi e compiti di codifica naturali. Codice, modelli e dati sono liberamente disponibili all'indirizzo https://github.com/bigcode-project/octopack.
English
Finetuning large language models (LLMs) on instructions leads to vast
performance improvements on natural language tasks. We apply instruction tuning
using code, leveraging the natural structure of Git commits, which pair code
changes with human instructions. We compile CommitPack: 4 terabytes of Git
commits across 350 programming languages. We benchmark CommitPack against other
natural and synthetic code instructions (xP3x, Self-Instruct, OASST) on the 16B
parameter StarCoder model, and achieve state-of-the-art performance among
models not trained on OpenAI outputs, on the HumanEval Python benchmark (46.2%
pass@1). We further introduce HumanEvalPack, expanding the HumanEval benchmark
to a total of 3 coding tasks (Code Repair, Code Explanation, Code Synthesis)
across 6 languages (Python, JavaScript, Java, Go, C++, Rust). Our models,
OctoCoder and OctoGeeX, achieve the best performance across HumanEvalPack among
all permissive models, demonstrating CommitPack's benefits in generalizing to a
wider set of languages and natural coding tasks. Code, models and data are
freely available at https://github.com/bigcode-project/octopack.