Our new X account is live! Follow @wizwand_team for updates
WorkDL logo mark

OctoPack: Instruction Tuning Code Large Language Models

About

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.

Niklas Muennighoff, Qian Liu, Armel Zebaze, Qinkai Zheng, Binyuan Hui, Terry Yue Zhuo, Swayam Singh, Xiangru Tang, Leandro von Werra, Shayne Longpre• 2023

Related benchmarks

TaskDatasetResultRank
Code GenerationHumanEval
Pass@150.5
850
Code GenerationHumanEval (test)
Pass@146.2
444
Code GenerationMBPP
Pass@151
175
Code GenerationHumanEval 1.0 (test)
Pass@10.462
145
Function-level Code GenerationHumanEval+ augmented (test)
Pass@150.6
46
Function-level Code GenerationMBPP+ augmented (test)
Pass@163.2
45
Code GenerationDS-1000 1.0 (test)
Matplotlib61.8
19
Code-to-textHumanEvalExplain (test)
Python Acc35.1
19
Code RepairHumanEvalFix (test)
Success Rate (Python)30.4
19
Code GenerationMBPP subset of 500 (test)
Pass@143.5
18
Showing 10 of 17 rows

Other info

Follow for update