OctoPack: Instructie-afstemming van Code Large Language Models
OctoPack: Instruction Tuning Code Large Language Models
August 14, 2023
Auteurs: Niklas Muennighoff, Qian Liu, Armel Zebaze, Qinkai Zheng, Binyuan Hui, Terry Yue Zhuo, Swayam Singh, Xiangru Tang, Leandro von Werra, Shayne Longpre
cs.AI
Samenvatting
Het finetunen van grote taalmmodellen (LLMs) op instructies leidt tot aanzienlijke prestatieverbeteringen bij natuurlijke-taaltaken. We passen instructie-tuning toe met behulp van code, waarbij we gebruikmaken van de natuurlijke structuur van Git-commits, die codewijzigingen koppelen aan menselijke instructies. We stellen CommitPack samen: 4 terabyte aan Git-commits in 350 programmeertalen. We vergelijken CommitPack met andere natuurlijke en synthetische code-instructies (xP3x, Self-Instruct, OASST) op het StarCoder-model met 16B parameters, en behalen state-of-the-art prestaties onder modellen die niet zijn getraind op OpenAI-outputs, op de HumanEval Python-benchmark (46,2% pass@1). We introduceren verder HumanEvalPack, dat de HumanEval-benchmark uitbreidt naar in totaal 3 codeertaken (Codeherstel, Code-uitleg, Codesynthese) in 6 talen (Python, JavaScript, Java, Go, C++, Rust). Onze modellen, OctoCoder en OctoGeeX, behalen de beste prestaties op HumanEvalPack onder alle permissieve modellen, wat de voordelen van CommitPack aantoont bij het generaliseren naar een bredere set talen en natuurlijke codeertaken. Code, modellen en data zijn vrij beschikbaar op 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.